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

导入密钥材料步骤 1:创建不带密钥材料的 AWS KMS 客户主密钥 (CMK)

默认情况下,当您创建客户主密钥 (CMK) 时,AWS KMS 会为您创建密钥材料。要改为导入自己的密钥材料,请先创建不带密钥材料的 CMK。您可以按照 CMK 的 origin 区分这两种类型的 CMK。当 AWS KMS 为您创建密钥材料时,CMK 的 origin 为 AWS_KMS。当您创建不带密钥材料的 CMK 时,CMK 的 origin 是 EXTERNAL,这表示该密钥材料是在 AWS KMS 外部生成的。

不带密钥材料的 CMK 处于等待导入状态,并且不可用。要使用它,您必须按下文所述导入密钥材料。导入密钥材料后,CMK 的密钥状态将更改为已启用。有关密钥状态的更多信息,请参阅密钥状态对客户主密钥的使用有何影响

要创建不带密钥材料的 CMK,您可以使用 AWS 管理控制台 或 AWS KMS API。通过发出 HTTP 请求或通过 AWS 开发工具包命令行工具之一,您可以直接使用该 API。

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

您可以使用 AWS 管理控制台创建不带密钥材料的 CMK。执行此操作之前,可将控制台配置为显示 CMK 列表中的 Origin (源) 列。导入的密钥的 Origin (源) 值为 External (外部)

您只需为导入的密钥材料创建一次 CMK。要将相同的密钥材料重新导入现有 CMK 中,请参阅步骤 2:下载公有密钥和导入令牌

注意

AWS KMS 最近引入了新的控制台,使您可以更轻松地组织和管理 KMS 资源。它在除了 AWS GovCloud (US)之外 AWS KMS 支持的所有 AWS 区域中可用。我们建议您通过 https://console.amazonaws.cn/kms 试用新的 AWS KMS 控制台。

原始控制台将在短时间内保持可用状态,以便您有时间熟悉新控制台。要使用原始控制台,请在 IAM 控制台中选择加密密钥,或者转到 。请通过在任意控制台中或者在此页面的右下角选择 Feedback (反馈) 来分享您的反馈。

创建不带密钥材料的 CMK(新控制台)
  1. 登录 AWS 管理控制台并通过以下网址打开 AWS Key Management Service (AWS KMS) 控制台:https://console.amazonaws.cn/kms

  2. 要更改 AWS 区域,请使用页面右上角的区域选择器。

  3. 在导航窗格中,选择 Customer managed keys (客户托管密钥)

  4. 选择 Create key

  5. 为 CMK 键入别名和 (可选的) 描述。

    选择 Next

  6. 选择 Advanced options (高级选项)

  7. 对于 Key material origin (密钥材料源),选择 External (外部)

    然后,选中 I understand the security, availability, and durability implications of using an imported key 旁边的复选框,表示您了解使用导入密钥材料的影响。要了解这些影响,请选择 security, availability, and durability implications (安全性、可用性和持久性影响) 链接。

    选择 Next

  8. (可选)。在 Add tags (添加标签) 页面上,添加标识或分类 CMK 的标签。

    选择 Next

  9. Key Administrators (密钥管理员) 部分中,选择可管理 CMK 的 IAM 用户和角色。有关更多信息,请参阅允许密钥管理员管理 CMK

    注意

    IAM 策略可以向其他 IAM 用户和角色授予管理 CMK 的权限。

  10. (可选)要阻止选定 IAM 用户和角色删除此 CMK,请在页面底部的 Key deletion (密钥删除) 部分中,清除 Allow key administrators to delete this key (允许密钥管理员删除此密钥) 复选框。

    选择 Next

  11. This account (此账户) 部分中,选择此 AWS 账户中可在加密操作中使用 CMK 的 IAM 用户和角色。有关更多信息,请参阅允许密钥用户使用 CMK

    注意

    IAM 策略可以向其他 IAM 用户和角色授予使用 CMK 的权限。

  12. (可选)您可以允许其他 AWS 账户将此 CMK 用于加密操作。为此,请在页面底部的 Other AWS accounts (其他 AWS 账户) 部分中,选择 Add another AWS account (添加其他 AWS 账户) 并输入外部账户的 AWS 账户标识号。要添加多个外部账户,请重复此步骤。

    注意

    要允许外部账户中的委托人使用 CMK,外部账户的管理员必须创建提供这些权限的 IAM 策略。有关更多信息,请参阅允许外部 AWS 账户访问 CMK

    选择 Next

  13. Review and edit key policy (审核和编辑密钥策略) 页面上,审核和编辑新 CMK 的策略文档。完成后,选择 Finish (完成)

    如果操作成功,则已创建不带密钥材料的 CMK。其状态为 Pending import (等待导入)。 要立即继续执行该流程,请参阅下载公有密钥和导入令牌(控制台)。要稍后继续此过程,请选择 Cancel (取消)

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

创建不带密钥材料的 CMK(原始控制台)
  1. 登录 AWS 管理控制台,然后转至 。

  2. 对于 Region (区域),选择适当的 AWS 区域。请勿使用导航栏中的区域选择器(右上角)。

  3. 选择 Create key

  4. 为 CMK 键入别名和 (可选的) 描述。

  5. 选择 Advanced Options

  6. 对于 Key Material Origin,选择 External。然后,选中 I understand the security, availability, and durability implications of using an imported key 旁边的复选框,表示您了解使用导入密钥材料的影响。要了解这些影响,请选择 security, availability, and durability implications (安全性、可用性和持久性影响) 链接。

    选择 Next Step

  7. (可选)。在 Add tags (添加标签) 页面上,添加标识或分类 CMK 的标签。

    选择 Next Step

  8. 选择哪些 IAM 用户和角色可以管理此 CMK。有关更多信息,请参阅允许密钥管理员管理 CMK

    注意

    使用指定了适当权限的 IAM 策略的所有 IAM 用户和角色也可以管理此 CMK。

    选择 Next Step

  9. 选择哪些 IAM 用户和角色可使用此 CMK 加密和解密数据。有关更多信息,请参阅允许密钥用户使用 CMK

    注意

    使用指定了适当权限的 IAM 策略的所有 IAM 用户和角色也可以使用此 CMK。

  10. (可选)在页面底部,您可以向其他 AWS 账户授予使用 CMK 加密和解密数据的权限。选择 Add an External Account (添加外部账户),然后键入将获得相关权限的账户的 AWS 账户 ID。根据需要重复此步骤,以添加多个外部账户。

    注意

    外部账户的管理员还必须为用户创建 IAM 策略,以允许访问此 CMK。有关更多信息,请参阅允许外部 AWS 账户访问 CMK

    选择 Next Step

  11. 选择 Finish 以创建 CMK。

    完成此步骤后,控制台会显示 Import key material 向导。要立即继续执行该流程,请参阅下载公有密钥和导入令牌(控制台)

    否则,请选择 Skip and do this later。您的新 CMK 将一直为 Pending Import 状态,直到您按如下步骤所述导入密钥材料。

继续执行步骤 2:下载公有密钥和导入令牌

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

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

$ aws kms create-key --origin EXTERNAL

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

{ "KeyMetadata": { "Origin": "EXTERNAL", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Description": "", "Enabled": false, "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "PendingImport", "CreationDate": 1470811233.761, "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333" } }

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