如何在 CloudFormation 中生成 AWS 根账户 ARN?



情况

我正在CloudFormation中生成KMS密钥。根据 KMS 策略文档,创建策略(其中Principal是账户本身(至关重要,以便 IAM 策略能够授予对密钥的访问权限。

问题

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

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

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

答案

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

为什么会这样?

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

现在,剩下的就是使用此账户 ID 创建 ARN。Fn::Join只是一个内置的CloudFormation,允许字符串连接。当我们在这里所做的那样,将引用与字符串常量(或其他引用(组合在一起时,这一点至关重要。

结果是这样的...

arn:aws:iam::123456789012:root

相关内容

  • 没有找到相关文章

最新更新