导入密钥材料步骤 4:导入密钥材料 - Amazon Key Management Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

导入密钥材料步骤 4:导入密钥材料

加密密钥材料之后,您可以导入密钥材料,以将其与 Amazon KMS key 配合使用。要导入密钥材料,请上传在步骤 3:加密密钥材料中加密的密钥材料以及在步骤 2:下载包装公有密钥和导入令牌中下载的导入令牌。您必须将密钥材料导入您在下载公有密钥和导入令牌时指定的同一 KMS 密钥中。成功导入密钥材料时,KMS 密钥的密钥状态会更改为 Enabled,您可以在加密操作中使用 KMS 密钥。

当您导入密钥材料时,您可以为密钥材料设置可选的过期日期。当密钥材料过期后,Amazon KMS 将删除密钥材料,并且 KMS 密钥将变为不可用。要在加密操作中使用该 KMS 密钥,您必须重新导入相同的密钥材料。导入密钥材料后,无法设置、更改或取消当前导入的到期日期。要更改这些值,您必须删除重新导入相同的密钥材料。

要导入密钥材料,您可以使用Amazon KMS控制台或 ImportKeyMaterialAPI。您也可以通过发出 HTTP 请求,或使用 Amazon 开发工具包Amazon Command Line InterfaceAmazon Tools for PowerShell 直接使用 API。

导入密钥材料时,会在Amazon CloudTrail日志中添加一个记录ImportKeyMaterial操作的ImportKeyMaterial条目。无论您使用Amazon KMS控制台还是 Amazon KMS API, CloudTrail 条目都是一样的。

设置过期时间(可选)

导入 KMS 密钥的密钥材料时,可以将密钥材料的可选过期日期和时间设置为自导入之日起 365 天中的任意一天。当导入的密钥材料过期后,Amazon KMS 会将其删除。此操作会将 KMS 密钥的密钥状态更改为 PendingImport,这将阻止在任何加密操作中使用该密钥。要使用 KMS 密钥,您必须重新导入原始密钥材料的副本

确保导入的密钥材料经常过期,可帮助您满足监管要求,但这样做会给在 KMS 密钥下加密的数据带来额外的风险。在您重新导入原始密钥材料的副本之前,包含过期密钥材料的 KMS 密钥不可用,并且在 KMS 密钥下加密的任何数据都不可访问。如果您出于任何原因未能重新导入密钥材料(例如,丢失原始密钥材料的副本),则 KMS 密钥将永久不可用,在 KMS 密钥下加密的数据将无法恢复。

为了降低这种风险,请确保导入的密钥材料副本可访问,并设计一个系统,以在密钥材料过期并中断您的 Amazon 工作负载之前将其删除并重新导入。我们建议您针对导入的密钥材料的过期设置警报,这样您就有足够的时间在密钥材料过期之前重新导入密钥材料。您还可以使用 CloudTrail 日志来审核导入(和重新导入)密钥材料和删除导入的密钥材料的Amazon KMS操作,以及删除过期密钥材料的操作。

您无法将不同的密钥材料导入 KMS 密钥,Amazon KMS 也无法还原、恢复或重现已删除的密钥材料。您可以通过编程定期删除重新导入已导入的密钥材料,而无需设置过期时间,但是保留原始密钥材料副本的要求相同。

在导入密钥材料时,确定导入的密钥材料是否以及何时过期。但是您可以开启和关闭过期时间,也可以通过删除和重新导入密钥材料来设置新的过期时间。使用ExpirationModel参数开启过期时间 (KEY_MATERIAL_EXPIRES) 和关闭 (KEY_MATERIAL_DOES_NOT_EXPIRE),使用ValidTo参数设置到期时间。ImportKeyMaterial自导入数据起的最大天数为 365 天;没有最短天数,但必须是未来时间。

导入密钥材料(控制台)

您可以使用 Amazon Web Services Management Console导入密钥材料。

  1. 如果您在上传已包装的密钥材料页面上,请跳至 步骤 8

  2. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon Key Management Service (Amazon KMS) 控制台:https://console.aws.amazon.com/kms

  3. 要更改 Amazon Web Services 区域,请使用页面右上角的区域选择器。

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

  5. 选择已为其下载公有密钥和导入令牌的 KMS 密钥的密钥 ID 或别名。

  6. 选择 Cryptographic configuration(加密配置)选项卡并查看其值。这些选项卡位于 General configuration(常规配置)部分下 KMS 密钥的详细信息页面上。

    您只能将密钥材料导入外部(导入密钥材料)的 KMS 密钥。有关创建带已导入密钥材料的 KMS 密钥的信息,请参阅 导入 Amazon KMS 密钥的密钥材料

  7. 选择密钥材料选项卡,然后选择导入密钥材料密钥材料选项卡仅针对值为外部(导入密钥材料)的 KMS 密钥显示。

    如果您下载了密钥材料、导入令牌并加密了密钥材料,请选择下一步

  8. 加密的密钥材料和导入令牌部分,执行以下操作。

    1. 包装的密钥材料下,选择选择文件。然后上传包含您的已包装(已加密)密钥材料的文件。

    2. 导入令牌下,选择选择文件。上传包含您已下载的导入令牌的文件。

  9. Expiration option (过期选项) 部分中,确定密钥材料是否过期。要设置到期日期和时间,请选择 Key material expires (密钥材料过期),并使用日历选择日期和时间。您可以指定的日期距当前日期和时间最多 365 天。

  10. 选择 Upload key material (上传密钥材料)

导入密钥材料 (Amazon KMS API)

要导入密钥材料,请使用ImportKeyMaterial操作。以下示例使用 Amazon CLI,但您可以使用受支持的任何编程语言。

要使用此示例,请执行以下操作:

  1. 1234abcd-12ab-34cd-56ef-1234567890ab 替换为您在下载公有密钥和导入令牌时指定的 KMS 密钥的密钥 ID。要标识 KMS 密钥,请使用其密钥 ID密钥 ARN。该操作不能使用别名别名 ARN

  2. EncryptedKeyMaterial.bin 替换为包含加密的密钥材料的文件的名称。

  3. ImportToken.bin 替换为包含导入令牌的文件的名称。

  4. 如果希望导入的密钥材料过期,请将 expiration-model 参数的值设置为其默认值 KEY_MATERIAL_EXPIRES,或省略 expiration-model 参数。然后,将 valid-to 参数的值替换为您希望密钥材料过期的日期和时间。日期和时间最长为请求时间起 365 天。

    $ aws kms import-key-material --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --encrypted-key-material fileb://EncryptedKeyMaterial.bin \ --import-token fileb://ImportToken.bin \ --expiration-model KEY_MATERIAL_EXPIRES \ --valid-to 2023-06-17T12:00:00-08:00

    如果不希望导入的密钥材料过期,请将 expiration-model 参数的值设置为 KEY_MATERIAL_DOES_NOT_EXPIRE,并从命令中省略 valid-to 参数。

    $ aws kms import-key-material --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --encrypted-key-material fileb://EncryptedKeyMaterial.bin \ --import-token fileb://ImportToken.bin \ --expiration-model KEY_MATERIAL_DOES_NOT_EXPIRE
提示

如果命令不成功,则可能会看到 KMSInvalidStateExceptionNotFoundException。您可以重试请求。