AWS S3 CLI的权限bug

Posted 北漂的大尾巴老猫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AWS S3 CLI的权限bug相关的知识,希望对你有一定的参考价值。

使用AWS CLI在S3上创建了一个bucket,上传文件的时候报以下错误:

A client error (AccessDenied) occurred when calling the CreateMultipartUpload operation: Anonymous users cannot initiate multipart uploads. Please authenticate.

执行命令:aws s3 ls s3://mybucket-1 同样提示权限错误。

之前使用AWS CLI操作S3都是正常的,唯一区别是:这次我使用的是IAM用户,并非root用户。不过我使用的这个IAM用户已经授予“AmazonS3FullAccess”权限了,理论上是可以正常访问S3的。

尝试给bucket设置policy:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::mybucket-1"
        },
        {
            "Sid": "",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:DeleteObject",
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::mybucket-1/*"
        }
    ]
}

然后再使用AWS CLI操作S3,一切正常。至此,问题得以解决。

次日,无意中使用AWS CLI操作另外一个没有设置policy的bucket,竟然一切正常!于是删除“mybucket-1”上的policy,再次尝试使用AWS CLI操作"mybucket-1",结果依然正常!

经过Google,Stack Overflow上的某大神给出了答案:遇到这个问题时,出去遛狗一圈后回来再继续操作就没事了!

http://stackoverflow.com/questions/33600192/aws-s3-cli-anonymous-users-cannot-initiate-multipart-uploads 

 

以上是关于AWS S3 CLI的权限bug的主要内容,如果未能解决你的问题,请参考以下文章

AWS CLI 和 BOTO3 开发工具包(权限问题)

使用aws cli将S3对象上传到存储桶后如何获取它?

AWS S3权限 - put-bucket-acl出错

添加IAM用户安装AWS CLI

无法使用 boto 从 S3 读取密钥,但可以使用 aws cli

text AWS cli s3