通过CloudFormation将默认KMS密钥的使用授予IAM角色

时间:2020-03-23 17:31:22

标签: amazon-web-services amazon-cloudformation aws-kms

我们有许多通过bash脚本自动化创建的SecureString SSM参数存储值。这些使用通过CloudFormation创建的特定于环境的KMS密钥+别名进行加密。

模板中还包含EC2实例的IAM角色,这些角色需要允许对SSM参数进行检索和解密。为此,我们通过将KMS密钥的角色ARN视为原则来授予对这些IAM角色的访问权限。

但是,我们的AWS账户上有一些非特定于环境的SSM变量,这些变量持久存在于我们的环境CloudFormation堆栈之外,并被所有环境使用。

我们最近修改了这些参数,以使用默认KMS密钥-alias/aws/ssm进行加密。

此方法在自动化方面引起问题,因为我们需要将默认 KMS密钥的使用授予CloudFormation中的IAM角色。我已阅读过AWS文档,无法找到实现此目的的方法。

有人能自动化吗?

1 个答案:

答案 0 :(得分:1)

默认KMS密钥alias/aws/ssm是AWS托管的CMK。我们无法为AWS托管CMK建立IAM策略或KMS关键策略。

摘录自AWS KMS FAQ

AWS将管理与您的AWS受管CMK相关的策略 代表。您可以跟踪账户中的AWS托管密钥以及所有使用情况 已登录到AWS CloudTrail,但您无法直接控制 自己加密。

您不必担心定义用于访问alias/aws/ssm密钥的IAM角色,只需访问所需的SSM参数即可。