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

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

计划导入密钥材料

导入的密钥材料允许您在生成的加密密钥下保护您的 Amazon 资源。您导入的密钥材料与特定的 KMS 密钥相关联。您可以将相同的密钥材料重新导入到同一 KMS 密钥中,但不能将不同的密钥材料导入 KMS 密钥,也无法将专为导入的密钥材料设计的 KMS 密钥转换为带有密钥材料的 KMS Amazon KMS 密钥。

了解更多:

关于导入的密钥材料

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

您可以生成密钥材料

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

您可以删除密钥材料

您可以从 KMS 密钥中删除导入的密钥材料,以便立即使 KMS 密钥不可用。此外,当您将密钥材料导入 KMS 密钥中时,您可以确定密钥是否到期,并设置其到期时间。到期时间到来时, Amazon KMS 删除密钥材料。如果没有密钥材料,则该 KMS 密钥无法用于任何加密操作。要还原密钥,必须将相同密钥材料重新导入到密钥中。

您无法更改密钥材料

当您将密钥材料导入 KMS 密钥中时,该 KMS 密钥将与该密钥材料永久关联。您可以重新导入相同的密钥材料,但不能将不同的密钥材料导入该 KMS 密钥。而且,您不能为具有导入密钥材料的 KMS 密钥启用自动密钥轮换。但是,您可以手动轮换带有导入密钥材料的 KMS 密钥。

您无法更改密钥材料源

专用于导入的密钥材料的 KMS 密钥拥有一个 EXTERNAL值,该值无法更改。您不能将导入的密钥材料的 KMS 密钥转换为使用任何其他来源(包括)的密钥材料 Amazon KMS。同样,您不能将包含密钥材料的 KMS Amazon KMS 密钥转换为专为导入的密钥材料而设计的密钥。

您无法导出密钥材料

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

您可创建具有导入密钥材料的多区域密钥

具有导入密钥材料的多区域具有包含导入密钥材料的 KMS 密钥的功能,并且可以在 Amazon Web Services 区域之间进行互操作。要创建具有导入密钥材料的多区域密钥,您必须将相同的密钥材料导入 KMS 主密钥和每个副本密钥。有关更多信息,请参阅 将密钥材料导入到多区域密钥中

非对称密钥和 HMAC 密钥具有可移植性和互操作性

您可以在外部使用非对称密钥材料和 HMAC 密钥材料,与具有相同导入密钥材料的 Amazon Amazon KMS 密钥进行互操作。

与 Amazon KMS 对称密文不同,对称密文与算法中使用的 KMS 密钥密不可分,它 Amazon KMS 使用标准 HMAC 和非对称格式进行加密、签名和 MAC 生成。因此,这些密钥是可移植的,并且支持传统的托管密钥方案。

当您的 KMS 密钥导入了密钥材料后,您可以使用外部导入的密钥材料 Amazon 来执行以下操作。

  • HMAC 密钥 – 您可以使用导入的密钥材料验证由 HMAC KMS 密钥生成的 HMAC 标签。您还可以将 HMAC KMS 密钥与导入的密钥材料一起使用,以验证由外部的密钥材料生成的 HMAC 标签。 Amazon

  • 非对称加密密钥 — 您可以使用外部的私有非对称加密密钥 Amazon 来解密由 KMS 密钥和相应的公钥加密的密文。您还可以使用非对称 KMS 密钥来解密在外部生成的非对称密文。 Amazon

  • 非对称签名密钥 — 您可以使用带有导入密钥材料的非对称签名 KMS 密钥来验证由您的私有签名密钥在外部生成的数字签名。 Amazon您还可以在外部使用非对称公有签名密钥 Amazon 来验证非对称 KMS 密钥生成的签名。

如果您在相同的 Amazon Web Services 区域中将相同的密钥材料导入不同的 KMS 密钥中,则这些密钥也是可以互操作的。要在不同版本中创建可互操作的 KMS 密钥 Amazon Web Services 区域,请使用导入的密钥材料创建多区域密钥。

对称加密密钥不可移植或互操作

生 Amazon KMS 成的对称密文不可移植或互操作。 Amazon KMS 不会发布可移植性所需的对称密文格式,并且格式可能会更改,恕不另行通知。

  • Amazon KMS 即使您使用已导入的密钥材料,也无法解密您在外部加密的 Amazon对称密文。

  • Amazon KMS 不支持解密外部的任何 Amazon KMS 对称密文,即使密文是在 KMS 密钥下使用导入的密钥材料加密的。 Amazon KMS

  • 具有相同导入密钥材料的 KMS 密钥不可互操作。 Amazon KMS 生成每个 KMS 密钥特有的密文的对称密文。此加密文字格式保证只有加密数据的 KMS 密钥才能解密数据。

此外,您不能使用任何 Amazon 工具(例如Amazon Encryption SDKAmazon S3 客户端加密)来解密对称密文 Amazon KMS 。

因此,您不能使用带有导入密钥材料的密钥来支持密钥托管安排,在这种安排中,有权有条件访问密钥材料的授权第三方可以在外部解密某些密文。 Amazon KMS要支持密钥托管,请使用 Amazon Encryption SDK 来通过独立于 Amazon KMS的密钥加密您的消息。

您需要对可用性和持久性负责

Amazon KMS 旨在保持导入的密钥材料的高可用性。但是 Amazon KMS 不能将进口密钥材料的耐久性保持在与 Amazon KMS 生成的密钥材料相同的水平。有关更多信息,请参阅 保护导入的密钥材料

保护导入的密钥材料

您导入的密钥材料在传输中和静态时都受到保护。在导入密钥材料之前,您需要使用在 FIPS 140-2 加密模块验证计划下验证的 Amazon KMS 硬件安全模块 (HSM) 中生成的 RSA 密钥对的公钥来加密(或 “包装”)密钥材料。您可以使用包装公有密钥直接加密密钥材料,也可以使用 AES 对称密钥加密密钥材料,然后使用 RSA 公有密钥加密 AES 对称密钥。

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

您的 KMS 密钥与导入的密钥材料的使用完全取决于您在 KMS 密钥上设置的访问控制策略。此外,您还可以使用别名标签来识别和控制对 KMS 密钥的访问。您可以启用和禁用密钥,查看编辑其属性,并使用类似于 Amazon CloudTrail的服务对其进行监控

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

在以下情况下,这种持久性的差异是有意义的:

  • 当您为导入的密钥材料设置过期时间时,将在密钥材料到期后将其 Amazon KMS 删除。 Amazon KMS 不会删除 KMS 密钥或其元数据。您可以创建一个 Amazon CloudWatch 警报,在导入的密钥材料即将到期时通知您。

    您无法删除为 KMS 密钥 Amazon KMS 生成的密钥材料,也不能将 Amazon KMS 密钥材料设置为过期,但您可以轮换密钥材料。

  • 手动删除导入的密钥材料时, Amazon KMS 会删除密钥材料,但不会删除 KMS 密钥或其元数据。相比之下,计划密钥删除需要 7 到 30 天的等待期限,之后, Amazon KMS 将永久删除密钥材料、其元数据及其密钥材料。

  • 万一发生某些影响整个地区的故障 Amazon KMS (例如完全断电), Amazon KMS 则无法自动恢复导入的密钥材料。但是, Amazon KMS 可以恢复 KMS 密钥及其元数据。

必须在您控制的系统之外保留一份导入 Amazon 的密钥材料的副本。我们建议您将导入的密钥材料的可导出副本存储在密钥管理系统中,例如 HSM。如果您导入的密钥材料被删除或过期,则其关联的 KMS 密钥将无法使用,直到您重新导入相同的密钥材料。如果您导入的密钥材料永久丢失,则以 KMS 密钥加密的任何加密文字都将无法恢复。

导入密钥材料的权限

要使用导入的密钥材料创建和管理 KMS 密钥,用户需要在此过程中执行操作的权限。在您创建 KMS 密钥时,您可以在密钥策略中提供 kms:GetParametersForImportkms:ImportKeyMaterialkms:DeleteImportedKeyMaterial 权限。在 Amazon KMS 控制台中,当您使用外部密钥材料来源创建密钥时,会自动为密钥管理员添加这些权限。

若要使用导入的密钥材料创建 KMS 密钥,委托人需要以下权限。

要重新导入导入的密钥材料,委托人需要 k ms: GetParametersForImportkms: ImportKeyMaterial 权限。

要删除导入的密钥材料,委托人需要 kms: DeleteImportedKeyMaterial 权限。

例如,要授予示例使用导入的密钥材料管理 KMS 密钥所有方面的 KMSAdminRole 权限,请在 KMS 密钥的密钥策略中加入如下所示的密钥策略声明。

{ "Sid": "Manage KMS keys with imported key material", "Effect": "Allow", "Resource": "*", "Principal": { "AWS": "arn:aws:iam::111122223333:role/KMSAdminRole" }, "Action": [ "kms:GetParametersForImport", "kms:ImportKeyMaterial", "kms:DeleteImportedKeyMaterial" ] }

导入密钥材料的要求

您导入的密钥材料必须与相关 KMS 密钥的密钥规范兼容。对于非对称密钥对,仅导入密钥对的私钥。 Amazon KMS 从私钥派生公钥。

Amazon KMS 支持使用导入的密钥材料的 KMS 密钥的以下密钥规范。在中国区域,只有 SYMMETRIC_DEFAULT 密钥规范支持导入的密钥材料。

KMS 密钥的密钥类型 密钥材料要求

对称加密密钥

SYMMETRIC_DEFAULT

256 位(32 字节)的二进制数据

在中国区域,必须是 128 位(16 字节)的二进制数据。

HMAC 密钥

HMAC_224

HMAC_256

HMAC_384

HMAC_512

HMAC 密钥材料必须符合 RFC 2104

密钥长度必须与密钥规范指定的长度相匹配。

RSA 非对称私有密钥

RSA_2048

RSA_3072

RSA_4096

您导入的 RSA 非对称私有密钥必须是符合 RFC 3447 的密钥对的一部分。

模数:2048 位、3072 位或 4096 位

素数数量:2(不支持多素数 RSA 密钥)

非对称密钥材料必须采用符合 RFC 5208 的公有密钥加密标准(PKCS)#8 格式进行 BER 编码或 DER 编码。

椭圆曲线非对称私有密钥

ECC_NIST_P256 (secp256r1)

ECC_NIST_P384 (secp384r1)

ECC_NIST_P521 (secp521r1)

ECC_SECG_P256K1 (secp256k1)

您导入的 ECC 非对称私有密钥必须是符合 RFC 5915 的密钥对的一部分。

曲线:NIST P-256、NIST P-384、NIST P-521 或 Secp256k1

参数:仅限命名曲线(拒绝带有显式参数的 ECC 密钥)

公共点坐标:可以是压缩坐标、未压缩坐标或投影坐标

非对称密钥材料必须采用符合 RFC 5208 的公有密钥加密标准(PKCS)#8 格式进行 BER 编码或 DER 编码。