如何配置IAM信任策略允许AWS组织内所有账号assume指定账号的角色
AWS组织跨账号批量授权AssumeRole配置方案
AWS原生支持通过组织全局条件键实现组织范围内的批量授权,无需逐个罗列账号ID,相比直接使用通配符安全性更高,不会放行组织外的未知账号。
方案1:修改账号A中待Assume角色的信任策略(推荐)
该方案无需在每个子账号单独配置权限,只要子账号内的身份(用户/角色/权限组)具备sts:AssumeRole基础权限,即可调用账号A的目标角色。
请将下方示例中的o-xxxxxxxxx替换为你实际的AWS组织ID(可在AWS Organizations控制台概览页查询),直接替换目标角色的原有信任策略即可:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "o-xxxxxxxxx" } } } ] }
配置后自动对组织下所有账号的合法身份生效。
方案2:在子账号统一配置AssumeRole权限
如果你的团队通过SCP服务控制策略、或者统一在子账号部署公共权限策略,可以直接修改你提供的权限策略模板,添加组织ID校验条件即可:
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::112233445566:role/Prod-Xacc-Access", "Condition": { "StringEquals": { "aws:ResourceOrgID": "o-xxxxxxxxx" } } } }
可选安全增强配置
如果需要进一步缩小授权范围,可在条件中添加ARN规则限制特定命名格式的身份才能调用,示例如下:
"StringLike": { "aws:PrincipalArn": "arn:aws:iam::*:role/Allowed-Assume-Role-*" }
添加上述条件后,仅组织内各账号名称前缀为Allowed-Assume-Role-的角色可以Assume目标角色,进一步降低权限泄露风险。
内容的提问来源于stack exchange,提问作者Aladdin
相关产品推荐
相关产品推荐

