gpt4 book ai didi

amazon-s3 - 如何使S3存储桶公开(亚马逊示例政策不起作用)?

转载 作者:行者123 更新时间:2023-12-03 12:38:17 24 4
gpt4 key购买 nike

Amazon提供了一个向匿名用户授予权限的示例,如下所示(请参阅Example Cases for Amazon S3 Bucket Policies):

{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bucket/*"
}
]
}

根据我的政策,我已将““arn:aws:s3::: bucket /”中的“bucket”更改为“my-bucket”。

但是,一旦我尝试访问该存储桶的文件夹中的图像,就会出现以下“拒绝访问”错误:

This XML file does not appear to have any style information associated with it. The document tree is shown below.



(如果我明确地将该图像的属性更改为public,然后重新加载其url,则该图像将完美加载)

我究竟做错了什么?

更新#1 :显然,它与我有权访问的第三方站点有关。尽管它具有作为主要用户(me)的所有权限,并且其对象位于具有相同权限的同一文件夹中,但仍然不允许我将其公开显示。不知道为什么。

更新#2 :存储桶策略不适用于其他人“拥有”的对象,即使它们在您的存储桶中也是如此,有关详细信息,请参见 my answer

最佳答案

更新资料
根据GoodGets的评论,真正的问题是存储桶策略不适用于其他人“拥有”的对象,即使它们在您的存储桶中,有关详细信息,请参见GoodGets' own answer(+1)。

这是新的存储桶/对象设置,还是您要向存储桶策略添加存储桶策略?
在后一种情况下,由于同时存在三种不同的S3访问控制机制之间的交互作用,您可能偶然发现了一个相关的陷阱,这确实会造成困惑。例如,这已解决。在Using ACLs and Bucket Policies Together中:

When you have ACLs and bucket policies assigned to buckets, Amazon S3evaluates the existing Amazon S3 ACLs as well as the bucket policywhen determining an account’s access permissions to an Amazon S3resource. If an account has access to resources that an ACL or policyspecifies, they are able to access the requested resource.


尽管这听起来很容易,但是由于ACL和策略之间的默认设置之间的细微差别,可能会造成意外干扰:

With existing Amazon S3 ACLs, a grant always provides access to abucket or object. When using policies, a deny always overrides agrant. [emphasis mine]


这就解释了为什么添加ACL授予总是保证访问的原因,但是,这不适用于添加策略授予,因为在您设置的其他位置提供的明确的策略拒绝仍然会被强制执行,例如, IAM and Bucket Policies TogetherEvaluation Logic
因此,我建议从新的存储桶/对象设置开始,以在将其应用到生产方案之前测试所需的配置(当然,这可能仍然会造成干扰,但是以防万一,对差异进行识别/调试会更容易)。
祝好运!

关于amazon-s3 - 如何使S3存储桶公开(亚马逊示例政策不起作用)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9264062/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com