创建AWSControlTowerBlueprintAccess时,YourControlTowerUserRole实际指什么?
AWS Control Tower AWSControlTowerBlueprintAccess角色信任策略疑问解答
关于YourControlTowerUserRole的本质
这只是官方文档里的占位符角色名称,并非Control Tower自动生成的内置角色。它特指你在管理账户中创建的、拥有Control Tower管理权限的IAM角色——也就是你用来登录Control Tower控制台、操作Account Factory的那个角色。
信任策略要求它的原因
AWSControlTowerBlueprintAccess是Hub账户(蓝图账户)中的角色,作用是让管理账户的授权角色能够访问蓝图资源。因此它的信任策略必须明确允许管理账户内的特定角色来扮演自己。文档用YourControlTowerUserRole作为示例,就是让你替换成自己实际在用的管理账户IAM角色的ARN。
解决你遇到的ARN格式问题
你使用的arn:aws:sts::{AccountID}:assumed-role/{RoleName}/{FunctionName}是角色临时会话的ARN,但信任策略需要的是IAM角色本身的ARN,格式为arn:aws:iam::{管理账户ID}:role/{你的角色名}。用临时会话ARN配置信任策略肯定无法生效,因为信任策略校验的是角色本身的身份,而非临时会话的身份。
实际使用步骤
- 先在管理账户中找到你用来操作Control Tower的IAM角色,复制它的标准IAM角色ARN(注意是
iam开头的格式,不是sts开头的临时会话ARN)。 - 修改Hub账户中AWSControlTowerBlueprintAccess角色的信任策略,将示例中的
arn:aws:iam::YourManagementAccountId:role/YourControlTowerUserRole替换为刚才复制的实际ARN。 - 确保管理账户的这个角色具备
sts:AssumeRole权限,允许它扮演Hub账户的AWSControlTowerBlueprintAccess角色。 - 后续你用管理账户的角色登录后,就能通过AssumeRole操作获取AWSControlTowerBlueprintAccess的临时凭证,进而访问Hub账户内的蓝图资源。
内容的提问来源于stack exchange,提问作者klin
相关产品推荐
相关产品推荐

