【问题标题】:How to generate the AWS root account ARN in CloudFormation?如何在 CloudFormation 中生成 AWS 根账户 ARN?
【发布时间】:2018-11-13 05:52:29
【问题描述】:

情况

我正在 CloudFormation 中生成 KMS 密钥。根据KMS policy documentation,创建一个以Principal 为帐户本身的策略至关重要,以便 IAM 策略能够授予对密钥的访问权限。

问题

如何在 CloudFormation 中为账户根创建 ARN?

【问题讨论】:

    标签: amazon-web-services amazon-cloudformation amazon-iam


    【解决方案1】:

    对于将 YAML 用于 CloudFormation 模板的用户:

    !Sub arn:aws:iam::${AWS::AccountId}:root
    

    【讨论】:

      【解决方案2】:

      答案

      {  
         "Fn::Join":[  
            ":",
            [  
               "arn:aws:iam:",
               {  
                  "Ref":"AWS::AccountId"
               },
               "root"
            ]
         ]
      }
      

      为什么会这样?

      首先,让我们检查"Ref":"AWS::AccountId" 这一行。这是pseudo parameter reference,这是一种奇特的说法,它是 CloudFormation 开箱即用的参数。有很多这样的参数。这恰好为我们提供了帐户 ID,这对于构建 ARN 至关重要。

      现在,剩下的就是使用此帐户 ID 创建 ARN。 Fn::Join 就是 a CloudFormation built-in,它允许字符串的连接。当我们在这里所做的将引用与字符串常量(或其他引用)结合起来时,这一点至关重要。

      结果类似于...

      arn:aws:iam::123456789012:root
      

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-13
      • 2020-12-20
      • 2021-06-26
      • 2021-02-10
      • 2016-11-28
      • 2020-04-03
      • 2021-02-19
      相关资源
      最近更新 更多