使用KMS用户主密钥在线加解密数据 本文为您介绍如何使用KMS中的用户主密钥,快速实现少量数据的在线加解密。 KMS提供针对敏感信息的加密能力,适用于保护小型敏感数据(小于6KB),如口令、身份信息、证书、后台配置文件等。 通过密钥管理服务KMS的在线加密API,使用用户主密钥(CMK)直接加密敏感数据信息,而非直接将明文存储,确保敏感数据安全。 场景示意图 操作流程(以证书加密为例) 1. 通过KMS控制台或者调用CreateKey接口,创建一个用户主密钥(CMK)。 2. 调用KMS服务的Encrypt接口,将明文证书加密为密文证书。 3. 将密文证书部署在服务器上。 4. 当服务器启动需要使用证书时,调用KMS服务的Decrypt接口将密文证书解密为明文证书。 相关API 您可以调用以下KMS API,轻松完成对数据的加密或解密操作。 API名称 说明 createKey 创建用户主密钥(CMK)。 encrypt 指定CMK,直接输入明文数据,由KMS在线加密数据。 decrypt 解密由encrypt接口加密的数据,不需要指定CMK即可完成在线解密。 操作步骤 1. 通过密钥管理服务控制台创建用户主密钥CMK。 2. 通过OpenAPI在线加密接口,对敏感数据进行加密。 请求参数说明 参数 是否必填 参数位置 参数类型 说明 cmkUuid 是 body String 主密钥(CMK)的全局唯一标识符。 plaintext 是 body String 待加密明文(必须经过Base64编码)。 请求示例 plaintext { "plaintext": "SGVsbG8gd29ybGQ", "cmkUuid": "241ede22626146179caf10d89990516c" } 成功返回 plaintext { "code": 200, "result": { "ciphertextBlob": "MDA2NE1qUXhaV1JsTWpJdE5qSTJNUzAwTmpFM0xUbGpZV1l0TVRCa09EazVPVEExTVRaakpqUTVaV00zTm1RM0xXTmpOR010TkRBd1pTMDVaakU1TFdZNU1EQXhOVGczWVdVd1pnPT3oCYiGAy7mNTLitIlJaQ92", "cmkUuid": "241ede22626146179caf10d89990516c", "keyVersionId": "49ec76d7cc4c400e9f19f9001587ae0f" }, "statusCode": 200, "success": 1 } 返回参数说明 参数 说明 ciphertextBlob 数据被指定CMK的主版本加密后的密文。 cmkUuid CMK的全局唯一标识符。如果请求中的Cmkuuid参数使用的是CMK的别名,在响应中会返回别名对应的CMK标志符。 keyVersionId 用于加密明文的密钥版本标志符,是指定CMK的主版本。 3. 将加密后的数据存储。 根据业务的应用场景,将密文进行存储。 4. 通过OpenAPI解密接口,对密文数据进行解密。 请求参数说明 参数 是否必填 参数位置 参数类型 说明 ciphertextBlob 是 body String 主密钥(CMK)加密的数据密钥的密文。 成功返回 plaintext { "statusCode": 800, "returnObj": { "code": 200, "result": { "cmkUuid": "8bca8f33d42a448a866ba064f44b29b7", "keyVersionId": "73670b284eea4260b497ae0334cc0c85", "plaintext": "sc7280+klUSln3Y9FHdfKGUT+6kPrcIMW41uZQeXxGU" }, "statusCode": 200, "success": 1 } } 返回参数说明 参数 说明 cmkUuid CMK的全局唯一标识符。如果请求中的Cmkuuid参数使用的是CMK的别名,在响应中会返回别名对应的CMK标志符。 keyVersionId 密钥版本ID。主密钥版本的全局唯一标识符。 plaintext 解密后的明文经过Base64编码的后的值。