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中國版沒有問題。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM