密钥管理服务(KMS)与云硬盘、对象存储、弹性文件、关系型数据库MYSQL版等产品实现了服务端集成,在使用这些云服务时,可通过密钥管理服务实现对数据的加解密,并集中使用密钥管理服务(KMS)对密钥进行管理。
支持服务端加密的密钥类型
服务端加密支持选择默认密钥及用户自行创建的用户主密钥,具体可选择的密钥类型如下。
密钥创建者 | 密钥类型 | 密钥算法 |
云产品 | 默认密钥 | AES_256(默认) |
用户自行创建 | 用户主密钥-软件 | AES_256 |
用户主密钥-硬件 | AES_256 |
注意: 当前仅数据库产品支持选择用户自建用户主密钥进行服务端加密,其他存储产品均只能选择默认密钥进行加密。 |
默认密钥
ü 系统为云产品自动创建的用于服务端加密的默认密钥,默认密钥与云产品对应,每个天翼云账号下的每个云产品在每个资源支持创建1个默认密钥。
ü 默认密钥的别名定义为alias_<云产品代码>,例如alias_ecs。
ü 默认密钥的密钥材料由KMS生成,不支持导入外部密钥材料,同时不支持自动轮转、启用/禁用、计划删除、自定义别名等操作。
用户主密钥
ü 云产品加密时,可选用户在KMS服务中自建的用户主密钥,密钥类型为对称密钥,算法支持AES_256,保护级别可选软件保护、硬件保护。
ü 用户主密钥按照KMS服务标准资费进行计费,请您确保账户余额充足,避免因KMS服务冻结导致云产品无法正常调用KMS服务进行加解密操作,云产品可能会出现异常
ü 用户主密钥支持计划删除,操作计划删除前请确保该密钥非未被用于云产品加密,避免删除后导致云产品无法正常加解密而出现异常。为避免误删,您可以为密钥开启删除保护功能。
云产品服务端加密的流程
通常情况下,云产品采用信封加密的机制实现对云产品数据的加密,即通过KMS生成数据密钥,并应用数据密钥在云产品服务端完成加解密操作,并将数据密钥密文及数据密文落盘存储,实现流程如下示意图。
1. 用户在KMS中创建一个用户主密钥,或由云产品触发创建默认密钥。
2. 云产品调用KMS的GenerateDataKey接口请求数据密钥。
3. KMS返回数据密钥,包含数据密钥明文和数据密钥密文。其中数据密钥密文,是由指定的密钥加密数据密钥明文生成的。
4. 云产品使用数据密钥明文加密数据明文,并将数据密钥密文(由KMS使用密钥加密)与数据密文(由云产品使用数据密钥加密)一同写入持久化存储介质中。