Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why is my terminal returning this s3 error?

Here's the error I keep receiving:

A client error (AccessDenied) occurred when calling the ListObjects operation: Access Denied

I've triple-checked my credentials and googled this error to my wits' end. I edited my bucket policy to add an s3:ListBucket action, but to no avail. When I do so, it just returns a similar message:

A client error (AccessDenied) occurred when calling the ListBuckets operation: Access Denied

Thoughts? This is also my first time creating an s3 bucket so it's quite possible I missed some important step.

I have triple-checked my keys and even tried creating an additional user (editing the bucket permissions to allow for authenticated users). Always returns the same error.

Any help or insight would be very, very much appreciated. Thank you!

like image 424
Mallory Busch Avatar asked Oct 24 '15 15:10

Mallory Busch


2 Answers

I found this question after I was getting the same (2nd) error as you:

$ aws s3 ls

A client error (AccessDenied) occurred when calling the ListBuckets operation: Access Denied

It turns out that there is a specific policy permission that you need to add to be able to list all the available buckets:

{
    "Sid": "AllowListingOfAllBuckets",
    "Effect": "Allow",
    "Action": [
        "s3:ListAllMyBuckets"
    ],
    "Resource": [
        "arn:aws:s3:::*"
    ]
},

As you don't state which command you were running to generate the error, I can't say whether this will be helpful to the OP, but hopefully it will help someone else who stumbles upon this post in the same situation as me.

like image 134
Lee Netherton Avatar answered Sep 21 '22 01:09

Lee Netherton


I had a very similar problem. My user had S3FullPermissions and I could create buckets and list all of them:

aws s3 mb s3://my-bucket
make_bucket: s3://my-bucket/

aws s3 ls
2017-03-24 12:30:34 my-bucket

But when I tried to run:

aws s3 ls s3://my-bucket
A client error (AccessDenied) occurred when calling the ListObjects operation: Access Denied

The error itself was related with the awscli version I was using and not with any misconfiguration of my buckets/users/policies. To solve it, I removed the awscli package installed from my distro repository and installed it using pip:

# apt-get remove awscli
# pip install awscli

Hope this help someone in a similar situation, I have wasted several hours trying to guess what was going on here.

like image 40
Victor Henriquez Avatar answered Sep 23 '22 01:09

Victor Henriquez