与云服务配合使用
云服务基于信封加密技术,通过调用KMS的接口来加密云服务资源。由用户管理自己的用户主密钥,云服务在拥有用户授权的情况下,使用用户指定的用户主密钥对数据进行加密。
加密流程说明如下:
- 用户需要在KMS中创建一个用户主密钥。
- 云服务调用KMS的“create-datakey”接口创建数据加密密钥。得到一个明文的数据加密密钥和一个密文的数据加密密钥。
说明密文的数据加密密钥是由指定的用户主密钥加密明文的数据加密密钥生成的。
- 云服务使用明文的数据加密密钥来加密明文文件,得到密文文件。
- 云服务将密文的数据加密密钥和密文文件一同存储到持久化存储设备或服务中。
说明用户通过云服务下载数据时,云服务通过KMS指定的用户主密钥对密文的数据加密密钥进行解密,并使用解密得到的明文的数据加密密钥来解密密文数据,然后将解密后的明文数据提供给用户下载。
使用KMS加密的云服务列表
服务名称 | 如何使用 |
---|---|
对象存储服务 | 对象存储服务支持普通方式和服务端加密方式上传和下载对象。当用户使用服务端加密方式上传对象时,数据会在服务端加密成密文后安全地存储在对象存储服务中;用户下载加密对象时,存储的密文会先在服务端解密为明文,再提供给用户。对象存储服务支持KMS托管密钥的服务端加密方式(即SSE-KMS加密方式),该加密方式是通过KMS提供密钥的方式进行服务端加密。 |
云硬盘 | 在创建云硬盘时,用户启用云硬盘的加密功能,系统将使用用户主密钥产生的数据密钥对磁盘进行加密,则在使用该云硬盘时,存储到云硬盘的数据将会自动加密。 |
镜像服务 | 用户通过外部镜像文件创建私有镜像时,可启用私有镜像加密功能,选择KMS提供的用户主密钥对镜像进行加密。 |
弹性文件服务 | 用户通过弹性文件服务创建文件系统时,选择KMS提供的用户主密钥对文件系统进行加密,当使用该文件系统时,存储到文件系统的文件将会自动加密。 |
关系数据库 | 在购买数据库实例时,用户启用数据库实例的磁盘加密功能,选择KMS提供的用户主密钥对数据库实例的磁盘进行加密,选择磁盘加密后会提高数据的安全性。 |
文档数据库服务 | 在购买文档数据库实例时,用户启用文档数据库实例的磁盘加密功能,选择KMS提供的用户主密钥对文档数据库实例的磁盘进行加密,选择磁盘加密后会提高数据的安全性。 |
与用户的应用程序配合使用
当您的应用程序需要对明文数据进行加密时,可通过调用KMS的接口来创建数据加密密钥,再使用数据加密密钥将明文数据进行加密,得到密文数据并进行存储。同时,用户的应用程序调用KMS的接口创建对应用户主密钥,对数据加密密钥进行加密,得到密文的数据加密密钥并进行存储。
基于信封加密技术,用户主密钥存储在KMS中,用户的应用程序只存储密文的数据加密密钥,仅在需要使用时调用KMS解密数据加密密钥。
加密流程说明如下:
1.应用程序调用KMS的“create-key”接口创建一个用户主密钥。
2.应用程序调用KMS的“create-datakey”接口创建数据加密密钥。得到一个明文的数据加密密钥和一个密文的数据加密密钥。
说明密文的数据加密密钥是由1创建的用户主密钥加密明文的数据加密密钥生成的。
3.应用程序使用明文的数据加密密钥来加密明文文件,生成密文文件。
4.应用程序将密文的数据加密密钥和密文文件一同存储到持久化存储设备或服务中。