S3 存储桶策略,如何允许来自另一个帐户的 IAM 组?
S3 bucket policy, how to ALLOW a IAM group from another account?
我在一个 AWS 账户(比如 arn:aws:s3:::my-test-bucket
)中有一个 S3 存储桶,需要由另一个 AWS 账户(比如 arn:aws:iam::1111222333444:group/mygroup
)中定义的 IAM 组访问。以下访问策略拒绝保存,并告知 arn:aws:s3:::my-test-bucket
是一个 无效主体 .
{
"Statement": [
{
"Action": [
"s3:ListBucket",
"s3:PutObject",
"s3:List*",
"s3:Get*"
],
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::1111222333444:group/mygroup"
},
"Resource": [
"arn:aws:s3:::my-test-bucket",
"arn:aws:s3:::my-test-bucket/*"
],
"Sid": "allow-put-for-dedicated-group"
}
],
}
我已经通过用另一个帐户的用户之一替换该组进行了测试,这有效:
{
"Statement": [
{
"Action": [
"s3:ListBucket",
"s3:PutObject",
"s3:List*",
"s3:Get*"
],
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::1111222333444:user/me"
},
"Resource": [
"arn:aws:s3:::my-test-bucket",
"arn:aws:s3:::my-test-bucket/*"
],
"Sid": "allow-put-for-dedicated-user"
}
],
}
群组存在,我不明白为什么它说它是一个无效的委托人。事实上它不接受我的其他帐户的任何组。
有人对此行为有解释(可能还有解决方案)吗?
提前致谢,
干杯
IAM 组无效principals in S3 bucket policies. See this AWS forum post and this SO post 以进行更多讨论。
这是一个想法:在帐户 #1(具有 S3 存储桶的帐户)中创建一个 IAM 角色(例如 cross-account-s3
)。该角色应该有一个允许适当的 S3 存储桶访问的策略,并且它应该有一个信任关系,表明帐户 #2 受 sts:AssumeRole
的信任。然后在帐户 #2 中,将承担 cross-account-s3
角色的权限委托给相关的 IAM 组。这要求您信任第二个账户中的 IAM 管理员,不允许错误的用户担任 cross-account-s3 角色。
我在一个 AWS 账户(比如 arn:aws:s3:::my-test-bucket
)中有一个 S3 存储桶,需要由另一个 AWS 账户(比如 arn:aws:iam::1111222333444:group/mygroup
)中定义的 IAM 组访问。以下访问策略拒绝保存,并告知 arn:aws:s3:::my-test-bucket
是一个 无效主体 .
{
"Statement": [
{
"Action": [
"s3:ListBucket",
"s3:PutObject",
"s3:List*",
"s3:Get*"
],
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::1111222333444:group/mygroup"
},
"Resource": [
"arn:aws:s3:::my-test-bucket",
"arn:aws:s3:::my-test-bucket/*"
],
"Sid": "allow-put-for-dedicated-group"
}
],
}
我已经通过用另一个帐户的用户之一替换该组进行了测试,这有效:
{
"Statement": [
{
"Action": [
"s3:ListBucket",
"s3:PutObject",
"s3:List*",
"s3:Get*"
],
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::1111222333444:user/me"
},
"Resource": [
"arn:aws:s3:::my-test-bucket",
"arn:aws:s3:::my-test-bucket/*"
],
"Sid": "allow-put-for-dedicated-user"
}
],
}
群组存在,我不明白为什么它说它是一个无效的委托人。事实上它不接受我的其他帐户的任何组。
有人对此行为有解释(可能还有解决方案)吗?
提前致谢, 干杯
IAM 组无效principals in S3 bucket policies. See this AWS forum post and this SO post 以进行更多讨论。
这是一个想法:在帐户 #1(具有 S3 存储桶的帐户)中创建一个 IAM 角色(例如 cross-account-s3
)。该角色应该有一个允许适当的 S3 存储桶访问的策略,并且它应该有一个信任关系,表明帐户 #2 受 sts:AssumeRole
的信任。然后在帐户 #2 中,将承担 cross-account-s3
角色的权限委托给相关的 IAM 组。这要求您信任第二个账户中的 IAM 管理员,不允许错误的用户担任 cross-account-s3 角色。