

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

# 导入密钥的 AWS KMS 密钥材料
<a name="importing-keys"></a>

您可以使用您提供的密钥材料创建 AWS KMS keys （KMS 密钥）。

KMS 密钥是数据密钥的逻辑表示形式。KMS 密钥的元数据包括用于执行加密操作的密钥材料的 ID。在[创建 KMS 密钥](create-keys.md)时，默认情况下， AWS KMS 会生成该 KMS 密钥的密钥材料。但是，您可以创建不带密钥材料的 KMS 密钥，然后将自己的密钥材料导入该 KMS 密钥中，这个功能通常被称为“自带密钥 (BYOK)”。

![\[突出显示其所代表的密钥材料的钥匙图标。\]](http://docs.aws.amazon.com/zh_cn/kms/latest/developerguide/images/import-key.png)


**注意**  
AWS KMS 不支持解密通过外部对称加 AWS KMS 密 KMS 密钥加密的任何密文 AWS KMS，即使密文是使用导入的密钥材料在 KMS 密钥下加密的。 AWS KMS 不会发布此任务所需的密文格式，并且格式可能会更改，恕不另行通知。

当您使用导入的密钥材料时，您仍需对密钥材料负责，同时 AWS KMS 允许使用密钥材料的副本。出于以下一个或多个原因，您可以选择执行该操作：
+ 证明使用符合您要求的熵源生成了密钥材料。
+ 将您自己的基础设施中的密钥材料与 AWS 服务一起使用，并用于管理 AWS KMS 其中的密钥材料的生命周期 AWS。
+ 在中使用现有的、成熟的密钥 AWS KMS，例如用于代码签名、PKI 证书签名和证书固定的应用程序的密钥
+ 为中的密钥材料设置过期时间 AWS 并[手动将其删除](importing-keys-delete-key-material.md)，但也可以使其在将来再次可用。相比之下，[计划密钥删除](deleting-keys.md#deleting-keys-how-it-works)需要 7 到 30 天的等待期限，之后，您不能恢复已删除的 KMS 密钥。
+ 拥有密钥材料的原始副本，并将其保存在外部，以便在密钥材料 AWS 的整个生命周期中提高耐用性和灾难恢复。
+ 对于非对称密钥和 HMAC 密钥，导入会创建兼容且可互操作的密钥，这些密钥可在内部和外部运行。 AWS

**支持的 KMS 密钥类型**

AWS KMS 支持以下类型的 KMS 密钥的导入密钥材料。您无法将密钥材料导入[自定义密钥存储](key-store-overview.md#custom-key-store-overview)中的 KMS 密钥。
+ [对称加密 KMS 密钥](symm-asymm-choose-key-spec.md#symmetric-cmks)
+ [非对称 KMS 密钥（ML-DSA 密钥除外）](symmetric-asymmetric.md)
+ [HMAC KMS 密钥](hmac.md)
+ 支持的所有类型的[多区域密钥](multi-region-keys-overview.md)。

**区域**

所有支持的密钥材料均 AWS 区域 支持导入的密钥材料。 AWS KMS 

在中国区域，对称加密 KMS 密钥的密钥材料要求与其他区域不同。有关更多信息，请参阅 [步骤 3：加密密钥材料](importing-keys-encrypt-key-material.md)。

**了解详情**
+ 要创建具有导入密钥材料的 KMS 密钥，请参阅[删除具有导入密钥材料的 KMS 密钥](importing-keys-conceptual.md)。
+ 要创建警报以在 KMS 密钥中导入的密钥材料即将到期时通知您，请参阅[为导入的密钥材料过期创建 CloudWatch 警报](imported-key-material-expiration-alarm.md)。
+ 要将密钥材料重新导入 KMS 密钥中，请参阅[重新导入密钥材料](importing-keys-import-key-material.md#reimport-key-material)。
+ 要将新密钥材料导入 KMS 密钥以进行按需轮换，请参阅[导入新密钥材料](importing-keys-import-key-material.md#import-new-key-material)和[执行按需密钥轮换](rotating-keys-on-demand.md)。
+ 要识别和查看带导入的密钥材料的 KMS 密钥，请参阅[识别带导入的密钥材料的 KMS 密钥](identify-key-types.md#identify-imported-keys)。
+ 如需了解删除带导入的密钥材料的 KMS 密钥的特殊注意事项，请参阅[Deleting KMS keys with imported key material](deleting-keys.md#import-delete-key)。

# 导入的密钥材料的特殊注意事项
<a name="importing-keys-considerations"></a>

在决定将密钥材料导入之前 AWS KMS，您应该了解导入的密钥材料的以下特征。

**您可以生成密钥材料**  
您负责使用符合您的安全要求的随机源来生成密钥材料。

**您需要对可用性和持久性负责**  
AWS KMS 旨在保持导入的密钥材料的高可用性。但是 AWS KMS 不能将进口密钥材料的耐久性保持在与 AWS KMS 生成的密钥材料相同的水平。有关更多信息，请参阅 [保护导入的密钥材料](import-keys-protect.md)。

**您可以删除密钥材料**  
您可以从 KMS 密钥中[删除导入的密钥材料](importing-keys-delete-key-material.md)，以便立即使 KMS 密钥不可用。此外，当您将密钥材料导入 KMS 密钥中时，您可以确定密钥是否到期，并[设置其到期时间](importing-keys-import-key-material.md#importing-keys-expiration)。到期时间到来时， AWS KMS [删除密钥材料](importing-keys-delete-key-material.md)。如果没有密钥材料，则该 KMS 密钥无法用于任何加密操作。要还原密钥，必须将相同密钥材料重新导入到密钥中。

**您无法更改非对称密钥和 HMAC 密钥的密钥材料**  
当您将密钥材料导入 KMS 密钥中时，该 KMS 密钥将与该密钥材料永久关联。您可以[重新导入相同的密钥材料](importing-keys-import-key-material.md#reimport-key-material)，但不能将不同的密钥材料导入该 KMS 密钥。而且，您不能为具有导入密钥材料的 KMS 密钥[启用自动密钥轮换](rotate-keys.md)。但是，您可以[手动轮换](rotate-keys-manually.md)带有导入密钥材料的 KMS 密钥。

**您可以按需轮换对称加密密钥**  
带有导入密钥材料的对称加密密钥支持按需轮换。您可以将[多个密钥材料导入](importing-keys-import-key-material.md#import-new-key-material)此类密钥，并使用[按需轮换](rotating-keys-on-demand.md)来更新当前密钥材料。当前密钥材料用于加密和解密，但其他（非当前）密钥材料只能用于解密。

**您无法更改密钥材料源**  
专用于导入的密钥材料的 KMS 密钥拥有一个 `EXTERNAL` 的[源](create-keys.md#key-origin)值，该值无法更改。您不能将导入的密钥材料的 KMS 密钥转换为使用任何其他来源（包括）的密钥材料 AWS KMS。同样，您不能将包含密钥材料的 KMS AWS KMS 密钥转换为专为导入的密钥材料而设计的密钥。

**您无法导出密钥材料**  
您无法导出您导入的任何密钥材料。 AWS KMS 无法以任何形式将导入的密钥材料退还给您。您必须在外部保存导入的密钥材料的副本 AWS，最好是在密钥管理器中，例如硬件安全模块 (HSM)，以便在删除密钥材料或密钥材料过期时可以重新导入。

**您可创建具有导入密钥材料的多区域密钥**  
具有导入密钥材料的多区域具有包含导入密钥材料的 KMS 密钥的功能，并且可以在 AWS 区域之间进行互操作。要创建具有导入密钥材料的多区域密钥，您必须将相同的密钥材料导入 KMS 主密钥和每个副本密钥。有关导入多区域密钥的密钥材料的更多详细信息，请参阅[导入新密钥材料](importing-keys-import-key-material.md#import-new-key-material)。

**非对称密钥和 HMAC 密钥具有可移植性和互操作性**  
您可以在外部使用非对称密钥材料和 HMAC 密钥材料，与具有相同导入密钥材料的 AWS AWS KMS 密钥进行互操作。  
与 AWS KMS 对称密文不同，对称密文与算法中使用的 KMS 密钥密不可分，它 AWS KMS 使用标准 HMAC 和非对称格式进行加密、签名和 MAC 生成。因此，这些密钥是可移植的，并且支持传统的托管密钥方案。  
当您的 KMS 密钥导入了密钥材料后，您可以使用外部导入的密钥材料 AWS 来执行以下操作。  
+ HMAC 密钥 – 您可以使用导入的密钥材料验证由 HMAC KMS 密钥生成的 HMAC 标签。您还可以将 HMAC KMS 密钥与导入的密钥材料一起使用，以验证由外部的密钥材料生成的 HMAC 标签。 AWS
+ 非对称加密密钥 — 您可以使用外部的私有非对称加密密钥 AWS 来解密由 KMS 密钥和相应的公钥加密的密文。您还可以使用非对称 KMS 密钥来解密在外部生成的非对称密文。 AWS
+ 非对称签名密钥 — 您可以使用带有导入密钥材料的非对称签名 KMS 密钥来验证由您的私有签名密钥在外部生成的数字签名。 AWS您还可以在外部使用非对称公有签名密钥 AWS 来验证非对称 KMS 密钥生成的签名。
+ 非对称密钥协议密钥 – 您可以使用带导入的密钥材料的非对称密钥协议 KMS 密钥来与 AWS外的对等方派生共享密钥。
如果您在相同的 AWS 区域中将相同的密钥材料导入不同的 KMS 密钥中，则这些密钥也是可以互操作的。要在不同版本中创建可互操作的 KMS 密钥 AWS 区域，请使用导入的密钥材料创建多区域密钥。  

**RSA 私有密钥**
+ AWS KMS 要求导入的 RSA 私钥具有符合 [FIPS 186-5 第](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf) A 节中描述的测试的主要因素。1.3。其他软件或设备可能会使用其他算法来验证 RSA 私有密钥的这些质因子。在极少数情况下，使用其他算法验证的密钥可能不会被 AWS KMS接受。

**对称加密密钥不可移植或互操作**  
生 AWS KMS 成的对称密文不可移植或互操作。 AWS KMS 不会发布可移植性所需的对称密文格式，并且格式可能会更改，恕不另行通知。  
+ AWS KMS 即使您使用已导入的密钥材料，也无法解密您在外部加密的 AWS对称密文。
+ AWS KMS 不支持解密外部的任何 AWS KMS 对称密文，即使密文是在 KMS 密钥下使用导入的密钥材料加密的。 AWS KMS
+ 具有相同导入密钥材料的 KMS 密钥不可互操作。 AWS KMS 生成每个 KMS 密钥特有的密文的对称密文。此加密文字格式保证只有加密数据的 KMS 密钥才能解密数据。
此外，您不能使用任何 AWS 工具（例如[AWS Encryption SDK](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/)或 [Amazon S3 客户端加密](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingClientSideEncryption.html)）来解密对称密文 AWS KMS 。  
因此，您不能使用带有导入密钥材料的密钥来支持密钥托管安排，在这种安排中，有权有条件访问密钥材料的授权第三方可以在外部解密某些密文。 AWS KMS要支持密钥托管，请使用 [AWS Encryption SDK](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/java-example-code.html#java-example-multiple-providers) 来通过独立于 AWS KMS的密钥加密您的消息。

# 保护导入的密钥材料
<a name="import-keys-protect"></a>

您导入的密钥材料在传输中和静态时都受到保护。在导入密钥材料之前，您需要使用在 [FIPS 140-3 加密模块验证计划下验证的 AWS KMS 硬件安全模块 () 中生成的 RSA 密钥对的公钥来加密](https://csrc.nist.gov/projects/cryptographic-module-validation-program/certificate/4884)（或 “包装”HSMs）密钥材料。您可以使用包装公有密钥直接加密密钥材料，也可以使用 AES 对称密钥加密密钥材料，然后使用 RSA 公有密钥加密 AES 对称密钥。

收到后，使用 HSM 中的相应私钥对 AWS KMS 密钥材料进行解密，然后使用仅存在于 AWS KMS HSM 易失性存储器中的 AES 对称密钥对其进行重新加密。您的密钥材料绝不会让 HSM 处于纯文本状态。它仅在使用时解密，并且仅在使用中解密。 AWS KMS HSMs

您的 KMS 密钥与导入的密钥材料的使用完全取决于您在 KMS 密钥上设置的[访问控制策略](control-access.md)。此外，您还可以使用[别名](kms-alias.md)和[标签](tagging-keys.md)来识别和[控制对 KMS 密钥的访问](abac.md)。您可以使用 AWS CloudTrail等服务[启用和禁用](enabling-keys.md)密钥，以及[查看](viewing-keys.md)和[监控](monitoring-overview.md)密钥。

但是，您将保留密钥材料的唯一故障保护副本。作为这种额外控制措施的回报，您应对进口密钥材料的耐用性和整体可用性负责。 AWS KMS 旨在保持导入的密钥材料的高可用性。但是 AWS KMS 不能将进口密钥材料的耐久性保持在与 AWS KMS 生成的密钥材料相同的水平。

在以下情况下，这种持久性的差异是有意义的：
+ 当您为导入[的密钥材料设置过期时间](importing-keys-import-key-material.md#importing-keys-expiration)时，将在密钥材料到期后将其 AWS KMS 删除。 AWS KMS 不会删除 KMS 密钥或其元数据。您可以[创建一个 Amazon CloudWatch 警报](imported-key-material-expiration-alarm.md)，在导入的密钥材料即将到期时通知您。

  您无法删除为 KMS 密钥 AWS KMS 生成的密钥材料，也不能将 AWS KMS 密钥材料设置为过期。
+ [手动删除导入的密钥材料](importing-keys-delete-key-material.md)时， AWS KMS 会删除密钥材料，但不会删除 KMS 密钥或其元数据。相比之下，[计划删除密钥](deleting-keys.md#deleting-keys-how-it-works)需要等待 7 到 30 天，之后会 AWS KMS 永久删除 KMS 密钥、其元数据和密钥材料。
+ 万一发生某些影响整个地区的故障 AWS KMS （例如完全断电）， AWS KMS 则无法自动恢复导入的密钥材料。但是， AWS KMS 可以恢复 KMS 密钥及其元数据。

您*必须在*您控制的系统之外保留一份导入 AWS 的密钥材料的副本。我们建议您将导入的密钥材料的可导出副本存储在密钥管理系统中，例如 HSM。根据最佳实践要求，应将 AWS KMS 生成的对 KMS 密钥 ARN 和生成的密钥材料 ID 的引用与该密钥材料的可导出副本一同保存。如果您导入的密钥材料被删除或过期，则其关联的 KMS 密钥将无法使用，直到您重新导入相同的密钥材料。如果您导入的密钥材料永久丢失，则以 KMS 密钥加密的任何加密文字都将无法恢复。

**重要**  
对称加密密钥可以有多个与之关联的密钥材料。一旦您删除其中任何一个密钥材料或其中任何一个密钥材料过期（除非已删除或即将到期的密钥材料为或），则整个 KMS 密钥将无法使用。`PENDING_ROTATION` `PENDING_MULTI_REGION_IMPORT_AND_ROTATION`您必须重新导入与密钥关联的所有已过期或已删除密钥材料，然后该密钥才能用于密码操作。