为什么我的终端返回此s3错误?

Mal*_*sch 3 amazon amazon-s3 amazon-web-services

这是我一直收到的错误:

A client error (AccessDenied) occurred when calling the ListObjects operation: Access Denied
Run Code Online (Sandbox Code Playgroud)

我已经对我的凭据进行了三次检查,并将此错误搜索到我的智慧结束.我编辑了我的存储桶策略以添加s3:ListBucket操作,但无济于事.当我这样做时,它只返回一个类似的消息:

A client error (AccessDenied) occurred when calling the ListBuckets operation: Access Denied
Run Code Online (Sandbox Code Playgroud)

思考?这也是我第一次创建一个s3桶,所以我很可能错过了一些重要的步骤.

我已经对我的密钥进行了三次检查,甚至尝试创建一个额外的用户(编辑存储桶权限以允许经过身份验证的用户).始终返回相同的错误.

非常非常感谢任何帮助或见解.谢谢!

Lee*_*ton 10

在我得到与您相同的(第二个)错误后,我发现了这个问题:

$ aws s3 ls

A client error (AccessDenied) occurred when calling the ListBuckets operation: Access Denied
Run Code Online (Sandbox Code Playgroud)

事实证明,您需要添加一个特定的策略权限才能列出所有可用的存储桶:

{
    "Sid": "AllowListingOfAllBuckets",
    "Effect": "Allow",
    "Action": [
        "s3:ListAllMyBuckets"
    ],
    "Resource": [
        "arn:aws:s3:::*"
    ]
},
Run Code Online (Sandbox Code Playgroud)

当你没有说明哪个命令你正在运行产生错误,我不能说这是否将是有帮助的OP,但希望它会帮助别人谁在这个帖子在相同的情况下我绊倒.


Vic*_*uez 7

我有一个非常相似的问题.我的用户有S3FullPermissions,我可以创建存储桶并列出所有这些:

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

aws s3 ls
2017-03-24 12:30:34 my-bucket
Run Code Online (Sandbox Code Playgroud)

但是当我试图跑:

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

错误本身与我使用的awscli版本有关,而不是我的存储桶/用户/策略的任何错误配置.为了解决这个问题,我删除了从我的发行版存储库安装的awscli软件包并使用pip安装它:

# apt-get remove awscli
# pip install awscli
Run Code Online (Sandbox Code Playgroud)

希望这能帮助处于类似情况的人,我浪费了几个小时试图猜测这里发生了什么.

  • 什么是有问题的版本? (5认同)