使用KMS密钥在线加密和解密数据

当您部署在阿里云或其他云上的公网IP资产,需要对敏感数据进行加密保护时,如果被加密的数据对象较小时,您可以使用KMS在线对数据进行加解密。本文介绍如何对数据在线加解密。

应用场景

适用于单次使用对称密钥加解密的数据不超过6 KB,或者单次使用非对称密钥加解密的数据不超过1KB。

说明

单次加密的数据量越大,网络传输失败可能性越大,网络传输所需时间越长,KMS实例对数据进行加解密所需时间也越长。

典型场景包括以下两类:

  • 场景一:部署在阿里云上的应用,需要对数据进行加密和解密

    阿里云上部署的应用服务会产生或收到明文形式的敏感数据,敏感数据需要加密后再通过数据库等方式存储,该场景推荐您使用对称加密算法。

  • 场景二:应用部分部署在阿里云上,部分部署在阿里云外,需要对数据进行加密和解密

    推荐您使用非对称加密算法,在阿里云外的应用服务或客户端程序使用公钥对数据加密,经加密的数据(即密文数据)被传送至部署于阿里云上应用服务,阿里云上的应用服务收到密文数据后通过KMS实例使用非对称密码算法私钥解密。

场景一:部署在阿里云上的应用,需要对数据进行加密和解密

相关API

API名称

说明

AdvanceEncrypt(推荐)

将明文加密为密文,加密时使用密钥的当前主版本。

说明

仅当密钥为KMS软件密钥管理实例中的对称密钥时,支持使用本接口。

AdvanceDecrypt(推荐)

将密文解密为明文。

说明

仅当密钥为KMS软件密钥管理实例中的对称密钥时,支持使用本接口。

Encrypt

将明文加密为密文,加密使用密钥的初始版本。

Decrypt

将密文解密为明文。

操作步骤

  1. 购买并启用KMS实例(软件密钥管理实例或硬件密钥管理实例)。具体操作,请参见购买和启用KMS实例

  2. 在KMS实例中创建对称密钥,对数据进行加密和解密。具体操作,请参见创建密钥

  3. 创建应用接入点AAP,并在应用接入点中创建Client Key。具体操作,请参见创建应用接入点

    说明

    应用接入点AAP用于阿里云部署的应用服务在开发对接KMS实例时使用。如果您有多个应用服务,请分别为其创建应用接入点AAP。

  4. 通过KMS实例SDK进行加解密。具体操作,请参见KMS实例SDK

    说明

    KMS提供了多种SDK,但密码运算仅支持使用KMS实例SDK。关于SDK接入的更多信息,请参见SDK参考

场景二:应用部分部署在阿里云上,部分部署在阿里云外,需要对数据进行加密和解密

相关API

API名称

说明

Encrypt

将明文加密为密文,加密使用密钥的初始版本。

Decrypt

将密文解密为明文。

操作步骤

  1. 购买并启用KMS实例(软件密钥管理实例或硬件密钥管理实例)。具体操作,请参见购买和启用KMS实例

  2. 在KMS实例中创建非对称密钥,对数据进行加密和解密。具体操作,请参见创建密钥

  3. 在KMS控制台查看并保存公钥,并将公钥内容通过线下方式分发给阿里云外的业务应用。image.png

  4. 创建应用接入点AAP,并在应用接入点中创建Client Key。具体操作,请参见创建应用接入点

    说明

    应用接入点AAP用于阿里云部署的应用服务在开发对接KMS实例时使用。如果您有多个应用服务,请分别为其创建应用接入点AAP。

  5. 阿里云外的业务应用或APP使用公钥加密敏感数据或临时对称密钥,将敏感数据密文或临时对称密钥密文发送给阿里云上部署的业务应用。阿里云上部署的应用,通过KMS实例SDK进行解密敏感数据或临时对称密钥,具体操作,请参见KMS实例SDK

    说明

    KMS提供了多种SDK,但密码运算仅支持使用KMS实例SDK。关于SDK接入的更多信息,请参见SDK参考