步骤 1:创建不带密钥材料的 AWS KMS key - AWS Key Management Service

步骤 1:创建不带密钥材料的 AWS KMS key

默认情况下,当您创建 KMS 密钥时,AWS KMS 会为您创建密钥材料。要改为导入自己的密钥材料,请先创建不带密钥材料的 KMS 密钥。然后导入密钥材料。要创建不具有密钥材料的 KMS 密钥,请使用 AWS KMS 控制台或 CreateKey 操作。

要创建不具有密钥材料的密钥,请指定 EXTERNAL。KMS 密钥的源属性是不可变的。创建完成后,无法将专为导入密钥材料设计的 KMS 密钥转换为带有 AWS KMS 中的密钥材料或任何其他源的 KMS 密钥。

EXTERNAL 且无密钥材料的 KMS 密钥的密钥状态PendingImport。KMS 密钥可以无限保留在 PendingImport 状态。但是,您不能在加密操作中使用处于 PendingImport 状态的 KMS 密钥。导入密钥材料时,KMS 密钥的密钥状态会更改为 Enabled,您可以在加密操作中使用该密钥。

AWS KMS 会在您 创建 KMS 密钥下载公有密钥和导入令牌 以及 导入密钥材料 时在您的 AWS CloudTrail 日志中记录一个事件。当您 删除导入的密钥材料 或 AWS KMS 删除过期的密钥材料时,AWS KMS 也会记录 CloudTrail 事件。

创建不带密钥材料的 KMS 密钥(控制台)

您只需为导入的密钥材料创建一次 KMS 密钥。您可以根据需要多次将相同的密钥材料导入和重新导入到现有的 KMS 密钥中,但不能将不同的密钥材料导入一个 KMS 密钥。有关详细信息,请参阅步骤 2:下载包装公有密钥和导入令牌

要在您的 客户管理型密钥 表中查找带有导入的密钥材料的现有 KMS 密钥,请使用右上角的齿轮图标显示 KMS 密钥列表中的 Origin(源)列。导入的密钥的值为外部(导入密钥材料)

要使用导入的密钥材料创建 KMS 密钥,请首先按照创建首选密钥类型的 KMS 密钥的说明操作,但以下情况除外。

选择密钥用法后,请执行以下操作:

  1. 展开 Advanced options (高级选项)

  2. 对于 Key material origin(密钥材料源),请选择 External (Import key material) [外部(导入密钥材料)]。

  3. 选择我了解使用导入密钥的安全性和持久性影响旁边的复选框,表示您了解使用导入密钥材料的影响。要了解这些含义,请参阅保护导入的密钥材料

  4. 可选:要使用导入的密钥材料创建多区域 KMS 密钥,请在区域性下选择多区域密钥

  5. 返回基本说明。对于该类型的所有 KMS 密钥,基本过程的其余步骤都相同。

选择完成时,您创建了一个 KMS 密钥,该密钥没有密钥材料,状态(密钥状态)为待导入

但是,控制台不会返回到客户托管密钥表,而是显示一个页面,您可以在其中下载导入密钥材料所需的公有密钥和导入令牌。现在,您可以立即继续下载步骤,也可以选择取消停止下载。您可以随时返回此下载步骤。

下一步: 步骤 2:下载包装公有密钥和导入令牌

创建不带密钥材料的 KMS 密钥 (AWS KMS API)

要使用 AWS KMS API 创建不带密钥材料的对称 KMS 密钥,请发送 CreateKey 请求,并将 Origin 参数设置为 EXTERNAL。以下示例说明如何使用 AWS Command Line Interface (AWS CLI) 执行该操作。

$ aws kms create-key --origin EXTERNAL

该命令成功执行后,您会看到类似以下内容的输出。AWS KMS 密钥的 OriginEXTERNAL,且其 KeyStatePendingImport

提示

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

{ "KeyMetadata": { "Origin": "EXTERNAL", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Description": "", "Enabled": false, "MultiRegion": false, "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "PendingImport", "CreationDate": 1568289600.0, "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "KeyManager": "CUSTOMER", "KeySpec": "SYMMETRIC_DEFAULT", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ] } }

从命令输出中复制 KeyId 值,以供后面的步骤使用,然后继续 步骤 2:下载包装公有密钥和导入令牌

注意

此命令创建对称加密 KMS 密钥,其 KeySpecSYMMETRIC_DEFAULTKeyUsageENCRYPT_DECRYPT。您可以使用可选参数 --key-spec--key-usage 来创建非对称或 HMAC KMS 密钥。有关更多信息,请参阅 CreateKey 操作。