我有一堆云形成模板,其中有条件资源用于警报。只有prod堆栈才能创建这些资源。我需要我在堆栈中创建的IAM策略来反映这些条件资源。到目前为止,我找不到这样做的方法。我尝试过使用Condition:在一个单独的策略文档中,它似乎忽略了它。
答案 0 :(得分:3)
我会查看Fn::If
内在函数。对于像这样的东西真的很有用。例如,如果我有一个ShouldGenerateBucket
条件,以及两个即将创建的constant-bucket
和可能是conditional-bucket
的存储桶,我可以在我的政策中使用它:
Type: "AWS::IAM::Policy"
Properties:
PolicyName: "RoleAccess"
PolicyDocument:
Version: "2012-10-17"
Statement:
-
Effect: "Allow"
Action: "s3:*""
Resource:
- arn:aws:s3:::constant-bucket
- !If
- ShouldGenerateBucket
- arn:aws:s3:::conditional-bucket
- !Ref AWS::NoValue
如果ShouldGenerateBucket
为true
,则会添加其他资源资源,但会忽略它。