我有一个S3存储桶配置了这样的存储桶策略:
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::dotlabs-test/*"
}
此存储桶中的所有内容均可通过HTTP访问,无需身份验证。
直到现在它工作正常,但现在我必须创建一个IAM用户,他应该能够以同样的方式管理这个存储桶中的文件。
我碰到了几个路障:
1)我发现当我只是授予所有相关的R / W权限并且IAM用户使用aws s3 cp
来复制文件时,它之后就不再公开了,甚至我也无法公开访问它。
2)似乎没有办法(这是一个巨大的无赖!)只是无法将正确的ACL设置为默认值。谷歌搜索建议用户需要始终指定--acl bucket-owner-full-control
,我唯一能做的就是在我的策略中添加一条语句,如果没有设置此标志,则会拒绝上传。
3)使用--acl bucket-owner-full-control
,我现在可以访问用户上传的文件。 但无法匿名访问浏览器。
如果还没找到解决问题的方法。
我的问题是:
A)[最重要的是:] IAM用户需要在aws s3 cp
命令中放置什么才能让我完全访问该文件,并尊重授予每个人读取权限的存储桶策略,以便文件可以通过其URL公开访问吗?
B)如果问题是亚马逊总是只对上传者应用一个完全控制的默认ACL,而且每次上传都没有其他任何人的访问权限,那为什么它不会影响我自己完成的上传?存储桶策略适用于那些。为什么它对其他人不起作用?
C)为什么所有者显示为" amazon" (不是我)当我上传文件时,但作为其他人的上传者?