当您为专属KMS标准版实例创建对称密钥材料来源为外部的密钥时,专属KMS不会为您创建的用户主密钥(CMK)在密码机集群生成对称密钥材料,此时您可以将自己的对称密钥材料导入到CMK中。本文为您介绍如何导入外部对称密钥材料。

背景信息

您可以调用DescribeKey接口判断对称密钥材料来源。当OriginEXTERNAL时,说明对称密钥材料由外部导入,称为外部密钥

当您选择对称密钥材料来源为外部,使用您自己导入的对称密钥材料时,需要注意以下几点:
  • 请确保您使用了符合要求的随机源生成对称密钥材料。
  • 由于对称密钥材料将导入到您的密码机集群中,且暂不支持调用DeleteKeyMaterial接口删除对称密钥材料。因此您需要调用ScheduleKeyDeletion接口,等待您指定的计划删除时间后,密码机集群中的对称密钥材料随着CMK一起被删除。
  • 每个CMK只能拥有一个对称密钥材料。一个对称密钥材料导入CMK后,CMK将与该对称密钥材料绑定,后续将无法导入其他对称密钥材料。
  • 支持导入128位、192位或256位对称密钥作为对称密钥材料。

步骤一:创建外部密钥

  1. 登录密钥管理服务控制台
  2. 在页面左上角的地域下拉列表,选择专属KMS标准版实例所在的地域。
  3. 在左侧导航栏,单击专属KMS
  4. 单击目标专属KMS标准版实例操作列的管理
  5. 用户主密钥区域,单击创建密钥
  6. 创建密钥对话框,选择密钥类型
    支持的密钥类型为Aliyun_AES_128、Aliyun_AES_192、Aliyun_AES_256。
  7. 设置别名描述
  8. 单击高级选项,选择密钥材料来源外部
  9. 勾选我了解使用外部密钥材料的方法和意义,然后单击确定

步骤二:获取导入对称密钥材料参数

导入对称密钥材料参数包括一个用于加密对称密钥材料的公钥,以及一个导入令牌。
  1. 用户主密钥区域,单击目标密钥ID,进入密钥管理页面。
  2. 密钥材料区域,单击获取导入参数
  3. 获取导入密钥材料的参数对话框,选择公钥类型加密算法,然后单击下一步
    说明

    公钥类型取值为RSA_2048时,您可以选择加密算法RSAES_PKCS1_V1_5(默认值)或RSAES_OAEP_SHA_256,本文以RSAES_PKCS1_V1_5为例为您介绍。

  4. 下载加密公钥和导入令牌,然后单击关闭

步骤三:加密对称密钥材料

下载公钥和导入令牌后,您可以使用该公钥加密您的密钥材料。

以使用OpenSSL加密密钥材料为例:使用的加密算法需要与获取导入对称密钥材料参数时指定的一致。由于加密公钥经过Base64编码,因此在使用时需要先进行Base64解码。

  1. 创建一个对称密钥材料,使用OPENSSL产生一个32字节的随机数进行演示。
  2. 根据指定的加密算法(以RSAES_PKCS1_V1_5为例)加密对称密钥材料。
  3. 将加密后的对称密钥材料进行Base64编码,保存为文本文件。
    openssl rand -out KeyMaterial.bin 32
    openssl rsautl -encrypt -in KeyMaterial.bin -pkcs -inkey PublicKey.bin  -keyform DER  -pubin -out EncryptedKeyMaterial.bin
    openssl enc -e -base64 -A -in EncryptedKeyMaterial.bin -out EncryptedKeyMaterial_base64.txt

步骤四:导入对称密钥材料

导入令牌与加密对称密钥材料的公钥具有绑定关系,一个令牌只能为其生成时指定的主密钥导入对称密钥材料。导入令牌的有效期为24小时,在有效期内可以重复使用,失效以后需要获取新的导入令牌和加密公钥。

  1. 用户主密钥区域,单击目标密钥ID,进入密钥管理页面。
  2. 对称密钥材料区域,单击导入密钥材料
  3. 导入打包后的密钥材料对话框,上传打包后的密钥材料导入令牌,并单击确定

执行结果

导入对称密钥材料成功后,密钥状态从待导入更新为启用中