amazon-web-services - AWS 根用户权限被 S3 存储桶策略拒绝
问题描述
我通过 Web 向导在 AWS S3 上创建了一个新存储桶。我以 root 用户身份登录
我正在尝试添加Bucket policy
如下
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::<my-bucket-name-is-here>/*"
]
}]
}
我在 Web 编辑器和 CLI 中都被拒绝了权限
命令行界面
An error occurred (AccessDenied) when calling the PutBucketPolicy operation: Access Denied
在 IAM 设置中,根用户具有完全访问权限
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}
]
我添加了
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": "*"
}
我也尝试添加
{
"Sid": "ModifyBucketPolicy",
"Action": [
"s3:GetBucketPolicy",
"s3:PutBucketPolicy"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::<MY-BUCKET-NAME>*"
},
我还是没有权限
解决方案
感谢@JohnRotenstein,我看到因为我接受了来自 AWS 的默认“阻止所有公共访问”,所以我无法编辑存储桶策略。这是有道理的,因为存储桶策略也可以控制访问,因此可能会发生冲突。
但是,错误消息令人困惑,因为它没有提及Block public access (bucket settings)
阻止更新的事实。错误消息说明access denied
/you don't have permissions
让我认为是我的用户的 IAM 设置阻止我修改资源。
推荐阅读
- javascript - 如何调用 Flask Python 函数并使用 NestJS 使用它
- python - 将数据帧转换为时间序列
- visual-studio - 如何让我的 .Net5 项目使用特定的运行时?
- c++ - 传递一个铸造类型
- python-3.x - 记录到 .log 文件不起作用。它什么也不写。为什么?
- r - 计算表达研究参与者概率估计的两个部分之间“距离”的最佳方法
- integer - 使用 z3 的模运算
- javascript - 如何获取 JSON 响应数据计数
- python - 具有动态变量名称的属性
- sql - 会不会有这样的情况,比如只把第一列的数据带到第一行,第二行把第二列的数据带到第二行?