AWS Key Management Service
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

导入密钥材料步骤 3:加密密钥材料

下载公有密钥并导入令牌后,您可以使用公有密钥加密您的密钥材料。密钥材料必须采用二进制格式。

通常,您可以在将密钥材料从硬件安全模块 (HSM) 或密钥管理系统导出时对其进行加密。有关如何以二进制格式导出密钥材料的信息,请参阅有关 HSM 或密钥管理系统的文档。您还可以参阅以下部分,该部分使用 OpenSSL 提供了概念验证演示。

加密密钥材料时,请将 加密方案与您在下载公有密钥时指定的填充选项配合使用,并导入令牌 (RSAES_OAEP_SHA_256、RSAES_OAEP_SHA_1 或 RSAES_PKCS1_V1_5)。

示例:使用 OpenSSL 加密密钥材料

以下示例显示了如何使用 OpenSSL 生成一个 256 位对称密钥,然后加密此密钥材料,以便导入到 KMS 客户主密钥 (CMK)。

重要

此示例仅为概念验证演示。对于生产系统,请使用更安全的方法 (如商业 HSM 或密钥管理系统) 来生成和存储您的密钥材料。

RSAES_OAEP_SHA_1 加密算法最适合此示例。在运行此示例之前,请确保您在步骤 2 中针对包装算法使用了 RSAES_OAEP_SHA_1。如有必要,请重复该步骤以下载和导入公有密钥和令牌。

使用 OpenSSL 生成二进制密钥材料并将其加密,以便导入到 AWS KMS

  1. 使用以下命令生成一个 256 位对称密钥,并将其保存在名为 PlaintextKeyMaterial.bin 的文件中。

    $ openssl rand -out PlaintextKeyMaterial.bin 32
  2. 使用以下命令以利用您之前下载的公有密钥 (请参阅下载公有密钥和导入令牌(KMS API)) 加密密钥材料,并将其保存在名为 EncryptedKeyMaterial.bin 的文件中。将 PublicKey.bin> 替换为包含公有密钥的文件的名称。如果您是从控制台下载的公有密钥,则此文件的名称为 wrappingKey_CMK_key_ID_timestamp (例如,wrappingKey_f44c4e20-f83c-48f4-adc6-a1ef38829760_0809092909)。

    $ openssl rsautl -encrypt \ -in PlaintextKeyMaterial.bin \ -oaep \ -inkey PublicKey.bin \ -keyform DER \ -pubin \ -out EncryptedKeyMaterial.bin

继续执行步骤 4:导入密钥材料