我正在尝试使用以下存储桶策略将我存储在s3存储桶中的所有图像公开读取 .
{
"Id": "Policy1380877762691",
"Statement": [
{
"Sid": "Stmt1380877761162",
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::<bucket-name>/*",
"Principal": {
"AWS": [
"*"
]
}
}
]
}
我有4个其他类似的s3存储桶具有相同的存储桶策略,但我不断收到403错误 .
当我尝试将存储桶的内容迁移到新帐户时,使用s3cmd同步传输此存储桶中的映像 .
我能看到的唯一区别是
-
我正在使用具有管理员权限的IAM用户,而不是root用户
-
这些文件对每个文件都没有"grantee : everyone open/download file"权限,这些文件在旧桶中都有
3 回答
如果您希望 everyone 访问存储桶中的S3对象,则主体应为"*",即,如下所示:
资料来源:http://docs.aws.amazon.com/IAM/latest/UserGuide/AccessPolicyLanguage_ElementDescriptions.html#Principal
我已经设法通过再次运行s3cmd命令来解决它,但在它的末尾添加了
--acl-public
. 似乎解决了我的问题来自AWS文档
http://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html
不确定订单或属性是否重要 . 我会尝试一下这个 .