【问题标题】:Cloudformation YAML !Sub !Ref error where two resource values require variable substitutionCloudformation YAML !Sub !Ref 错误,其中两个资源值需要变量替换
【发布时间】:2020-10-30 16:13:57
【问题描述】:

在我的 S3 政策中,以下几行

Resource:
 - !Sub 'arn:aws:s3:::website-${paramEnvironment}/*'
 - { Environment: !Ref paramEnvironment}
 - !Sub 'arn:aws:s3:::website-${paramEnvironment}'
 - { Environment: !Ref paramEnvironment}

产生Invalid Policy Syntax

我无法找到一个示例 YML,其中声明了两个使用变量替换的资源,并且我尝试了基于 AWS docs 的上述变体。

【问题讨论】:

    标签: amazon-s3 yaml amazon-cloudformation


    【解决方案1】:

    我不确定您到底想用{ Environment: !Ref paramEnvironment} 做什么,但有效的Resource 是:

     Resource:
       - !Sub 'arn:aws:s3:::website-${paramEnvironment}/*'
       - !Sub 'arn:aws:s3:::website-${paramEnvironment}'
    

    这是基于 paramEnvironment 是现有 CFN 参数的假设,并且 IAM 策略的其余部分(未显示)是正确的。

    另一个长期的可能性是:

    Resource:
     - !Sub
       - 'arn:aws:s3:::website-${Environment}/*'
       - Environment: !Ref paramEnvironment
     - !Sub
       - 'arn:aws:s3:::website-${Environment}'
       - Environment: !Ref paramEnvironment
    

    【讨论】:

    • 谢谢@Marcin!就是这样! - 在我们现有的模板中,约定是 {Environment: !Ref paramEnvironment}
    猜你喜欢
    • 1970-01-01
    • 2020-12-27
    • 2020-11-26
    • 1970-01-01
    • 2020-04-24
    • 2018-12-25
    • 2018-05-14
    • 1970-01-01
    • 2019-11-17
    相关资源
    最近更新 更多