旋转 客户主密钥 - AWS Key Management Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

旋转 客户主密钥

加密最佳实践建议不要广泛重复使用加密密钥。为您的 AWS Key Management Service (AWS KMS) 客户主密钥 (CMKs),您可以创建新的 CMKs,然后更改您的应用程序或别名,使用 CMKs. 或者,您可以为现有的 客户管理 CMK.

当您启用 自动键旋转 对于客户管理 CMK, AWS KMS 为 CMK 每年。 AWS KMS 另外 CMK的旧密码材料永久性使用,可用于解密其加密的数据。 AWS KMS 不会删除任何旋转的密钥材料,直到您 删除 CMK.

关键旋转仅更改 CMK的 背衬键,这是加密操作中使用的加密材料。TheThethe CMK 是相同的逻辑资源,无论其背衬键更改是多少次。的特性 CMK 请勿更改,如下图所示。

自动密钥轮换具有以下优点:

  • 的特性 CMK,包括其密钥ID、关键ARN、地区、策略和权限,在旋转密钥时不会更改。

  • 您不需要更改参考 CMK ID或ARN。

  • 在启用关键旋转之后, AWS KMS 旋转 CMK 每年自动进行。您无需记住或计划更新。

但是,自动键旋转对数据的影响 CMK 保护。它不会旋转数据密钥, CMK 已生成或重新加密任何受 CMK,并且它不会降低受损数据密钥的影响。

您可能决定创建新的 CMK 并使用 CMK. 这与在现有 CMK因此,它经常被认为是 手动旋转密钥. 如果您想控制密钥轮换计划,手动轮换是很好的选择。它还提供一种旋转方式 CMKs 不符合自动钥匙旋转条件,包括 不对称 CMKs, CMKs 在 定制主要商店,和 CMKs 带有 导入的关键材料.

密钥轮换和定价

旋转客户管理 CMKs 可能会导致每月额外收费。有关详细信息,请参阅 AWS Key Management Service 定价。有关背景键和旋转的更多详细信息,请参阅 AWS Key Management Service 加密详情白皮书.

自动密钥轮换的工作方式

关键旋转 AWS KMS 是一种保护最佳实践,旨在透明且易于使用。 AWS KMS 仅支持可选自动密钥旋转 客户管理 CMKs.

  • 背景密钥管理。 AWS KMS 保留所有背景键 CMK,即使关键旋转已禁用。只有当 CMK 已删除。当您使用 CMK 加密 AWS KMS 使用当前背衬键。当您使用 CMK 解密 AWS KMS 使用用于加密的背衬键。

  • 启用和禁用密钥轮换 默认情况下,客户管理的自动密钥旋转已禁用 CMKs. 启用(或重新启用)键旋转时, AWS KMS 自动旋转 CMK 启用日期后365天,以及之后每365天。

  • 已禁用 CMKs. 虽然A CMK 已禁用, AWS KMS 不会旋转它。但是,关键旋转状态不会改变,而且您不能更改它 CMK 已禁用。当 CMK 如果背衬密钥超过365天, AWS KMS 立即以及之后每365天旋转一次。如果备用密钥少于 365 天,AWS KMS 会恢复原始密钥轮换计划。

  • CMKs 待删除。 虽然A CMK 待删除, AWS KMS 不会旋转它。密钥轮换状态设为 false,处于待删除状态时不能更改。如果删除被取消,将恢复之前的密钥轮换状态。如果备用密钥已超过 365 天,AWS KMS 会立即轮换,并在此后每隔 365 天轮换一次。如果备用密钥少于 365 天,AWS KMS 会恢复原始密钥轮换计划。

  • AWS 管理 CMKs. 您无法管理 AWS 管理 CMKs... AWS KMS 自动旋转 AWS 管理 CMKs 每3年(1095天)。

  • AWS 拥有 CMKs. 您无法管理 AWS 拥有 CMKs。 AWS 拥有的 CMK 的密钥轮换策略由创建和管理 CMK 的 AWS 服务确定。有关详细信息,请参阅 静态加密 服务用户指南或开发人员指南中的主题。

  • AWS 服务。您可以在 客户管理 CMKs 用于服务器端加密 AWS 服务。年度轮换是透明的,并与 AWS 服务兼容。

  • 监控密钥轮换。 当WhenWhen AWS KMS 自动旋转关键材料 AWS 管理 CMK客户管理 CMK,它写入 KMS CMK Rotation 活动至 Amazon CloudWatch EventsRotateKey事件 您的 AWS CloudTrail 日志。您可以使用这些记录来验证 CMK 旋转。

  • 不支持 CMK 类型。 自动键旋转是 支持以下类型的 CMKs但您可以 旋转这些 CMKs 手动.

如何启用和禁用自动密钥轮换

您可以使用 AWS KMS 控制台或 AWS KMS API用于启用和禁用自动密钥旋转,并查看任何客户管理的旋转状态 CMK.

启用自动键旋转时, AWS KMS 旋转 CMK 启用日期后365天,以及之后每365天。

启用和禁用密钥轮换(控制台)

  1. 登录 AWS 管理控制台并通过以下网址打开 AWS Key Management Service (AWS KMS) 控制台:https://console.amazonaws.cn/kms

  2. 要更改 AWS 区域,请使用页面右上角的区域选择器。

  3. 在导航窗格中,选择 Customer managed keys (客户托管密钥)。 (您无法启用或禁用旋转 AWS 托管密钥。每三年自动旋转一次。)

  4. 选择别名或密钥ID CMK.

  5. 选择 Key rotation (密钥轮换) 选项卡。

    TheThethe 关键旋转 选项卡仅显示在对称的详细信息页上 CMKs 关键材料 AWS KMS 生成的 原产地AWS_KMS)。无法自动旋转不对称性 CMKs, CMKs 带有 导入的关键材料,或 CMKs 在 定制主要商店. 但是,您可以手动轮换它们

  6. 选择或清除 自动旋转此项 CMK 每年 复选框。

    注意

    如果 CMK 已禁用或待删除, 自动旋转此项 CMK 每年 复选框已清除,您无法更改。当启用 CMK 或取消删除。有关详细信息,请参阅 自动密钥轮换的工作方式关键状态: 对您的 CMK

  7. 选择 Save (保存)

启用和禁用密钥轮换(AWS KMS API)

您可以使用 AWS Key Management Service (AWS KMS)API 启用和禁用自动密钥旋转,并查看任何客户管理的当前旋转状态 CMK. 这些示例使用 AWS Command Line Interface (AWS CLI),但您可以使用任何受支持的编程语言。

TheThethe 启用键旋转 操作允许指定的自动键旋转 CMK. DisableKeyRotation 操作会禁用它。以识别 CMK 在这些操作中,使用 密钥ID关键ARN. 默认情况下,客户管理的密钥旋转已禁用 CMKs.

以下示例启用指定对称的密钥旋转 CMK 并使用 GetKeyrotationStatus 操作以查看结果。然后,它禁用了密钥轮换,并使用GetKeyRotationStatus查看变更。

$ aws kms enable-key-rotation --key-id 1234abcd-12ab-34cd-56ef-1234567890ab $ aws kms get-key-rotation-status --key-id 1234abcd-12ab-34cd-56ef-1234567890ab { "KeyRotationEnabled": true } $ aws kms disable-key-rotation --key-id 1234abcd-12ab-34cd-56ef-1234567890ab $ aws kms get-key-rotation-status --key-id 1234abcd-12ab-34cd-56ef-1234567890ab { "KeyRotationEnabled": false }

手动轮换密钥

您可能希望创建新的 CMK 并使用它代替 CMK 而不是启用自动键旋转。新的 CMK 与当前的密码材料不同 CMK,使用 CMK 与更改现有背景密钥的效果相同 CMK. 更换一个过程的过程 CMK 另一个被称为 手动键旋转.

如果您希望控制轮换的频率,建议您通过手动的方式轮换密钥。这也是适合于 CMKs 不符合自动关键旋转条件,例如不对称 CMKs, CMKs 在 定制主要商店 和 CMKs 带有 导入的关键材料.

注意

当您开始使用新的 CMK,确保保持原始的 CMK 已启用 AWS KMS 可解密原始数据 CMK 已加密。解密数据时,KMS识别 CMK 用于加密数据,并使用相同的 CMK 解密数据。只要您保持原始和新的 CMKs 已启用, AWS KMS 可解密任何通过任何一种方式加密的数据 CMK.

因为 CMK 是来自当前的不同资源 CMK,它有一个不同的密钥ID和ARN。更改时 CMKs,您需要更新对 CMK 应用中的ID或ARN。别名,将友好名称与 CMK,让这个过程更容易。使用别名参考 CMK 在您的应用中。然后,当您想更改 CMK 应用程序使用,更改目标 CMK 的别名。

更新目标 CMK 别名,使用 更新别名 操作 AWS KMS API。例如,此命令会更新 TestCMK 别名指向新的 CMK. 由于操作不返回任何输出,示例使用 列表别名 操作以显示别名现在与不同的 CMK.

$ aws kms list-aliases { "Aliases": [ { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/TestCMK", "AliasName": "alias/TestCMK", "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" }, ] } $ aws kms update-alias --alias-name alias/TestCMK --target-key-id 0987dcba-09fe-87dc-65ba-ab0987654321 $ aws kms list-aliases { "Aliases": [ { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/TestCMK", "AliasName": "alias/TestCMK", "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321" }, ] }