【发布时间】:2022-01-26 13:22:32
【问题描述】:
我有以下模板定义了一个不起作用的 IAM 策略:
RoleName: 'ABCRole'
AssumeRolePolicyDocument:
Statement:
- Action: ['sts:AssumeRole']
Effect: Allow
Principal:
AWS:
- 1234567890 # Some AWS account
- !If
- !And
- !Condition Condition1
- !Condition Condition2
- arn:aws:iam::11111111111111:role/ABCDE_Role # first role
- arn:aws:iam::22222222222222:role/ABCDE_Role # second role (different account number)
- !Ref AWS:NoValue
我正在努力实现这一目标:当Condition1 和Condition2 都为真时,我将能够附加arn:aws:iam::11111111111111:role/ABCDE_Role 和arn:aws:iam::22222222222222:role/ABCDE_Role 作为两个额外的主体。否则,什么也不做——让1234567890 作为唯一的主体。
请注意,arn:aws:iam::11111111111111:role/ABCDE_Role 和 arn:aws:iam::22222222222222:role/ABCDE_Role 仅与 aws 帐户不同,所以也许我可以使用 !Sub 替换帐号?有点像:
for account in [11111111111111, 22222222222222]:
!Sub arn:aws:iam::${account}:role/ABCDE_Role
我应该如何修改上面的模板?提前谢谢!
【问题讨论】:
-
您当前的模板有什么问题?有什么错误吗?
-
!If抱怨格式。我刚刚了解到!If的第一个参数必须是Condition,所以可能使用嵌套的!And是错误的。 -
这是一个,但还有更多错误。你能发布实际的错误消息吗?
标签: amazon-web-services yaml amazon-cloudformation