Cloudformation ::基于环境的ManagedPolicyArns条件

时间:2019-06-19 18:08:22

标签: if-statement amazon-cloudformation fn

我正在尝试根据环境向ManagedPolicyArns添加条件,它必须运行指定的策略

这是我的代码:

Conditions:
      IsEnvProd: Fn::Equals [!Ref Env, 'prod']

 ManagedPolicyArns:
        - Fn::If:
           - IsEnvProd:
             - "arn:aws:iam::111111111111:policy/prod_policy"
             - "arn:aws:iam::111111111111:policy/stage_policy"

出现以下错误: ValidateTemplate操作:模板错误:Fn :: If需要具有三个元素的列表参数

2 个答案:

答案 0 :(得分:0)

尝试一下:

Conditions:
      IsEnvProd: Fn::Equals [!Ref Env, 'prod']

 ManagedPolicyArns:
        - Fn::If:
           - IsEnvProd
           - "arn:aws:iam::111111111111:policy/prod_policy"
           - "arn:aws:iam::111111111111:policy/stage_policy"

Fn::If采用三个参数。第一个是条件名称,第二个是值(如果为true),第三个是值(如果为false)。您改为通过地图。

答案 1 :(得分:0)

好吧,谢谢:

但我现在仍然收到此错误:

Template format error: Conditions can only be boolean operations on parameters and other conditions