允许从 AccountA 中的 IAM 角色访问给定的 S3 存储桶,前提是它们存在于 AWS AccountB 中(使用帐号)。
这是我在 AccountA 中的角色政策,目前具有以下权限。如何将其更新为仅访问 AccountB 中的 S3 存储桶。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Action": [
"s3:Get*",
"s3:List*",
"s3:Put*"
],
"Resource": [
"arn:aws:s3:::kul-my-bucket/my-dir/*"
]
},
{
"Sid": "ListBucket",
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::kul-my-bucket"
]
}
]
}
想知道是否可行,或者我应该尝试不同的方法吗?
通过在政策中提供条件,我的案例是否可能与此类似:
"Condition": {
"StringLike": {
"aws:accountId": [
"111111111111"
]
}
}
我需要它,因为在 AccountB 中的 S3 存储桶上,它允许 root 访问 AccountA。因此,我想对 AccountA 中的角色策略进行限制。
答案 0 :(得分:2)
我认为无法根据 AWS 帐号授予/拒绝对 Amazon S3 存储桶的访问权限。这是因为 Amazon S3 ARN 不包括账户 ID,而是使用唯一的存储桶名称。
您需要按名称专门为每个存储桶授予允许访问权限。
我之前见过这种情况,要求授予 S3 权限以仅在其他账户中访问存储桶,而不是拥有 IAM 用户的账户。如果不授予访问“同一帐户”S3 存储桶的权限,我们无法确定执行此操作的方法。