在AWS CDK Python中,跨账号角色ARN应选用哪种Principal类型?
问题解答
你需要使用ArnPrincipal,原因如下:
- 你的目标是授权另一个账号下的具体角色(ARN为
arn:aws:iam::1234:role/otheraccountrole)扮演该角色,ArnPrincipal可以精准指向单个IAM实体的ARN,完全匹配你提供的JSON信任策略要求。 AccountPrincipal是用来授权整个AWS账号下的所有IAM实体(包括用户、角色等),这会超出你原本的授权范围,不符合需求。
修改后的Python CDK代码如下:
iam.Role( self, "thisaccountrole", assumed_by=iam.CompositePrincipal( iam.ServicePrincipal("redshift.amazonaws.com"), iam.ArnPrincipal("arn:aws:iam::1234:role/otheraccountrole") ), managed_policies=[...
注意:代码中要确保ARN和原策略里的arn:aws:iam::1234:role/otheraccountrole完全一致,避免笔误(你提供的代码示例里写的12345是错误的,需要修正为1234)。
内容的提问来源于stack exchange,提问作者user433342
相关产品推荐
相关产品推荐

