用户主密钥包含密钥元数据(密钥ID、密钥别名、描述、密钥状态与创建日期)和用于加解密数据的密钥材料。
当用户使用KMS管理控制台创建用户主密钥时,KMS系统会自动为该用户主密钥生成密钥材料。
当用户希望使用自己的密钥材料时,可通过KMS管理控制台的导入密钥功能创建密钥材料为空的用户主密钥,并将自己的密钥材料导入该用户主密钥中。
注意事项
当您选择密钥材料来源为外部,使用您自己导入的密钥材料时,需要注意以下几点:
请确保您使用了符合安全要求的随机源生成密钥材料。
在使用导入密钥时,需要对自己密钥材料的可靠性负责。
请保存密钥材料的原始备份,以便在意外删除密钥材料时,能及时将备份的密钥材料重新导入KMS。
功能特性
可用性与持久性
在将密钥材料导入KMS之前,用户需要确保密钥材料的可用性和持久性。
导入的密钥材料与通过KMS创建密钥时自动生成的密钥材料的区别,如下表所示。
密钥材料来源 说明 外部导入 支持手动删除密钥材料,但该主密钥及其元数据仍然保留。
导入密钥材料时,可以设置密钥材料过期时间,密钥材料过期后,KMS将自动删除密钥材料,但该主密钥及其元数据仍然保留。
导入的密钥材料被删除后,可以再次导入相同的密钥材料使得CMK再次可用。用户需自行备份密钥材料,以便密钥材料失效或误删除时重新导入该密钥材料。KMS创建 不能手动删除密钥材料,不能设置密钥材料过期时间。
密钥材料只能通过设置CMK计划删除时间后,到期后随CMK一并删除。关联性
当您将密钥材料导入CMK时,该CMK与该密钥材料永久关联,不能将其他密钥材料导入该CMK中,即便密钥材料已经过期或者被删除。
独立性
CMK具有唯一性,即您使用CMK加密的数据,无法使用其他CMK进行解密,即便这些CMK都使用相同的密钥材料。
限制条件
AES_256类型的CMK需导入256位对称密钥作为密钥材料。
从KMS获取到的导入令牌与加密密钥材料的公钥具有绑定关系,一个令牌只能为其生成时指定的主密钥导入密钥材料。导入令牌的有效期为24小时,在有效期内可以重复使用,失效以后需要获取新的导入令牌和加密公钥。
操作步骤-导入密钥材料
创建用户主密钥,其中密钥材料来源选择“外部”并勾选“我了解使用外部密钥材料的方法和意义”。
获取导入密钥材料参数。
在密钥列表,单击“密钥ID”,进入“密钥详情”,在密钥材料区域,单击获取导入密钥材料参数。
在获取导入密钥材料参数对话框,选择“公钥类型”、“加密算法”,单击“确定”。
配置项说明:
配置项 说明 公钥类型 取值:RSA_2048(默认) 加密算法 取值:
RSAES_PKCS1_V1_5
RSAES_OAEP_SHA_1
RSAES_OAEP_SHA_256
在获取导入密钥材料参数对话框,下载“加密公钥”和“导入令牌”,然后单击“确定”。
注意
导入令牌存在过期时间,请关注过期时间,及时进行导入。
使用OPENSSL加密密钥材料。
加密公钥是一个2048比特的RSA公钥,使用的加密算法需要与获取导入密钥材料参数时指定的一致。由于加密公钥经过Base64编码,因此在使用时需要先进行Base64解码。
您可以通过OPENSSL加密公钥,您可通过以下步骤获取加密的密钥材料。
创建一个密钥材料,使用OPENSSL产生一个32字节的随机数。
将加密公钥进行Base64解码。
根据指定的加密算法(以RSAES_OAEP_SHA_1为例)加密密钥材料。
将加密后的密钥材料进行Base64编码,保存为文本文件。
代码示例:
openssl rand -out KeyMaterial.bin 32 openssl enc -d -base64 -A -in PublicKey_base64.txt -out PublicKey.bin openssl rsautl -encrypt -in KeyMaterial.bin -oaep -inkey PublicKey.bin -keyform DER -pubin -out EncryptedKeyMaterial.bin openssl enc -e -base64 -A -in EncryptedKeyMaterial.bin -out EncryptedKeyMaterial_base64.txt
采用OpenSSL加密密钥材料,支持RSAES_OAEP_SH A_256、RSAES_PKCS1_V1 _5 和RSAES_OAEP_SH A_1 三种密钥算法。
命令代码示例如下表所示:
密钥算法 OpenSSL加密生成密钥材料命令代码示例 RSAES_OAEP_SHA_256 openssl pkeyutl -in PlaintextKeyMaterial.bin -inkey PublicKey.bin -out EncryptedKeyMaterial.bin -keyform der -pubin –encrypt -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256
RSAES_PKCS1_V1_5 openssl rsautl –encrypt -in PlaintextKeyMaterial.bin –pkcs -inkey PublicKey.bin -keyform der –pubin -out EncryptedKeyMaterial.bin
RSAES_OAEP_SHA_1 openssl rsautl -encrypt -in KeyMaterial.bin -oaep -inkey PublicKey.bin -keyform DER -pubin -out EncryptedKeyMaterial.bin
导入密钥材料。
在密钥列表,在密钥列表,单击“密钥ID” ,进入“密钥详情”,在“密钥管理材料区域”,单击导入密钥材料。
在导入密钥材料对话框,上传加密密钥材料和导入令牌, 单击确定 。
设置密钥材料过期时间,单击“确定”。导入密钥材料成功后,密钥状态从待导入更新为“启用中”。
操作步骤-删除密钥材料
登录密钥管理服务控制台。
在页面左上角的地域下拉列表,选择密钥所在的地域。
在密钥列表,点击密钥ID ,进入密钥详情 ,在密钥材料区域,单击删除密钥材料 。
在删除密钥材料对话框,单击“确定”。密钥材料删除成功后,密钥状态从启用中更新为“待导入”。