zoukankan      html  css  js  c++  java
  • 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 

    [更新]

    经过尝试,找到了这个问题的复现路径即:新建的bucket,不管是用AWS CLI还是Web Console创建的,都需要过一段时间才能通过AWS CLI进行正常操作。

    [更新]

    上述问题只在AWS国际版上出现,AWS中国版没有问题。

  • 相关阅读:
    《大话设计模式》的一些总结
    一个仿jdkd的动态代理
    一道笔试题(构造数组)
    c# 汉字转拼音
    IDEA常用插件盘点(香~~)
    服务器概念、应用服务器盘点大科普
    创建一个简单的Struts 2程序
    JAVA(Object类、Date类、Dateformat类、Calendar类)
    DQL查询语句和约束
    MySQL操作语句
  • 原文地址:https://www.cnblogs.com/hunterxue/p/5353656.html
Copyright © 2011-2022 走看看