管理导入的密钥材料 - AWS Key Management Service

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

管理导入的密钥材料

这些主题说明了如何将密钥材料导入和重新导入 KMS 密钥,以及如何创建自动过期的导入密钥材料。

导入密钥材料的概述

以下概述说明了如何将密钥材料导入 AWS KMS。如需了解该过程中每个步骤的更多详细信息,请参阅相应主题。

  1. 创建不具有密钥材料的 KMS 密钥 - 源必须是 EXTERNAL。密钥来源为EXTERNAL表示密钥是为导入的密钥材料设计的,因此无法 AWS KMS 为 KMS 密钥生成密钥材料。在后面的步骤中,您会将自己的密钥材料导入此 KMS 密钥中。

    您导入的密钥材料必须与关联 AWS KMS 密钥的密钥规格兼容。有关兼容性的更多信息,请参阅 导入密钥材料的要求

  2. 下载包装公有密钥和导入令牌 – 在完成步骤 1 后,请下载公有密钥和导入令牌。当您的密钥材料导入时,这些物品可以保护您的密钥材料 AWS KMS。

    在此步骤中,您将选择 RSA 包装密钥的类型(“密钥规范”)以及用于加密向 AWS KMS传输的传输中数据的包装算法。每次导入或重新导入相同的密钥材料时,您可以选择不同的包装密钥规范和包装密钥算法。

  3. 加密密钥材料 – 使用在步骤 2 中下载的包装公有密钥加密您在自己的系统上创建的密钥材料。

  4. 导入密钥材料 – 上传您在步骤 3 中创建的已加密的密钥材料以及您在步骤 2 中下载的导入令牌。

    在此阶段,您可以设置可选的过期时间。导入的密钥材料过期后,将其 AWS KMS 删除,KMS 密钥将无法使用。要继续使用该 KMS 密钥,您必须重新导入相同的密钥材料。

    导入操作成功完成后,KMS 密钥的密钥状态将从 PendingImport 变为 Enabled。现在,您可以在加密操作中使用 KMS 密钥。

AWS KMS 在创建 KMS 密钥、下载封装公钥和导入令牌以及导入密钥材料时,会在 AWS CloudTrail 日志中记录一个条目。 AWS KMS 还会在您删除导入的密钥材料或 AWS KMS 删除过期的密钥材料时记录一个条目。

重新导入密钥材料

如果您管理带有导入的密钥材料的 KMS 密钥,则可能需要重新导入密钥材料。您可以通过重新导入密钥材料替换过期或删除的密钥材料,或者更改密钥材料的到期模型或到期日期。

当您将密钥材料导入 KMS 密钥中时,该 KMS 密钥将与该密钥材料永久关联。您可以重新导入相同的密钥材料,但不能将不同的密钥材料导入该 KMS 密钥。您不能轮换密钥材料, AWS KMS 也无法为具有导入密钥材料的 KMS 密钥创建密钥材料。

您可以在可满足您的安全要求任何时间点重新导入密钥材料。您不必等到密钥材料达到或接近其过期时间。

要重新导入密钥材料,请使用您首次用来导入密钥材料的相同过程,但以下情况除外。

  • 使用现有 KMS 密钥,而不是创建新的 KMS 密钥。您可以跳过导入过程的步骤 1

  • 重新导入密钥材料时,您可以更改到期模型和到期日期。

每次将密钥材料导入 KMS 密钥时,您需要为 KMS 密钥下载并使用新的包装密钥和导入令牌。包装过程不会影响密钥材料的内容,因此,您可以使用不同的包装公有密钥和不同的包装算法来导入相同的密钥材料。

标识具有导入密钥材料的 KMS 密钥

在创建不带密钥材料的 KMS 密钥时,KMS 密钥的 Origin 属性的值为 EXTERNAL,并且它不能更改。与密钥状态不同,Origin 值不依赖于是否存在密钥材料。

您可以使用 EXTERNAL 源值来标识专为导入的密钥材料而设计的 KMS 密钥。您可以在 AWS KMS 控制台中或使用DescribeKey操作找到密钥来源。您还可以使用控制台或 API 查看密钥材料的属性,例如它是否以及何时过期。

要标识带导入的密钥材料的 KMS 密钥(控制台)

  1. 打开 AWS KMS 控制台,网址为 https://console.aws.amazon.com/kms

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

  3. 使用以下任一方法可查看 KMS 密钥的 Origin 属性。

    • 要向 KMS 密钥表添加 Origin(源)列,请在右上角选择 Settings(设置)图标。选择 Origin (源),然后选择 Confirm (确认)“源”列可让您轻松标识具有外部(导入密钥材料)源属性值的 KMS 密钥。

    • 要查找特定 KMS 密钥的 Origin 属性的值,请选择该 KMS 密钥的密钥 ID 或别名。然后,选择 Cryptographic configuration(加密配置)选项卡。这些选项卡在 General configuration(常规配置)部分下。

  4. 要查看有关密钥材料的详细信息,请选择 Key material(密钥材料)选项卡。此选项卡仅显示在具有导入密钥材料的 KMS 密钥的详细信息页面上。

使用导入的密钥材料 (AWS KMS API) 识别 KMS 密钥

使用该DescribeKey操作。此响应包含 KMS 密钥的 Origin 属性、过期模型和过期日期,如以下示例所示。

$ aws kms describe-key --key-id 1234abcd-12ab-34cd-56ef-1234567890ab { "KeyMetadata": { "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Origin": "EXTERNAL", "ExpirationModel": "KEY_MATERIAL_EXPIRES" "ValidTo": 2023-06-05T12:00:00+00:00, "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "CreationDate": 2018-06-09T00:06:50.831000+00:00, "Enabled": false, "MultiRegion": false, "Description": "", "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "PendingImport", "KeyManager": "CUSTOMER", "KeySpec": "SYMMETRIC_DEFAULT", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ] } }

为导入的密钥材料过期创建 CloudWatch 警报

您可以创建一个 CloudWatch 警报,在 KMS 密钥中导入的密钥材料即将过期时通知您。例如,警报可以在距离到期时间少于 30 天时通知您。

当您将密钥材料导入 KMS 密钥中时,可以选择性地指定密钥材料的到期时间。当密钥材料过期时, AWS KMS 会删除密钥材料,KMS 密钥将无法使用。要再次使用该 KMS 密钥,您必须重新导入密钥材料。但是,如果您在密钥材料到期之前将其重新导入,则可以避免中断使用该 KMS 密钥的进程。

此警报使用 AWS KMS 发布到的SecondsUntilKeyMaterialExpires指标, CloudWatch 用于导入的密钥材料已过期的 KMS 密钥。每个警报都使用此指标来监控特定 KMS 密钥的导入密钥材料。您无法为所有具有到期密钥材料的 KMS 密钥创建单个警报,也无法为未来可能创建的 KMS 密钥创建警报。

要求

监控导入密钥材料过期的 CloudWatch 警报需要以下资源。

创建警报

使用以下必填值按照基于静态阈值创建 CloudWatch 警报中的说明进行操作。对于其他字段,请接受默认值并按要求提供名称。

Field Value
选择指标

选择 KMS,然后选择每密钥指标

选择带有 KMS 密钥和 SecondsUntilKeyMaterialExpires 指标的行。然后选择 Select metric(选择指标)

指标列表仅显示导入密钥材料已到期的 KMS 密钥的 SecondsUntilKeyMaterialExpires 指标。如果您在账户和区域中没有带这些属性的 KMS 密钥,则此列表为空。

Statistic 最低
周期 1 minute
阈值类型 静态
当 ... metric-name 大于 1

删除导入的密钥材料

您可以随时从 KMS 密钥中删除导入的密钥材料。此外,当导入的带有过期日期的密钥材料到期时, AWS KMS 会删除该密钥材料。在这两种情况下,密钥材料被删除时,KMS 密钥的密钥状态将更改为“待导入”,并且在您重新导入相同密钥材料之前,KMS 密钥不能用于任何加密操作。(您无法将任何其他密钥材料导入 KMS 密钥。)

除了禁用 KMS 密钥和撤回权限外,还可以将删除密钥材料用作一种策略,以快速但暂时地停止使用 KMS 密钥。相比之下,计划删除具有导入密钥材料的 KMS 密钥也会很快停止使用 KMS 密钥。但是,如果在等待期内未取消删除,则会永久删除 KMS 密钥、密钥材料和所有密钥元数据。有关更多信息,请参阅 删除具有导入密钥材料的 KMS 密钥

要删除密钥材料,您可以使用 AWS KMS 控制台或 DeleteImportedKeyMaterialAPI 操作。 AWS KMS 当您删除导入的密钥材料和AWS KMS 删除过期的密钥材料时,会在 AWS CloudTrail 日志中记录一个条目。

删除密钥材料如何影响 AWS 服务

当您删除密钥材料时,没有密钥材料的 KMS 密钥会立即变为不可用(视最终一致性而定)。不过,在再次使用 KMS 密钥(例如解密数据密钥)之前,使用受 KMS 密钥保护的数据密钥加密的资源不会受到影响。此问题会影响 AWS 服务,其中许多使用数据密钥来保护您的资源。有关更多信息,请参阅 不可用的 KMS 密钥如何影响数据密钥

删除密钥材料(控制台)

您可以使用 AWS Management Console 来删除密钥材料。

  1. 登录 AWS Management Console 并打开 AWS Key Management Service (AWS KMS) 控制台,网址为 https://console.aws.amazon.com/kms

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

  3. 在导航窗格中,选择客户托管密钥

  4. 请执行以下操作之一:

    • 选中带导入密钥材料的 KMS 密钥对应的复选框。依次选择 Key actionsDelete key material

    • 选择带导入密钥材料的 KMS 密钥的别名或密钥 ID。选择 Key material(密钥材料)选项卡,然后选择 Delete key material(删除密钥材料)。

  5. 确认要删除该密钥材料,然后选择 Delete key material。KMS 密钥的状态(对应于其密钥状态)更改为 Pending import(等待导入)。

删除密钥材料 (AWS KMS API)

要使用 AWS KMS API 删除密钥材料,DeleteImportedKeyMaterial请发送请求。以下示例说明如何使用 AWS CLI 执行该操作。

1234abcd-12ab-34cd-56ef-1234567890ab 替换为您要删除其密钥材料的 KMS 密钥的密钥 ID。在该操作中,您可以使用 KMS 密钥的密钥 ID 或 ARN,但不能使用别名。

$ aws kms delete-imported-key-material --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

删除具有导入密钥材料的 KMS 密钥

删除具有导入密钥材料的 KMS 密钥的密钥材料是临时的,并且是可撤销的。要恢复密钥,请重新导入其密钥材料。

相反,删除 KMS 密钥操作是不可逆的。如果您计划删除密钥且所需的等待期已过期,则 AWS KMS 永久且不可逆转地删除 KMS 密钥、其密钥材料以及与 KMS 密钥关联的所有元数据。

但是,删除具有导入密钥材料的 KMS 密钥的风险和后果取决于 KMS 密钥的类型(“密钥规范”)。

  • 对称加密密钥 - 如果删除对称加密 KMS 密钥,则所有由该密钥加密的其余加密文字都无法恢复。即使您拥有相同的密钥材料,也无法创建新的对称加密 KMS 密钥来解密已删除的对称加密 KMS 密钥的加密文字。每个 KMS 密钥独有的元数据以加密方式绑定到每个对称加密文字。此安全功能保证只有加密对称加密文字的 KMS 密钥才能解密该加密文字,但阻止您重新创建等效的 KMS 密钥。

  • 非对称密钥和 HMAC 密钥 — 如果您拥有原始密钥材料,则可以创建与已删除的非对称密钥或 HMAC KMS 密钥具有相同加密属性的新 KMS 密钥。 AWS KMS 生成标准 RSA 密文和签名、ECC 签名和 HMAC 标记,其中不包含任何独特的安全功能。此外,您还可以在 AWS之外使用 HMAC 密钥或非对称密钥对的私有密钥。

    使用相同的非对称或 HMAC 密钥材料创建的新 KMS 密钥将具有不同的密钥标识符。您必须创建新的密钥政策,重新创建所有别名,并更新现有的 IAM policy 和授权,以引用新的密钥。