最近更新时间:2023-02-09
如果用户希望使用自己的密钥材料,而非KMS生成的密钥材料,可通过控制台将自己的密钥材料导入到KMS,由KMS统一管理。
已准备好待导入的密钥材料。
已创建密钥来源为“外部”的密钥。
导入密钥前,请确认以下内容:
安全性
用户在使用导入密钥时,需要对自己密钥材料的安全性负责。请保存密钥材料的原始备份,以备意外删除密钥材料后,能及时将备份的密钥材料重新导入KMS。
可用性及持久性
在将密钥材料导入KMS之前,用户需要确保密钥材料的可用性和持久性。
关联性
当用户将密钥材料导入用户主密钥时,该用户主密钥与该密钥材料永久关联,不能将其他密钥材料导入该用户主密钥中。
唯一性
当用户使用导入的密钥加密数据时,加密后的数据必须使用加密时采用的用户主密钥(即用户主密钥的元数据及密钥材料与导入的密钥匹配)才能解密数据,否则解密会失败。
登录紫光云控制台。
在左侧导航栏中,依次选择“产品与服务 > 安全 > 密钥管理服务”。
在安全控制台导航栏中,选择“密钥管理服务 > 密钥管理”。
在密钥列表中找到待导入密钥材料的密钥,点击“导入密钥”,在弹出的“导入密钥材料”对话框中,选择相应的密钥包装算法。
单击“下载”,下载的文件包含包装密钥、导入令牌和说明文件。
importToken_密钥ID_下载时间:即导入令牌,KMS导入密钥材料时需要使用。
README_密钥ID_下载时间:即说明文件,记录密钥ID、密钥包装算法。
wrappingKey_密钥ID_下载时间:即包装密钥,用于加密密钥材料的包装密钥。
注意:生成的包装密钥和导入令牌将在24小时后过期,请下载后及时使用。
采用OpenSSL工具,使用下载的“包装密钥”对待导入的密钥材料进行加密。
注:若用户需要使用openssl pkeyutl命令,OpenSSL需要是1.0.2及以上版本。
下面以配套算法为“RSAES_OAEP_SHA_256”为例进行说明。
在已安装OpenSSL工具的客户端上,执行以下命令,生成随机数。
openssl rand -out KeyMaterial.bin 32 |
进行解密操作,以下命令中的publickey.txt参数请以下载的包装密钥名称wrappingKey_密钥ID_下载时间.txt进行替换。
openssl enc -d -base64 -A -in publickey.txt -out PublicKey.bin |
加密生成密钥材料。
openssl pkeyutl -encrypt -in KeyMaterial.bin -inkey PublicKey.bin -keyform DER -pubin -out EncryptedKeyMaterial.bin -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256 -pkeyopt rsa_mgf1_md:sha1 |
将生成的密钥材料进行加密。
openssl enc -e -base64 -A -in EncryptedKeyMaterial.bin -out EncryptedKeyMaterial_base64.txt |
单击“下一步”,进入“导入密钥”页面。
具体参数说明如下:
参数 | 操作说明 |
加密的密钥材料 | 选择OpenSSL工具生成的EncryptedKeyMaterial_base64.txt |
导入令牌 | 选择第5步“下载”的导入令牌。 |
密钥材料过期时间 |
密钥材料失效后,KMS会在24小时内自动删除密钥材料,删除后密钥将无法使用,且密钥状态变更为“等待导入”。 |
单击“确定”,页面右上角弹出“操作成功”,则说明导入密钥成功。用户可在密钥列表中查看到导入的密钥信息,导入密钥的默认状态为“启用”。
注意:密钥ID、导入的密钥材料和导入的令牌需要全部匹配,密钥材料才能导入成功,否则会导入失败。