amazon-web-services - 如何从 us-east-1 帐户访问在 us-west-2 区域创建的 S3 存储桶?
问题描述
我在 us-east-1 区域有账户 A,具有 IAM 角色 rt-profileRole 和我的应用程序设置。账户 B 在 us-west-1 和 us-west-2 中创建了 S3 存储桶。
我正在尝试使用具有角色 rtprofile 的 aws cli 列出对象。两个存储桶都具有与以下资源类似的存储桶策略,该资源具有正确的存储桶 arn 策略附加到的存储桶。
问题是我可以使用本地系统中的 aws s3 ls 从 us-west-1 创建的存储桶中列出对象。但是当我尝试对 us-west-2 中创建的存储桶进行相同 操作时出现错误调用 ListObjectsV2 操作时发生错误 (AccessDenied):访问被拒绝
我厌倦了多个存储桶并得出结论,使用帐户 A 角色
- 我可以访问在 us-east-1 中创建的账户 A 的存储桶
- 我可以访问在 us-west-1 中创建的账户 B 的存储桶
- 我无法访问在 us-west-2 中创建的账户 B 的存储桶。
请帮助我了解这里的 west-2 区域有什么问题。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DelegateS3Access",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::AccountA:role/rt-profileRole"
]
},
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::bucket-name/*",
"arn:aws:s3:::bucket-name"
]
}
]
}
解决方案
将存储桶策略添加到存储桶后,您还必须确保该角色在其 IAM 策略中具有特权。
此外,如果您在 AWS 组织中,请确保账户 A 上没有阻止特定区域内操作的 SCP。
关于存储桶策略,您应该将其范围缩小到您希望存储桶在您确认它有效后使用的权限(目前它对存储桶的每个 S3 操作,包括删除)。
推荐阅读
- python - Keras 数字数据集中的错误:预期 conv2d_input 有 4 个维度,但得到了形状为 (60000, 28, 28) 的数组
- css - 在 Angular 材质垫对话框中隐藏/显示列
- oracle - 我什么时候需要修改 ODI 中的知识模块?
- java - 安装后“NDK 版本未知”
- reactjs - 如何使用 React Google Maps API 访问 Map 对象?
- javascript - Flutter:从 IEX JSON API 检索股票统计信息和报价列表
- python - 使用 Python 以时间戳为基础在某些列中累积值?
- java - Java MediaPlaye 问题:选择按钮时歌曲不播放
- google-cloud-storage - Google Cloud Bucket 自定义元数据集但未在 HTTP 请求中返回
- javascript - 如何检查此对象的类型?