仅当给定的 S3 存储桶存在于 AWS AccountB 中时,才允许从 AccountA 中的 IAM 角色访问这些存储桶(使用帐号)。
这是我在 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 中的角色策略进行限制。
最佳答案
我认为无法根据 AWS 帐号授予/拒绝对 Amazon S3 存储桶的访问权限。这是因为 Amazon S3 ARN 排除账户 ID,而是使用唯一的存储桶名称。
您需要按名称专门向每个存储桶授予“允许”访问权限。
我以前见过这种情况,其中要求授予 S3 权限,使其只能访问其他账户中的存储桶,而不是拥有 IAM 用户本身的账户。如果不授予访问“同一帐户”S3 存储桶的权限,我们无法确定执行此操作的方法。
关于amazon-web-services - 用于跨账户访问特定 AWS 账户中的 S3 存储桶的 IAM 角色策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65820203/