AWS S3 公开存储桶
Posted
技术标签:
【中文标题】AWS S3 公开存储桶【英文标题】:AWS S3 make bucket public 【发布时间】:2020-08-05 18:23:38 【问题描述】:我以管理员权限登录 AWS。我正在尝试使存储桶公开读取,写入。我已取消选择这些选项。我也关注了这个Duplicate 并尝试更新存储桶策略,但出现访问被拒绝错误。所有这些答案都来自 2018 年。
【问题讨论】:
您可以分享您正在使用的存储桶策略吗? 【参考方案1】:您提到的link 仍然可以正常工作!
连同“Bucket Public Access”选项,您应该在“Bucket Policy”中粘贴以下存储桶策略:
"Version":"2012-10-17",
"Statement":[
"Sid":"AddPerm",
"Effect":"Allow",
"Principal":"*",
"Action":[
"s3:GetObject",
"s3:PutObject"
],
"Resource":[
"arn:aws:s3:::your-bucket-arn-here/*"
]
]
这会将读取和写入操作授予您的存储桶。
请记住更改您存储桶的 Amazon 资源名称 (arn),其中存储桶策略中的键指向 “资源”。
您可以在存储桶策略粘贴字段上方找到存储桶的 arn。
此外,您可以使用AWS policies generator 来获得更多访问权限。
希望能帮到你。
【讨论】:
我试过了,但在应用策略时遇到了访问被拒绝的问题。我已经用拒绝访问的图片更新了我的问题。【参考方案2】:如果您的存储桶策略使用以下内容,那么至少将其设置为允许公共读写。请注意,这是匿名的,因此任何人都可以对存储桶执行读取或写入操作,您仍需对此负责。
"Version":"2012-10-17",
"Statement":[
"Sid":"AddPerm",
"Effect":"Allow",
"Principal":"*",
"Action":[
"s3:GetObject",
"s3:PutObject"
],
"Resource":[
"arn:aws:s3:::bucketname/*"
]
]
请注意,如果涉及 ACL,您还需要应用 s3:PutObjectAcl
的权限。此外,ACL 需要授予公共读/写权限,这会违反直觉,因为您使用存储桶策略来执行此操作。
如果您在更新存储桶策略时访问被拒绝,您的用户将被禁止执行该操作。
发生这种情况的原因有几个:
您的 IAM 用户没有 IAM 策略权限。 您的账户是 AWS 组织的一部分,该组织使用 SCP(服务控制策略)来禁止应用存储桶策略。 您的 IAM 用户已配置了一个禁止此访问的 IAM 边界。如果您无法修改您的权限,或者您的帐户是通过服务提供给您的,您需要与他们沟通。
【讨论】:
访问被拒绝是实际问题,我是拥有完整管理员权限的用户,我再次创建了一个拥有完整管理员权限的用户,但同样的问题访问被拒绝。 SCP 被禁用。你知道如果我采用不同原则的相同策略,如“Principal”:“AWS”:“arn:aws:iam::accountnumber:root”,我可以做到,其中帐号是我的实际帐号"Principal" : "AWS" : "*"
怎么样
它同样的访问被拒绝,我认为它是别的东西。以上是关于AWS S3 公开存储桶的主要内容,如果未能解决你的问题,请参考以下文章
只能从我的 ElasticBeanStalk 实例访问 AWS S3 存储桶