密钥管理服务KMS(Key Management Service)面向阿里云产品提供默认加密能力,加密时您可以使用云产品默认创建的服务密钥,也可以使用在KMS中自行创建的密钥。本文介绍云产品集成KMS加密的优势以及加密机制等。
阿里云产品集成KMS加密的优势
-
增加数据的安全和隐私保护
阿里云KMS面向大部分阿里云产品(以下简称云产品)提供数据加密能力,您可以在创建云产品时设置加密方案,也可以在创建后设置。KMS对云产品使用过程中的云内数据(例如数据库引擎产生的文件等)进行全链路加密,从而为您提供云上数据更安全的加密方案,增加数据整体的安全性和隐私性。
-
降低自研数据加密带来的研发成本
在自研数据加密时通常需要解决如下问题,云产品服务端集成KMS加密为您解决了这些复杂的工程和安全问题,降低了研发成本。
-
设计合理的密钥层次结构和数据划分方式,以平衡加密性能和安全性。
-
需要考虑密钥轮转、数据重加密。
-
需要掌握密码学技术,选择合适的加密算法,保证加密体系的健壮性、安全性以及防篡改能力等。
-
支持云产品加密的密钥类型
KMS提供的默认密钥、软件密钥、硬件密钥,均支持被阿里云产品集成用于服务端加密,具体请参见下表。更多信息,请参见密钥服务概述。
|
密钥创建者 |
密钥类型 |
密钥材料来源 |
计费说明 |
说明 |
|
云产品创建 |
默认密钥(服务密钥) |
由KMS生成。 |
免费。 |
每个阿里云账号下的每种云产品,在每个地域下仅支持创建一个服务密钥。 |
|
用户自行创建 |
默认密钥(主密钥) |
支持如下方式:
|
免费。 |
创建密钥后您需要为云产品授权,允许其使用该密钥。具体操作,请参见密钥管理服务自定义权限策略参考。 |
|
软件密钥 |
由KMS生成。 |
付费。 |
||
|
硬件密钥 |
支持如下方式:
|
付费。 |
使用密钥进行云产品服务端加密的流程
本文以购买云产品时配置密钥进行服务端加密为例,您也可以购买云产品后再配置。具体操作,请参见各云产品官网文档。
云产品创建
即服务密钥,您可以在密钥管理服务控制台查看已经创建的服务密钥。
-
购买云产品时,选择使用KMS默认密钥加密服务端数据。截图以购买ECS为例。在系统盘配置区域,勾选加密复选框,并在密钥下拉框中选择Default Service CMK。
说明为了便于您识别,服务密钥被自动关联了特殊的别名,格式为
alias/acs/<云产品代码>。例如,云服务器ECS为您创建的服务密钥,密钥别名为alias/acs/ecs。 -
在密钥管理服务控制台查看云产品创建的服务密钥。在KMS控制台默认密钥管理页签下,可查看到该服务密钥的密钥规格为
Aliyun_AES_256,密钥状态为启用中。说明-
密钥用法为服务密钥的密钥,即为云产品创建的密钥。
-
服务密钥的生命周期由云产品代您管理,您不能在KMS控制台对它进行启用、禁用等管理操作,但可以在操作审计控制台查看服务密钥的操作和使用记录。
-
用户自行创建
-
默认密钥(主密钥)
-
在密钥管理服务控制台启用主密钥,具体操作,请参见密钥管理快速入门。
例如,主密钥的密钥别名为
alias/byok。 -
购买云产品时,选择使用默认密钥(主密钥)加密服务端数据。
截图以购买ECS为例。在系统盘配置区域,勾选加密,然后在密钥下拉框中选择用户自行创建的密钥(如alias/byok)。
-
-
软件密钥
-
购买软件密钥管理实例。具体操作,请参见购买和启用KMS实例。
-
在密钥管理服务控制台创建密钥。具体操作,请参见密钥管理快速入门。
-
购买云产品时,选择使用您创建的软件密钥加密服务端数据。
-
-
硬件密钥
-
购买硬件密钥管理实例。具体操作,请参见购买和启用KMS实例。
-
在密钥管理服务控制台创建密钥。具体操作,请参见密钥管理快速入门。
-
购买云产品时,选择使用您创建的硬件密钥加密服务端数据。
-
云产品集成KMS加密的方式
不同云产品基于业务形态和客户需求,其加密的具体设计略有不同。通常云产品采用信封加密的机制实现对数据的加密,即通过KMS密钥对数据密钥进行加密保护,通过数据密钥对业务数据进行加密保护,请参见如下示意图。

-
在KMS中创建一个密钥。
-
调用KMS的GenerateDataKey接口请求数据密钥。
-
KMS返回数据密钥,包含数据密钥明文和数据密钥密文。其中数据密钥密文,是由指定的密钥加密数据密钥明文生成的。
-
云产品使用数据密钥明文加密数据明文,并将数据密钥密文(由KMS使用密钥加密)与数据密文(由云产品使用数据密钥加密)一同写入持久化存储介质中。
-
信封加密中的“信封”是指在概念上数据密钥密文和数据密文被打包在一个信封(Envelope)中。
-
KMS将数据密钥通过安全传输通道从KMS传递到云产品。数据密钥明文仅在云产品的内存中使用,不会以明文形式存储在持久化存储介质上。
访问控制
通过访问控制RAM(Resource Access Management),KMS会验证云产品是否具备使用特定密钥的权限。您可通过云产品的RAM授权引导或在访问控制RAM服务中配置权限策略,允许或者拒绝特定的云产品使用特定的密钥。更多信息,请参见密钥管理服务自定义权限策略参考。
审计
通过操作审计(ActionTrail),您可以对云产品使用密钥的情况进行审计。更多信息,请参见使用操作审计查询密钥管理服务的操作事件。