为什么我的终端返回这个s3错误



这是我一直收到的错误:

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

我已经反复检查了我的证件,并在谷歌上搜索了这个错误。我编辑了我的桶策略来添加s3:ListBucket操作,但是没有效果。当我这样做时,它只返回一个类似的消息:

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

这也是我第一次创建s3 bucket,所以很有可能我错过了一些重要的步骤。

我已经反复检查了我的密钥,甚至尝试创建一个额外的用户(编辑桶权限以允许经过身份验证的用户)。总是返回相同的错误。

我发现这个问题后,我得到相同的(第二次)错误作为你:

$ aws s3 ls
A client error (AccessDenied) occurred when calling the ListBuckets operation: Access Denied

结果是,您需要添加一个特定的策略权限才能列出所有可用的bucket:

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

由于您没有说明您正在运行哪个命令来生成错误,所以我不能说这是否对OP有帮助,但希望它能帮助那些在与我相同的情况下偶然发现这篇文章的人。

我有一个非常相似的问题。我的用户有S3FullPermissions,我可以创建bucket并列出它们:

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

但是当我试着跑的时候:

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

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

安装它。
# apt-get remove awscli
# pip install awscli

希望这对有类似情况的人有所帮助,我已经浪费了几个小时来猜测这里发生了什么。

最新更新