Goo*_*ets 19 policy amazon-s3 bucket amazon-web-services
Amazon提供了向匿名用户授予权限的示例,如下所示(请参阅Amazon S3存储桶策略的示例案例):
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bucket/*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
在我的政策中,我已将"arn:aws:s3 ::: bucket /"中的"bucket"更改为"my-bucket".
但是,一旦我尝试访问该存储桶的文件夹中的图像,我就会收到以下访问被拒绝错误:
此XML文件似乎没有与之关联的任何样式信息.文档树如下所示.
(如果我明确地将该图像的属性更改为public,则重新加载其url,图像加载完美)
我究竟做错了什么?
更新#1:显然它与我可以访问的第三方网站有关.虽然它具有作为主用户(me)的所有权限,并且其对象位于同一文件夹中,具有完全相同的权限,但仍然不允许我将它们公开显示.不知道为什么.
更新#2:存储桶策略不适用于其他人"拥有"的对象,即使它们在您的存储桶中,请参阅我的答案以获取详细信息.
Ste*_*pel 20
根据GoodGets的评论,真正的问题是存储桶策略不适用于其他人"拥有"的对象,即使它们在你的桶中,请参阅GoodGets自己的详细解答(+1).
这是一个新的存储桶/对象设置还是您尝试将存储桶策略添加到预先存在的设置?
在后一种情况下,由于可用的三种不同的S3访问控制机制之间的相互作用,您可能偶然发现了相关的陷阱,这可能相当混乱.例如,在一起使用ACL和存储桶策略中解决了这个问题:
当您将ACL和存储桶策略分配给存储桶时,Amazon S3会在确定帐户对Amazon S3资源的访问权限时评估现有的Amazon S3 ACL以及存储桶策略.如果帐户可以访问ACL或策略指定的资源,则他们可以访问所请求的资源.
虽然这听起来很容易,但是ACL之间的细微不同默认值可能会导致无意的干扰:
使用现有的Amazon S3 ACL,授权始终提供对存储桶或对象的访问.使用策略时,拒绝始终会覆盖授权.[强调我的]
这解释了为什么添加ACL授权始终保证访问权限,但是,这不适用于添加策略授予,因为仍会强制执行设置中其他位置提供的显式策略拒绝,如IAM和Bucket Policies Together和Evaluation中进一步说明的那样.逻辑.
因此,我建议首先使用新的存储桶/对象设置来测试所需的配置,然后再将其应用到生产场景中(当然,这可能仍会产生干扰,但识别/调试差异会更容易).
祝好运!
存储桶策略不会将文件应用于其他所有者.因此,虽然我已经给第三方写入权限,但所有权仍然存在,我的存储桶策略将不适用于这些对象.
归档时间: |
|
查看次数: |
17244 次 |
最近记录: |