更新时间:2023-08-02 GMT+08:00

如何使用

前提条件

本章节涉及的“自定义密钥”均为“对称密钥”。对称密钥和非对称密钥的介绍,请参见密钥概述章节。

与华为云服务配合使用

华为云服务基于信封加密技术,通过调用KMS的接口来加密云服务资源。由用户管理自己的自定义密钥,华为云服务在拥有用户授权的情况下,使用用户指定的自定义密钥对数据进行加密。

图1 华为云服务使用KMS加密原理
加密流程说明如下:
  1. 用户需要在KMS中创建一个自定义密钥。
  2. 华为云服务调用KMS的“create-datakey”接口创建数据加密密钥。得到一个明文的数据加密密钥和一个密文的数据加密密钥。

    密文的数据加密密钥是由指定的用户主密钥加密明文的数据加密密钥生成的。

  3. 华为云服务使用明文的数据加密密钥来加密明文文件,得到密文文件。
  4. 华为云服务将密文的数据加密密钥和密文文件一同存储到持久化存储设备或服务中。

用户通过华为云服务下载数据时,华为云服务通过KMS指定的自定义密钥对密文的数据加密密钥进行解密,并使用解密得到的明文的数据加密密钥来解密密文数据,然后将解密后的明文数据提供给用户下载。

表1 使用KMS加密的云服务列表

服务名称

如何使用

对象存储服务

对象存储服务支持普通方式和服务端加密方式上传和下载对象。当用户使用服务端加密方式上传对象时,数据会在服务端加密成密文后安全地存储在对象存储服务中;用户下载加密对象时,存储的密文会先在服务端解密为明文,再提供给用户。对象存储服务支持KMS托管密钥的服务端加密方式(即SSE-KMS加密方式),该加密方式是通过KMS提供密钥的方式进行服务端加密。

用户如何使用对象存储服务的SSE-KMS加密方式上传对象,具体操作请参见《对象存储服务控制台指南》

云硬盘

在创建云硬盘时,用户启用云硬盘的加密功能,系统将使用用户主密钥产生的数据密钥对磁盘进行加密,则在使用该云硬盘时,存储到云硬盘的数据将会自动加密。

用户如何使用云硬盘加密功能,具体操作请参见《云硬盘用户指南》

镜像服务

用户通过外部镜像文件创建私有镜像时,可启用私有镜像加密功能,选择KMS提供的用户主密钥对镜像进行加密。

用户如何使用镜像服务的私有镜像加密功能,具体操作请参见《镜像服务用户指南》

弹性文件服务

用户通过弹性文件服务创建文件系统时,选择KMS提供的用户主密钥对文件系统进行加密,当使用该文件系统时,存储到文件系统的文件将会自动加密。

用户如何使用弹性文件服务的文件系统加密功能,具体操作请参见《弹性文件服务用户指南》

云数据库RDS

在购买数据库实例时,用户启用数据库实例的磁盘加密功能,选择KMS提供的用户主密钥对数据库实例的磁盘进行加密,选择磁盘加密后会提高数据的安全性。

用户如何使用云数据库RDS的磁盘加密功能,具体操作请参见《云数据库RDS用户指南》

文档数据库服务

在购买文档数据库实例时,用户启用文档数据库实例的磁盘加密功能,选择KMS提供的用户主密钥对文档数据库实例的磁盘进行加密,选择磁盘加密后会提高数据的安全性。

用户如何使用文档数据库的磁盘加密功能,具体操作请参见《文档数据库服务快速入门》

与用户的应用程序配合使用

当您的应用程序需要对明文数据进行加密时,可通过调用KMS的接口来创建数据加密密钥,再使用数据加密密钥将明文数据进行加密,得到密文数据并进行存储。同时,用户的应用程序调用KMS的接口创建对应用户主密钥,对数据加密密钥进行加密,得到密文的数据加密密钥并进行存储。

基于信封加密技术,用户主密钥存储在KMS中,用户的应用程序只存储密文的数据加密密钥,仅在需要使用时调用KMS解密数据加密密钥。

加密流程说明如下:
  1. 应用程序调用KMS的“create-key”接口创建一个自定义密钥。
  2. 应用程序调用KMS的“create-datakey”接口创建数据加密密钥。得到一个明文的数据加密密钥和一个密文的数据加密密钥。

    密文的数据加密密钥是由1创建的用户主密钥加密明文的数据加密密钥生成的。

  3. 应用程序使用明文的数据加密密钥来加密明文文件,生成密文文件。
  4. 应用程序将密文的数据加密密钥和密文文件一同存储到持久化存储设备或服务中。

具体操作请参见《数据加密服务API参考》