如何在CloudFormation中生成AWS root帐户ARN?

时间:2018-06-03 22:03:41

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

情况

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

问题

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

2 个答案:

答案 0 :(得分:2)

答案

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

为什么这样做?

首先,让我们检查一下"Ref":"AWS::AccountId"行。这是一个KMS policy documentation,这是一种奇特的方式,它说它是CloudFormation开箱即用的参数。有许多这样的参数。这个碰巧给了我们帐户ID,这对于构建ARN至关重要。

现在,剩下的就是使用此帐户ID创建ARN。 Fn::Join只是pseudo parameter reference,允许连接字符串。当我们在这里将引用与字符串常量(或其他引用)组合时,这是至关重要的。

结果就像......

arn:aws:iam::123456789012:root

答案 1 :(得分:1)

对于那些使用YAML作为其CloudFormation模板的人:

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