我们有许多通过bash脚本自动化创建的SecureString SSM参数存储值。这些使用通过CloudFormation创建的特定于环境的KMS密钥+别名进行加密。
模板中还包含EC2实例的IAM角色,这些角色需要允许对SSM参数进行检索和解密。为此,我们通过将KMS密钥的角色ARN视为原则来授予对这些IAM角色的访问权限。
但是,我们的AWS账户上有一些非特定于环境的SSM变量,这些变量持久存在于我们的环境CloudFormation堆栈之外,并被所有环境使用。
我们最近修改了这些参数,以使用默认KMS密钥-alias/aws/ssm
进行加密。
此方法在自动化方面引起问题,因为我们需要将默认 KMS密钥的使用授予CloudFormation中的IAM角色。我已阅读过AWS文档,无法找到实现此目的的方法。
有人能自动化吗?
答案 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参数即可。