本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
旋转 Amazon KMS keys
要为客户托管的密钥创建新的加密材料,您可以创建新的 KMS 密钥,然后更改您的应用程序或别名来使用新的 KMS 密钥。或者,您可以通过启用自动密钥轮换或执行按需轮换,来轮换与现有 KMS 密钥关联的密钥材料。
默认情况下,当您为 KMS 密钥启用自动密钥轮换时,每年会为 KMS 密钥 Amazon KMS 生成新的加密材料。您还可以指定自定义,rotation-period以定义启用自动密钥轮换以轮换密钥材料后的天数,以及此后每次自动轮换之间的天数。 Amazon KMS 如果您需要立即启动密钥材料轮换,则无论是否启用自动密钥轮换,都可以执行按需轮换。按需轮换不会更改现有的自动轮换计划。
您可以在 Amazon CloudWatch 和 Amazon Key Management Service 控制台中跟踪 KMS 密钥的密钥材料的轮换情况。 Amazon CloudTrail您还可以使用GetKeyRotationStatus操作来验证 KMS 密钥是否启用了自动轮换,并识别任何正在进行的按需轮换。您可以使用ListKeyRotations操作来查看已完成旋转的详细信息。
密钥轮换仅更改当前密钥材料,即加密操作中使用的加密机密。当您使用轮换的 KMS 密钥解密密文时,会 Amazon KMS 使用用于加密密文的密钥材料。您无法为解密操作选择特定的密钥材料,而是 Amazon KMS 会自动选择正确的密钥材料。由于使用适当的密钥材料进行 Amazon KMS 透明解密,因此您可以安全地在应用程序中使用轮换的 KMS 密钥,而 Amazon Web Services 服务 无需更改代码。
不管密钥材料有没有变更或变更了多少次,该 KMS 密钥仍是相同的逻辑资源。KMS 密钥的属性不会发生变化,如下图所示。

您可能决定创建新的 KMS 密钥来替代原有的 KMS 密钥。这跟轮换现有 KMS 密钥的密钥材料具有相同效果,因此这通常被视为手动轮换密钥。如果您想要轮换不符合自动或按需密钥轮换条件的 KMS 密钥,包括非对称 KMS 密钥、HMAC KMS 密钥、自定义密钥存储中的 KMS 密钥以及包含已导入密钥材料的多区域 KMS 密钥,则手动轮换是一个不错的选择。
注意
密钥轮换对 KMS 密钥保护的数据没有影响。它不会轮换 KMS 密钥生成的数据密钥,也不会重新加密受 KMS 密钥保护的任何数据。密钥轮换不会减轻数据密钥泄露的影响。
密钥轮换和定价
Amazon KMS 对为您的 KMS 密钥维护的密钥材料的第一次和第二次轮换收取月费。此次涨价以第二次轮换为上限,后续任何轮换均不收取费用。有关详细信息,请参阅 Amazon Key Management Service 定价
注意
您可以使用《Amazon Cost Explorer Service》https://docs.amazonaws.cn/cost-management/latest/userguide/ce-what-is.html来查看您的密钥存储费用明细。例如,您可以通过将使用类型指定为 $REGION-KMS-Keys
并按 API 操作对数据进行分组来筛选视图,以查看按当前和轮换 KMS 密钥计费的密钥的总费用。
您可能仍会看到历史日期的旧 Unknown
API 操作的实例。
密钥轮换和配额
在计算密钥资源配额时,无论轮换密钥材料版本的数量如何,每个 KMS 密钥均算作一个密钥。
有关密钥材料和轮换的详细信息,请参阅《Amazon Key Management Service 加密详细信息》。
为什么要轮换 KMS 密钥?
加密最佳实践不鼓励大量重复使用直接加密数据的密钥,例如生成的数据密钥。 Amazon KMS 当 256 位数据密钥加密数百万条消息时,它们可能会耗尽并开始生成带有细微模式的加密文字,聪明的操作者可以利用这些密文来发现密钥中的位。最好使用一次或仅使用几次数据密钥,以缓解密钥耗尽的情况。
但是,KMS 密钥最常用作“包装密钥”,也称为“密钥加密密钥”。包装密钥不是加密数据,而是对加密数据的数据密钥进行加密。因此,其使用频率远低于数据密钥,并且几乎从未被重复使用到足以出现密钥耗尽的风险。
尽管耗尽风险非常低,但由于业务或合同规则或政府法规,您可能需要轮换 KMS 密钥。当你被迫轮换 KMS 密钥时,我们建议你在支持的情况下使用自动密钥轮换,如果不支持自动轮换,则使用按需轮换,在不支持自动或按需密钥轮换时使用手动密钥轮换。
您可以考虑执行按需轮换,演示密钥材料轮换功能或验证自动化脚本。我们建议对计划外轮换使用按需轮换,并尽可能使用带有自定义轮换周期的自动密钥轮换。
密钥轮换的工作原理
密钥轮换设计 Amazon KMS 为透明且易于使用。 Amazon KMS 仅支持客户托管密钥的可选自动和按需密钥轮换。
- 自动密钥轮换
-
Amazon KMS 在轮换周期定义的下一个轮换日期自动轮换 KMS 密钥。您无需记住或计划更新。
只有 Amazon KMS 生成密钥材料的对称加密 KMS 密钥才支持自动密钥轮换(
AWS_KMS
来源)。对于客户托管的 KMS 密钥,自动轮换是可选的。 Amazon KMS 始终每年轮换 Amazon 托管 KMS 密钥的密钥材料。 Amazon 拥有的 KMS 密钥的轮换由拥有 Amazon Web Services 服务 该密钥的人管理。
- 按需轮换
-
无论是否启用了自动密钥轮换,都会立即开始轮换与 KMS 密钥关联的密钥材料。
对称加密 KMS 密钥支持按需密钥轮换,其密钥材料 Amazon KMS 可生成(
AWS_KMS
来源),以及使用导入的密钥材料(EXTERNAL
来源)的单区域、对称加密 KMS 密钥。 - 手动旋转
-
以下类型的 KMS 密钥既不支持自动密钥轮换,也不支持按需轮换,但您可以手动轮换这些 KMS 密钥。
-
自定义密钥存储中的 KMS 密钥
- 管理密钥材料
-
Amazon KMS 即使禁用了密钥轮换,也会保留带有
AWS_KMS
来源的 KMS 密钥的所有密钥材料。 Amazon KMS 只有在删除 KMS 密钥时才会删除密钥材料。您可以通过
EXTERNAL
来源管理对称加密密钥的密钥材料。您可以使用DeleteImportedKeyMaterial操作删除任何密钥材料,也可以在导入材料时设置过期时间。一旦KMS密钥的任何材料过期或被删除,KMS密钥就会变得不可用。 - 使用密钥材料
-
当您使用轮换的 KMS 密钥加密数据时, Amazon KMS 使用当前的密钥材料。当您使用轮换 KMS 密钥解密密文时, Amazon KMS 会使用与加密时所用密钥材料相同的版本。您无法为解密操作选择特定版本的密钥材料,而是 Amazon KMS 会自动选择正确的版本。
- 轮换周期
-
轮换期限定义了在您启用自动密钥轮换后, Amazon KMS 将轮换密钥材料的天数,以及此后每次自动密钥轮换之间的天数。如果您在启用自动密钥轮换时未指定
RotationPeriodInDays
的值,则默认值为 365 天。您可以使用 k ms: RotationPeriodInDays 条件键进一步限制委托人可以在参数中
RotationPeriodInDays
指定的值。 - 轮换日期
-
轮换日期反映了由于自动(定期)轮换或按需密钥轮换而更新 KMS 密钥的当前密钥材料的日期。
- 轮换日期
-
Amazon KMS 在轮换周期定义的轮换日期自动轮换 KMS 密钥。默认轮换周期为 365 天。
- 客户托管密钥
-
由于客户托管密钥的自动密钥轮换是可选的,并且可以随时启用和禁用,因此轮换日期取决于最近启用轮换的日期。如果您修改先前启用了自动密钥轮换的密钥的轮换周期,则日期可能会更改。在密钥的生命周期内,轮换日期可能会更改很多次。
例如,如果您在 2022 年 1 月 1 日创建客户托管密钥,并在 2022 年 3 月 15 日启用自动密钥轮换,且默认轮换周期为 365 天,则 Amazon KMS 会在 2023 年 3 月 15 日、2024 年 3 月 15 日以及之后每 365 天轮换密钥材料。
以下示例假设启用了自动密钥轮换,且默认轮换周期为 365 天。这些示例演示了可能影响密钥轮换周期的特殊情况。
-
禁用密钥轮换 - 如果您在任何时候禁用自动密钥轮换,KMS 密钥将继续使用禁用轮换时使用的密钥材料版本。如果您再次启用自动密钥轮换,则 Amazon KMS 会根据新的启用轮换的日期轮换密钥材料。
-
已禁用 KMS 密钥-当 KMS 密钥处于禁用状态时, Amazon KMS 不会对其进行轮换。但是,密钥轮换状态不会发生改变,并且在 KMS 密钥处于禁用状态时不能对其进行更改。重新启用 KMS 密钥后,如果密钥材料已超过其上次计划轮换日期,则 Amazon KMS 会立即轮换。如果密钥材料没有错过上次预定的轮换日期,则 Amazon KMS 恢复原来的密钥轮换计划。
-
待删除的 KMS 密钥-当 KMS 密钥处于待删除状态时, Amazon KMS 不会对其进行轮换。密钥轮换状态设为
false
,处于待删除状态时不能更改。如果删除被取消,将恢复之前的密钥轮换状态。如果密钥材料已超过其上次预定的轮换日期,则立即将其 Amazon KMS 轮换。如果密钥材料没有错过上次预定的轮换日期,则 Amazon KMS 恢复原来的密钥轮换计划。
-
- Amazon 托管式密钥
-
Amazon KMS Amazon 托管式密钥 每年自动轮换(大约 365 天)。您无法启用或禁用 Amazon 托管式密钥 的密钥轮换。
的密钥材料在创建日期一年后首次轮换,此后每年(自上次轮换后大约 365 天)进行轮换。 Amazon 托管式密钥
注意
2022年5月,将轮换时间表 Amazon 托管式密钥 从每三年(约1,095天) Amazon KMS 改为每年(约365天)。
- Amazon 拥有的密钥
-
您无法启用或禁用 Amazon 拥有的密钥的密钥轮换。的密钥轮换策略 Amazon 拥有的密钥 由创建和管理密钥的 Amazon 服务决定。有关详细信息,请参阅服务的用户指南或开发人员指南中的静态加密主题。
- 轮换多区域密钥
-
您可以启用和禁用自动轮换,并按需轮换对称加密中的密钥材料进行按需轮换。
AWS_KMS
密钥轮换是多区域密钥的共享属性。仅在主密钥上启用和禁用自动密钥轮换。您仅对主密钥启动按需轮换。
-
Amazon KMS 同步多区域密钥时,它会将密钥轮换属性设置从主键复制到其所有相关的副本密钥。
-
Amazon KMS 轮换密钥材料时,它会为主键创建新的密钥材料,然后将新的密钥材料跨区域边界复制到所有相关的副本密钥中。密钥材料永远不会处于 Amazon KMS 未加密状态。此步骤经过精心控制,以确保在加密操作中使用任何密钥之前密钥材料完全同步。
-
Amazon KMS 在主密钥及其每个副本密钥中都提供该密钥材料之前,不会使用新的密钥材料对任何数据进行加密。
-
复制已轮换的主密钥时,新的副本密钥具有相关多区域密钥的当前密钥材料和所有先前版本的密钥材料。
此模式可确保相关的多区域密钥完全可互操作。任何多区域密钥都可以解密由相关多区域密钥加密的任何密文,即使密文在创建密钥之前已加密。
-
- Amazon 服务
-
您可以在用于 Amazon 服务中的服务器端加密的客户托管密钥上启用自动密钥轮换。年度轮换是透明的,并与 Amazon 服务兼容。
- 监控密钥轮换
-
Amazon KMS 轮换Amazon 托管式密钥或客户托管密钥的密钥材料时,它会向 Amazon EventBridge 写一个
KMS CMK Rotation
事件,将一个RotateKey 事件写入您的 Amazon CloudTrail 日志。您可以使用这些记录验证 KMS 密钥是否已轮换。您可以使用 Amazon Key Management Service 控制台查看 KMS 密钥的剩余按需轮换次数以及 KMS 密钥所有已完成的密钥材料轮换的列表。
您可以使用ListKeyRotations操作来查看已完成旋转的详细信息。
- 最终一致性
-
密钥轮换会受到与其他 Amazon KMS 管理操作相同的最终一致性影响。新的密钥材料在整个 Amazon KMS中可用之前可能会有一些延迟。但是,轮换密钥材料不会导致加密操作中断或延迟。当前的密钥材料用于加密操作,直到新的密钥材料在整个 Amazon KMS中可用为止。当自动轮换多区域密钥的密钥材料时,将 Amazon KMS 使用当前密钥材料,直到新的密钥材料在所有带有相关多区域密钥的区域中都可用。