一、前言
最近在看阿里云密钥管理系统的导入功能,准备照着官网提供的文档进行一次测试,结果发现文档有问题,和售后扯了两天才搞清楚了,记录下免得以后忘了
二、通过控制台导入密钥材料
1、创建外部密钥
1、登录密钥管理服务控制台。
2、在页面左上角的地域下拉列表,选择密钥所在的地域。
3、在左侧导航栏,单击用户主密钥。
4、单击创建密钥。
5、在创建密钥对话框,设置KMS实例。
6、选择密钥类型。
请选择对称密钥类型Aliyun_AES_256或Aliyun_SM4。
7、设置别名、保护级别、描述和轮转周期。
8、单击高级选项,选择密钥材料来源为外部。
9、勾选我了解使用外部密钥材料的方法和意义,然后单击确定。
2、获取导入密钥材料参数。
1、导入密钥材料参数包括一个用于加密密钥材料的公钥,以及一个导入令牌。
2、在左侧导航栏,单击用户主密钥。
3、单击目标密钥的别名,进入密钥管理页面。
4、在密钥材料区域,单击获取导入参数。
5、在获取导入密钥材料的参数对话框,选择公钥类型为RSA_2048、加密算法RSAES_OAEP_SHA_1,单击下一步
6、点击下载导入令牌以及der格式的公钥
3、使用OPENSSL加密密钥材料
加密公钥是一个2048比特的RSA公钥,使用的加密算法需要与获取导入密钥材料参数时指定的一致。由于加密公钥经过Base64编码,因此在使用时需要先进行Base64解码。您可以通过OPENSSL加密公钥,获取您自己的密钥材料。
1、创建一个密钥材料,使用OPENSSL产生一个32字节的随机数进行演示。
2、根据指定的加密算法(以RSAES_OAEP_SHA_1为例)加密密钥材料(PublicKey.bin为控制台下载的公钥文件)。
3、将加密后的密钥材料进行Base64编码,保存为文本文件
openssl rand -out KeyMaterial.bin 32
openssl rsautl -encrypt -in KeyMaterial.bin -oaep -inkey PublicKey.bin -keyform DER -pubin -out EncryptedKeyMaterial.bin
##RSAES_OAEP_SHA_256
openssl pkeyutl -in PlaintextKeyMaterial.bin -inkey wrappingKey_a -out EncryptedKeyMaterial.bin -keyform der -pubin -encrypt -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256
openssl enc -e -base64 -A -in EncryptedKeyMaterial.bin -out EncryptedKeyMaterial_base64.txt
4、导入密钥材料
导入密钥材料时,可以将从未导入过密钥材料的外部密钥进行导入,也可以重新导入已经过期和已被删除的密钥材料,或者重置密钥材料的过期时间。
导入令牌与加密密钥材料的公钥具有绑定关系,一个令牌只能为其生成时指定的主密钥导入密钥材料。导入令牌的有效期为24小时,在有效期内可以重复使用,失效以后需要获取新的导入令牌和加密公钥。
1、在左侧导航栏,单击用户主密钥。
2、单击目标密钥的别名,进入密钥管理页面。
3、在密钥材料区域,单击导入密钥材料。
4、在导入打包后的密钥材料对话框,上传打包后的密钥材料和导入令牌。
打包后的密钥材料:上传步骤3生成的密钥材料文本文件。
导入令牌:上传步骤2获取的导入令牌文本文件。
5、设置密钥材料过期时间,单击确定。
导入密钥材料成功后,密钥状态从待导入更新为启用中。