情况
我正在CloudFormation中生成KMS密钥。根据{{3}},创建一个Principal
是帐户本身的策略至关重要,以便IAM策略能够授予对密钥的访问权。
问题
如何在CloudFormation中为帐户根创建ARN?
答案 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