1

我正在尝试根据环境向 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 需要一个包含三个元素的列表参数

4

2 回答 2

3

尝试这个:

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接受三个参数。第一个是条件名称,第二个是真值,第三个是假值。你通过了一张地图。

于 2019-06-20T23:31:12.833 回答
0

好的,有道理,谢谢:

但我现在不断收到此错误:

Template format error: Conditions can only be boolean operations on parameters and other conditions
于 2019-06-25T17:26:29.453 回答