关闭AWS账户级S3公共访问设置是否影响现有存储桶?
S3账户级公开访问限制关闭的影响及解决方案
一、关闭账户级Block Public Access对现有存储桶的影响
完全不会影响你现有的5个存储桶。原因如下:
- 你的现有桶都单独开启了桶级的
Block all public access,这个设置的优先级高于账户级的全局限制。 - 账户级的
Block Public Access是全局默认规则,仅当存储桶未单独配置桶级限制时才会生效。关闭账户级设置后,现有桶的公开访问限制依然保持开启状态,不会出现意外公开的情况。
二、当前桶策略报错的原因及解决
你遇到的Access denied错误确实是账户级Block Public Access导致的——当账户级全局开启时,即使你关闭了新桶的桶级限制,系统依然会阻止你添加允许公众访问的桶策略。
解决方法就是暂时(或永久,如果你需要新桶持续公开)关闭账户级的Block Public Access settings for this account,之后就能正常保存你的桶策略了。
你的桶策略本身是有效的:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Action": "s3:GetObject", "Effect": "Allow", "Resource": "arn:aws:s3:::MyNewImageBucketS3/*", "Principal": "*" } ] }
三、CloudFront托管的替代方案(更安全)
如果不想关闭账户级全局限制,用CloudFront托管是更优的安全方案:
- 保持账户级和所有存储桶的
Block Public Access开启状态 - 创建CloudFront分发,配置源为你的新S3桶,同时生成一个CloudFront Origin Access Identity(OAI)
- 修改新桶的桶策略,只允许这个OAI访问桶内对象,不直接向公众开放权限
- 用户通过CloudFront域名访问文件,既实现了公开访问,又避免了直接暴露S3桶,安全性更高,也符合账户级的限制规则
内容的提问来源于stack exchange,提问作者N T
相关产品推荐
相关产品推荐

