在Cloudformation中是否有一种方法可以使IAM策略使用条件资源

时间:2017-09-14 18:01:18

标签: amazon-cloudformation

我有一堆云形成模板,其中有条件资源用于警报。只有prod堆栈才能创建这些资源。我需要我在堆栈中创建的IAM策略来反映这些条件资源。到目前为止,我找不到这样做的方法。我尝试过使用Condition:在一个单独的策略文档中,它似乎忽略了它。

1 个答案:

答案 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

如果ShouldGenerateBuckettrue,则会添加其他资源资源,但会忽略它。