amazon-web-services - 更改 root 用户的存储桶策略时,AWS s3 访问被拒绝
问题描述
我root
以 aws 帐户的用户身份登录。已为 创建了一个存储桶static website hosting
。我还取消了所有选项,Public access Settings
如下图所示。
之后,我尝试从文档中将存储桶策略更新为此
{
"Version":"2012-10-17",
"Statement":[{
"Sid":"PublicReadGetObject",
"Effect":"Allow",
"Principal": "*",
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::example-bucket/*"
]
}
]
}
但我不断收到Access denied
错误。我不明白我错过了什么。我已经尝试过以下事情。
我发现其他 SO 帖子告诉我取消选中我
block new public bucket policies option
已经完成的,但为什么它对我不起作用?我销毁了存储桶并从头开始重做所有内容,但同样的问题仍然存在。
我还创建了一个具有访问所有内容的角色的新 IAM 用户。这也没有解决问题。
但是,我可以手动将 s3 对象更改为选项卡下 s3 菜单中的
public
选项。这暂时解决了我的问题,但每次重新上传文件时我都必须继续这样做。Make Public
s3 Overview
所以我的问题是。为什么即使对于 root 用户,我也一直被拒绝访问?
解决方案
我按照您的步骤操作,对我来说效果很好:
- 我创建了一个新存储桶
- 我单击存储桶,进入权限选项卡并编辑公共访问设置
- 我关闭了管理此存储桶的公共存储桶策略下的两个设置
- 我通过采用您的策略(如上)添加了存储桶策略,并更改了存储桶名称以匹配我的存储桶
- 我成功保存了存储桶策略
然后它给了我一个警告:
此存储桶具有公共访问权限
您已提供对此存储桶的公开访问权限。我们强烈建议您永远不要授予对您的 S3 存储桶的任何类型的公共访问权限。
我不明白您为什么会收到Access Denied。我唯一的建议是尝试使用不同的浏览器,以防出现一些奇怪的问题。
您还可以通过 AWS CLI 添加存储桶策略:put-bucket-policy — AWS CLI 命令参考
这也成功地将存储桶策略添加到我的存储桶中。
推荐阅读
- c - C 内存泄漏问题(realloc 函数)
- python - 如何从 url 中提取附加的凭据?
- reactjs - 如何删除现有的
组件来自 - firebase - 如何根据 Flutter 中 FutureBuilder 中另一个 firebase 查询的值从 firebase 查询中获取数据?
- pine-script - Pine Script 使用以前的 RSI 交叉点作为新交叉点的参考
- c - 使用 AVX2 查找元素索引 - 代码优化
- c# - 如何在 C# GUI 中搜索 Excel 工作表?
- java - 如何使用 Like 、between 和 enum 编写 jpa 查询?
- flutter - 从多行中退出焦点 - Flutter
- javascript - 我按标签对视频进行排序的脚本根本不起作用