使用“CMK Key1”加密的资产或对象会发生什么情况:
- 当该密钥被轮换/过期/删除时
- 当我们在该“CMK Key1”上附加“CMK ALIAS-xyz”时(跨账户甚至相同账户引用)
新的“CMK Key2”也附加到 CMK Key1 的别名“CMK ALIAS-xyz”,是否可以用于重新加密使用“CMK Key1”加密的资产的现有数据对象,而不会出现任何停机时间/代码更改?
当我们轮换 Aliased 密钥时,代码中对 CMK 的直接引用会发生什么情况?
<请分享您的实践经验——不仅仅是理论文档>
我目前的观察:
支持别名/点说它是可能的:
- 删除别名对关联的 CMK 没有影响。
- 跨账户使用:是的。要使用不同 AWS 账户中的 CMK 执行此操作,请在 KeyId 参数的值中指定密钥 ARN 或“别名 ARN”。因此,这意味着 Alias 带有自己的 ARN,它独立于实际的 CMK。
- 有权管理标签和别名的委托人还可以控制对 CMK 的访问。有关详细信息,请参阅将 ABAC 用于 AWS KMS。
- AWS KMS 通过允许您根据与 CMK 关联的标签和别名控制对客户主密钥 (CMK) 的访问来支持 ABAC。
表示不可能的问题/要点:
- 这些功能不允许您通过在策略语句的资源元素中使用别名来识别 CMK。当别名是资源元素的值时,策略适用于别名资源,而不是可能与其关联的任何 CMK。
- 我们遇到了一个跨账户别名不起作用的案例,需要对外部客户的数据资产使用实际的 arn。我们的客户所做的唯一更改是将 arn 列入白名单而不是他们的别名,并且他们有权访问。
参考来源:
https://docs.aws.amazon.com/kms/latest/developerguide/alias-authorization.html
https://docs.aws.amazon.com/kms/latest/developerguide/alias-access.html
https://docs.amazonaws.cn/en_us/kms/latest/developerguide/abac.html
(如果您愿意,请忽略这一点)另一方面,如果 CMK 已导入密钥材料,则无法自动执行密钥轮换:“您无法自动轮换非对称 CMK、具有导入密钥材料的 CMK 或自定义密钥存储中的 CMK。但是,您可以手动旋转它们。” “当您开始使用新的 CMK 时,请务必启用原始 CMK,以便 AWS KMS 可以解密原始 CMK 加密的数据。解密数据时,KMS 会识别用于加密数据的 CMK,并使用相同的 CMK 来解密数据。只要您同时启用原始 CMK 和新 CMK,AWS KMS 就可以解密由任一 CMK 加密的任何数据。”