云产品集成KMS加密概述

密钥管理服务KMS(Key Management Service)面向阿里云产品提供默认加密能力,加密时您可以使用云产品默认创建的服务密钥,也可以使用在KMS中自行创建的密钥。本文介绍云产品集成KMS加密的优势以及加密机制等。

阿里云产品集成KMS加密的优势

  • 增加数据的安全和隐私保护

    阿里云KMS面向大部分阿里云产品(以下简称云产品)提供数据加密能力,您可以在创建云产品时设置加密方案,也可以在创建后设置。KMS对云产品使用过程中的云内数据(例如数据库引擎产生的文件等)进行全链路加密,从而为您提供云上数据更安全的加密方案,增加数据整体的安全性和隐私性。

  • 降低自研数据加密带来的研发成本

    在自研数据加密时通常需要解决如下问题,云产品服务端集成KMS加密为您解决了这些复杂的工程和安全问题,降低了研发成本。

    • 设计合理的密钥层次结构和数据划分方式,以平衡加密性能和安全性。

    • 需要考虑密钥轮转、数据重加密。

    • 需要掌握密码学技术,选择合适的加密算法,保证加密体系的健壮性、安全性以及防篡改能力等。

支持云产品加密的密钥类型

KMS提供的默认密钥、软件密钥、硬件密钥,均支持被阿里云产品集成用于服务端加密,具体请参见下表。更多信息,请参见密钥服务概述

密钥创建者

密钥类型

密钥材料来源

计费说明

说明

云产品创建

默认密钥(服务密钥)

由KMS生成。

免费。

每个阿里云账号下的每种云产品,在每个地域下仅支持创建一个服务密钥。

用户自行创建

默认密钥(主密钥)

支持如下方式:

  • 由KMS生成。

  • 自行导入,即BYOK(Bring Your Own Key)方式。

免费。

创建密钥后您需要为云产品授权,允许其使用该密钥。具体操作,请参见使用RAM实现对资源的访问控制

软件密钥

由KMS生成。

付费。

硬件密钥

支持如下方式:

  • 由KMS生成。

  • 自行导入,即BYOK(Bring Your Own Key)方式。

付费。

使用密钥进行云产品服务端加密的流程

本文以购买云产品时配置密钥进行服务端加密为例,您也可以购买云产品后再配置。具体操作,请参见各云产品官网文档。

云产品创建

即服务密钥,您可以在密钥管理服务控制台查看已经创建的服务密钥。

  1. 购买云产品时,选择使用KMS默认密钥加密服务端数据。截图以购买ECS为例。购买ECS时选择KMS默认密钥加密

    说明

    为了便于您识别,服务密钥被自动关联了特殊的别名,格式为alias/acs/<云产品代码>。例如,云服务器ECS为您创建的服务密钥,密钥别名为alias/acs/ecs

  2. 在密钥管理服务控制台查看云产品创建的服务密钥。服务密钥

    说明
    • 密钥用法服务密钥的密钥,即为云产品创建的密钥。

    • 服务密钥的生命周期由云产品代您管理,您不能在KMS控制台对它进行启用、禁用等管理操作,但可以在操作审计控制台查看服务密钥的操作和使用记录。

用户自行创建

  • 默认密钥(主密钥)

    1. 在密钥管理服务控制台启用主密钥,具体操作,请参见默认密钥

      例如,截图中主密钥的密钥别名为alias/byok默认密钥主密钥

    2. 购买云产品时,选择使用默认密钥(主密钥)加密服务端数据。

      截图以购买ECS为例。使用默认密钥主密钥

  • 软件密钥

    1. 购买软件密钥管理实例。具体操作,请参见购买和启用KMS实例

    2. 在密钥管理服务控制台创建密钥。具体操作,请参见软件密钥

    3. 购买云产品时,选择使用您创建的软件密钥加密服务端数据。

  • 硬件密钥

    1. 购买硬件密钥管理实例。具体操作,请参见购买和启用KMS实例

    2. 在密钥管理服务控制台创建密钥。具体操作,请参见硬件密钥

    3. 购买云产品时,选择使用您创建的硬件密钥加密服务端数据。

云产品集成KMS加密的方式

不同云产品基于业务形态和客户需求,其加密的具体设计略有不同。通常云产品采用信封加密的机制实现对数据的加密,即通过KMS密钥对数据密钥进行加密保护,通过数据密钥对业务数据进行加密保护,请参见如下示意图。

云产品集成KMS加密原理
  1. 在KMS中创建一个密钥。

  2. 调用KMS的GenerateDataKey接口请求数据密钥。

  3. KMS返回数据密钥,包含数据密钥明文和数据密钥密文。其中数据密钥密文,是由指定的密钥加密数据密钥明文生成的。

  4. 云产品使用数据密钥明文加密数据明文,并将数据密钥密文(由KMS使用密钥加密)与数据密文(由云产品使用数据密钥加密)一同写入持久化存储介质中。

说明
  • 信封加密中的“信封”是指在概念上数据密钥密文和数据密文被打包在一个信封(Envelope)中。

  • KMS将数据密钥通过安全传输通道从KMS传递到云产品。数据密钥明文仅在云产品的内存中使用,不会以明文形式存储在持久化存储介质上。

访问控制

通过访问控制RAM(Resource Access Management),KMS会验证云产品是否具备使用特定密钥的权限。您可通过云产品的RAM授权引导或在访问控制RAM服务中配置权限策略,允许或者拒绝特定的云产品使用特定的密钥。更多信息,请参见使用RAM实现对资源的访问控制

审计

通过操作审计(ActionTrail),您可以对云产品使用密钥的情况进行审计。更多信息,请参见使用操作审计查询密钥管理服务的操作事件

相关文档

支持集成KMS加密的云产品