【问题标题】:Grant usage of default KMS keys to IAM Roles with CloudFormation通过 CloudFormation 将默认 KMS 密钥的使用权授予 IAM 角色
【发布时间】:2020-07-04 05:17:09
【问题描述】:

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

模板中还有我们 EC2 实例的 IAM 角色,它们需要允许检索和解密 SSM 参数。为此,我们在创建 KMS 密钥时通过将角色 ARN 引用为原则来授予对这些 IAM 角色的访问权限。

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

我们最近调整了这些参数以使用默认 KMS 密钥进行加密——alias/aws/ssm

这种方法会导致自动化方面的问题,因为我们需要向 CloudFormation 中的 IAM 角色授予 default KMS 密钥的使用权限。我已阅读 AWS 文档,但无法找到这样做的方法。

有没有人设法自动化这个?

【问题讨论】:

  • SecureString SSM Parameter Store values created via CloudFormation。怎么样??
  • 请原谅,我们的 SecureStrings 是通过 bash 在我们调用 CloudFormation 创建的同一脚本中创建的。我已经编辑了描述以反映这一点。
  • 澄清一下,您的问题是关于如何为alias/aws/ssm 设置KMS 密钥策略?
  • 我的问题是,CloudFormation 中是否有一种方法可以让 IAM 角色获得解密使用默认 alias/aws/ssm 密钥而不是自定义创建的密钥加密的 SecureStrings 的权限。
  • 不,访问策略由 AWS 为此类密钥管理。

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


【解决方案1】:

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

摘自AWS KMS FAQ

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

您不必担心定义 IAM 角色来访问alias/aws/ssm 密钥,访问所需的 SSM 参数就足够了。

【讨论】:

  • 对于未来的读者 - 这是上述答案中的关键句子,感谢 franklinsijo:“访问所需的 SSM 参数就足够了。”
猜你喜欢
  • 2018-04-09
  • 1970-01-01
  • 2023-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-16
  • 2019-06-22
相关资源
最近更新 更多