AWS 承担组织中任何角色的角色
AWS assume role for any role in organization
我有大量的 AWS 账户,我想将它们提供给其中一个账户中的特定资源,比如说我有 a 到 z 的账户,我希望所有账户都可以访问 A 中的资源。
我创建了一个角色,该角色在账户 A 中具有访问该资源的策略,但对于假设策略文档,所有在线资源都是为了公开该角色由另一个角色承担帐户,没有关于如何使所有组织帐户都可以承担该角色的参考。
为了使问题更清楚和具体,我希望此处的帐户 ID 是组织内的通配符:
{
"Statement": {
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::112233445566:role/Prod-Xacc-Access"
}
}
使用 IAM 策略变量。这是我从 this blog 中获取的示例。它允许组织中的所有账户对驻留在目标账户上的 S3 存储桶执行 s3:GetObject 和 s3:ListBucket。
在评估期间 ${aws:PrincipalAccount}
被转换为调用方帐户。
${aws:PrincipalOrgID}
转换为调用者帐户的组织。
{
"Sid": "MemberAccountAccessObjectLevel",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-organization-bucket/AWSLogs/o-exampleorgid/${aws:PrincipalAccount}/*",
"Condition": {
"StringEquals": {
"aws:PrincipalOrgID": "o-exampleorgid"
}
}
},
{
"Sid": "MemberAccountAccessBucketLevel",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::my-organization-bucket",
"Condition": {
"StringEquals": {
"aws:PrincipalOrgID": "o-exampleorgid"
},
"StringLike": {
"s3:prefix": "AWSLogs/o-exampleorgid/${aws:PrincipalAccount}/*"
}
}
}
我有大量的 AWS 账户,我想将它们提供给其中一个账户中的特定资源,比如说我有 a 到 z 的账户,我希望所有账户都可以访问 A 中的资源。
我创建了一个角色,该角色在账户 A 中具有访问该资源的策略,但对于假设策略文档,所有在线资源都是为了公开该角色由另一个角色承担帐户,没有关于如何使所有组织帐户都可以承担该角色的参考。
为了使问题更清楚和具体,我希望此处的帐户 ID 是组织内的通配符:
{
"Statement": {
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::112233445566:role/Prod-Xacc-Access"
}
}
使用 IAM 策略变量。这是我从 this blog 中获取的示例。它允许组织中的所有账户对驻留在目标账户上的 S3 存储桶执行 s3:GetObject 和 s3:ListBucket。
在评估期间 ${aws:PrincipalAccount}
被转换为调用方帐户。
${aws:PrincipalOrgID}
转换为调用者帐户的组织。
{
"Sid": "MemberAccountAccessObjectLevel",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-organization-bucket/AWSLogs/o-exampleorgid/${aws:PrincipalAccount}/*",
"Condition": {
"StringEquals": {
"aws:PrincipalOrgID": "o-exampleorgid"
}
}
},
{
"Sid": "MemberAccountAccessBucketLevel",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::my-organization-bucket",
"Condition": {
"StringEquals": {
"aws:PrincipalOrgID": "o-exampleorgid"
},
"StringLike": {
"s3:prefix": "AWSLogs/o-exampleorgid/${aws:PrincipalAccount}/*"
}
}
}