如何使用KMS加密
前提条件
本章节涉及的“自定义密钥”均为“对称密钥”。对称密钥和非对称密钥的介绍,请参见密钥概述章节。
与华为云服务配合使用
华为云服务基于信封加密技术,通过调用KMS的接口来加密云服务资源。由用户管理自己的自定义密钥,华为云服务在拥有用户授权的情况下,使用用户指定的自定义密钥对数据进行加密。使用KMS加密的云服务请参见使用KMS加密的云服务。

- 用户需要在KMS中创建一个自定义密钥。
- 华为云服务调用KMS的“create-datakey”接口创建数据加密密钥。得到一个明文的数据加密密钥和一个密文的数据加密密钥。

密文的数据加密密钥是由指定的用户主密钥加密明文的数据加密密钥生成的。
- 华为云服务使用明文的数据加密密钥来加密明文文件,得到密文文件。
- 华为云服务将密文的数据加密密钥和密文文件一同存储到持久化存储设备或服务中。

用户通过华为云服务下载数据时,华为云服务通过KMS指定的自定义密钥对密文的数据加密密钥进行解密,并使用解密得到的明文的数据加密密钥来解密密文数据,然后将解密后的明文数据提供给用户下载。
与用户的应用程序配合使用
当您的应用程序需要对明文数据进行加密时,可通过调用KMS的接口来创建数据加密密钥,再使用数据加密密钥将明文数据进行加密,得到密文数据并进行存储。同时,用户的应用程序调用KMS的接口创建对应用户主密钥,对数据加密密钥进行加密,得到密文的数据加密密钥并进行存储。
基于信封加密技术,用户主密钥存储在KMS中,用户的应用程序只存储密文的数据加密密钥,仅在需要使用时调用KMS解密数据加密密钥。
- 应用程序调用KMS的“create-key”接口创建一个自定义密钥。
- 应用程序调用KMS的“create-datakey”接口创建数据加密密钥。得到一个明文的数据加密密钥和一个密文的数据加密密钥。

密文的数据加密密钥是由1创建的用户主密钥加密明文的数据加密密钥生成的。
- 应用程序使用明文的数据加密密钥来加密明文文件,生成密文文件。
- 应用程序将密文的数据加密密钥和密文文件一同存储到持久化存储设备或服务中。
使用KMS加密的云服务
KMS为各云服务提供主密钥管理控制能力,为各云服务提供加密能力。
服务名称 | 如何使用 | 参考文档 |
|---|---|---|
对象存储服务 OBS | 对象存储服务支持普通方式和服务端加密方式上传和下载对象。当用户使用服务端加密方式上传对象时,数据会在服务端加密成密文后安全地存储在对象存储服务中;用户下载加密对象时,存储的密文会先在服务端解密为明文,再提供给用户。对象存储服务支持KMS托管密钥的服务端加密方式(即SSE-KMS加密方式),该加密方式是通过KMS提供密钥的方式进行服务端加密。 | |
云硬盘 EVS | 在创建云硬盘时,用户启用云硬盘的加密功能,系统将使用用户主密钥产生的数据密钥对磁盘进行加密,则在使用该云硬盘时,存储到云硬盘的数据将会自动加密。 | |
镜像服务 IMS | 用户通过外部镜像文件创建私有镜像时,可启用私有镜像加密功能,选择KMS提供的用户主密钥对镜像进行加密。 | |
云数据库 RDS | 在购买数据库实例时,用户启用数据库实例的磁盘加密功能,选择KMS提供的用户主密钥对数据库实例的磁盘进行加密,选择磁盘加密后会提高数据的安全性。 | |
文档数据库服务 DDS | 在购买文档数据库实例时,用户启用文档数据库实例的磁盘加密功能,选择KMS提供的用户主密钥对文档数据库实例的磁盘进行加密,选择磁盘加密后会提高数据的安全性。 | |
弹性云服务器 ECS | 弹性云服务器是通过镜像加密或者数据盘加密来实现ECS资源加密。 | |
高性能弹性文件服务 SFS Turbo | 创建SFS Turbo文件系统时,选择KMS提供的密钥对文件系统进行加密,使核心数据更安全。 | |
专属主机 DeH | 用户加密,是指用户通过提供的加密特性,对弹性云服务器资源进行加密,从而提升数据的安全性。用户加密功能包括镜像加密和云硬盘加密。 | |
函数工作流FunctionGraph | 若需在函数运行时解密敏感数据(如数据库密码、API密钥),可通过KMS SDK动态操作密钥。用户可以将加解密密钥托管在KMS,并在IAM服务为函数创建委托授权FunctionGraph访问KMS。 | |
云硬盘备份 VBS | 云硬盘备份的加密功能依赖于密钥管理服务。加密云硬盘的备份数据会以加密方式存放。 | |
云容器引擎 CCE | 可以使用KMS密钥对CCE中存储的Kubernetes Secret对象进行信封加密,为应用程序的敏感数据提供安全保护。 | |
专属分布式存储服务 DSS | 当您由于业务需求从而需要对存储在磁盘的数据进行加密时,EVS为您提供加密功能,可以对新创建的磁盘进行加密。加密磁盘使用的密钥由密码安全中心(DEW,Data Encryption Workshop)中的密钥管理(KMS,Key Management Service)功能提供,无需您自行构建和维护密钥管理基础设施,安全便捷。 | |
云容器实例 CCI | 云容器实例支持将云硬盘(EVS)挂载到容器中,将通过KMS对云硬盘进行加密。 | |
容器镜像服务 SWR | 容器镜像服务企业版支持使用密码安全中心(DEW)中创建的密钥对镜像进行签名,保障镜像分发部署过程中的一致性,避免中间人攻击和非法镜像更新及运行。 | |
云数据库 TaurusDB | 透明数据加密(Transparent Data Encryption,简称TDE),对数据文件执行实时I/O加密和解密,数据在写入磁盘之前进行加密,从磁盘读入内存时进行解密,能有效保护数据库及数据文件的安全。 | |
云运维中心 COC | 为了更加安全地保护您的主机账号密码,云运维中心会使用KMS来加密您的主机账号密码。在使用密钥管理之前,请先在KMS创建好密钥。 | |
数据仓库服务 GaussDB(DWS) | 在DWS中,可以为集群启用数据库加密,以保护静态数据。当您为集群启用加密时,该集群及其快照的数据都会得到加密处理。 | |
云数据迁移 CDM | 在迁移文件到文件系统时,CDM支持通过KMS提供的密钥对文件加解密。 | |
数据安全中心 DSC | 通过加密算法和加密主密钥生成一种加密配置,达到数据脱敏的效果。 | |
云桌面 Workspace | 购买云桌面时,可以使用KMS提供的密钥对磁盘进行加密。 | |
云数据库 GeminiDB | 购买云数据库实例时,可以使用KMS提供的密钥对数据库中静态数据加密。 |

