【发布时间】:2021-04-25 10:44:03
【问题描述】:
仅当 AWS AccountB 中存在给定的 S3 存储桶时才允许从 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 中的角色政策。
【问题讨论】:
-
通过跨账户 IAM 角色执行此操作。账户 B 创建一个角色,可由账户 A 代入或由账户 A 中的 IAM 用户具体代入,该角色允许访问相关账户 B 存储桶。账户 A 中的管理员修改账户 A IAM 用户的权限以允许 IAM 用户代入账户 B 中的特定 IAM 角色。
-
感谢您的建议@jarmod。这将需要在 Account B 中添加一个额外的角色,是否可以通过 Account A 中的角色策略来避免它?
-
如果您修改目标账户 A 角色的信任关系以包含账户 B IAM 用户的 ARN,那么您应该不需要账户 B 中的额外角色。
-
谢谢,我现在不完全按照它。所以,如果我对尝试有任何疑问,可能会伸出援手。
标签: amazon-web-services amazon-s3 amazon-iam