ODO cannot access S3 with S3ResponseError: 403 Forbidden
- Dominant language
- Python
- Stars
- 1k
- Forks
- 131
- PR merge metrics
- No merged PRs in 30d
Description
I am using odo library to transfer a **pandas dataframe** to S3. However I am getting following error :
```
import pandas as pd
df = pd.DataFrame([[1, 2], [3, 4], [5, 6], [7, 8]], columns=["A", "B"])
odo(df,'s3://path_to_s3_folder')
S3ResponseError: S3ResponseError: 403 Forbidden
AccessDeniedAnonymous access is forbidden for this operationF5958774D56AD29EzOH8JOxpSgB5Scgc/YrtHO1+e9lXoKAF89IhRSeAiSoGHAJxyjXKBVFIYETeO4gSLZOUgXmwKLM=
```
Now I have the AWS credentials setup correctly as I can see in my `~/.aws/credentials` file
```
cat credentials
[default]
aws_access_key_id = XXXXX
aws_secret_access_key = XXXXXXXXXX
```
The aws cli works correctly for me and I can run `aws ls` and `cp` commands correctly (I guess this means I do have the required permissions).
```
aws s3 ls s3://path_to_s3
```
Also `boto3` is able to access s3 resources and does not give an error.
```
import boto3
s3 = boto3.resource('s3')
for bucket in s3.buckets.all():
print(bucket.name)
```
What would be possible wrong/missing in the configuration ?
Contributor guide
No contributing guide indexed for this repository
Research direction
Reproduce the failure with the shown pandas dataframe and odo(df, 's3://...') call, then compare it with the working aws CLI and boto3 checks. Inspect odo's S3 integration and credential-loading entry points to find where the request becomes anonymous. Done means the same dataframe transfer succeeds using the configured credentials.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, python
- Domain
- cloud
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100