我使用AWS CLI将一些.zip文件上传到我的AWS S3存储桶。现在,在使用以下命令时,我似乎无法下载这些文件:
aws s3 cp s3://mybucket/test.zip test2.zip
因为它会产生以下错误:
A client error (403) occurred when calling the HeadObject operation: Forbidden
Completed 1 part(s) with ... file(s) remaining
如何解决此问题?
编辑:
运行以下命令可显示现有存储桶策略
aws s3api get-bucket-policy --bucket mybucket
{
"Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"Example permissions\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::221234567819:root\"},\"Action\":[\"s3:ListBucket\",\"s3:GetBucketLocation\"],\"Resource\":\"arn:aws:s3:::mybucket\"},{\"Sid\":\"Examplepermissions\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::221234567819:root\"},\"Action\":[\"s3:PutObject\",\"s3:AbortMultipartUpload\",\"s3:PutObjectAcl\",\"s3:GetObject\",\"s3:DeleteObject\",\"s3:GetObjectAcl\",\"s3:ListMultipartUploadParts\",\"s3:PutObjectAcl\"],\"Resource\":\"arn:aws:s3:::mybucket/*\"}]}"
}
答案 0 :(得分:3)
这很可能是以下三个原因之一:
对于1,可以通过存储桶策略,用户策略或ACL保护S3对象,并且3之间存在复杂的交互。有关详细信息,请参阅http://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html。
如果您使用相关用户策略,存储桶策略和ACL的详细信息更新您的问题,我可以查看是否有任何解释该症状的内容。
编辑:
查看包含的存储桶策略,它似乎与根主体绑定。您是否在aws s3 cli中使用root凭据?如果您使用的是IAM用户,则需要修改Principal(请参阅http://docs.aws.amazon.com/AmazonS3/latest/dev/s3-bucket-user-policy-specifying-principal-intro.html)