📣
TiDB Cloud Premium 开放公测中。为企业级工作负载提供无限扩展、即时弹性伸缩和高级安全保障。此页面由 AI 自动翻译,英文原文请见此处。

双层数据加密



本文档介绍如何为托管在 AWS 上的 TiDB Cloud Premium 实例启用和管理双层数据加密。

概述

默认情况下,TiDB Cloud Premium 会对实例存储和快照卷中的静态数据进行加密,从而提供基础级别的数据安全性。此外,TiDB Cloud Premium 支持将 TiDB 存储引擎加密与云服务提供商的 Key Management Service (KMS) 结合使用。这一额外的加密层称为 双层数据加密

加密机制

为了提供更高级别的数据安全性,TiDB Cloud Premium 对静态数据加密采用双层架构。存储层加密和数据库层加密都会保护你的数据。

  • 存储层加密

    • 底层云服务提供商会在其存储基础设施上提供存储层加密。例如,在 AWS 上,这包括 Amazon Elastic Block Store (EBS) 卷加密和 Amazon Simple Storage Service (S3) 存储桶加密。
    • 此层默认对所有 TiDB Cloud Premium 实例启用,且无法禁用。它为静态数据提供基础安全保障。
  • 数据库层加密

    • 除了存储层加密之外,TiDB Cloud Premium 还支持可选的数据库层加密功能(在 TiDB Cloud 控制台中标记为 Dual-Layer Data Encryption)。启用后,该功能会对存储在 TiKV 中的数据、changefeed 数据以及备份数据进行加密。
    • 该机制使数据在数据库系统内部始终保持加密状态,从而降低内部处理和数据传输过程中的数据泄露风险。
    • 与存储层加密不同,数据库层加密可由用户配置。你可以根据安全合规和运维要求,选择 Customer-Managed Encryption Key (CMEK) 或 Service-Managed Encryption Key。

备份与恢复注意事项

启用双层数据加密后,TiDB Cloud Premium 实例的备份数据也会被加密。任何从该备份恢复出的新实例都会继承原始实例的加密属性和 KMS 主密钥。

由于访问备份数据需要原始 KMS 主密钥,请确保满足以下要求:

  • 保持密钥可用:即使你删除了原始 TiDB Cloud Premium 实例,也要保持关联的 KMS 主密钥处于激活状态,以便能够恢复备份数据。
  • 确保授权正确:在执行恢复操作时,配置与备份关联的完全相同的 KMS 主密钥,并确保该密钥具有访问数据所需的权限。

密钥管理选项

双层数据加密使用 AWS KMS 管理静态数据加密的主密钥。你可以在以下两种密钥管理选项之间进行选择:

  • Customer-Managed Encryption Key (CMEK)

    你可以创建、拥有并管理自己的 AWS KMS 主密钥。此选项可提供对加密的完全控制,适用于具有严格安全要求的组织。

  • Service-Managed Encryption Key

    TiDB Cloud Premium 会自动代表你创建并管理 KMS 主密钥。此选项在安全性与便利性之间提供平衡,且无需维护开销。

    • 该密钥是对称加密密钥。
    • 当你在某个区域中创建第一个启用了加密的 TiDB Cloud Premium 实例时,系统会自动生成该密钥。
    • 每个组织在每个区域只会创建一个密钥,并由该区域中的所有 TiDB Cloud Premium 实例共享。
    • 只有在使用该密钥加密的所有数据都已从你的组织中移除后,该密钥才会被自动删除。

限制

  • 此功能当前仅支持 AWS KMS。对 Alibaba Cloud KMS 的支持计划在未来版本中提供。
  • 数据加密适用于 TiKV 存储的数据、changefeed 数据和备份数据。对 TiFlash 数据加密的支持计划在未来版本中提供。
  • 启用双层数据加密后,你无法修改 TiDB Cloud Premium 实例的加密配置。
  • 不支持自定义加密算法。你只能轮换 KMS 主密钥,不支持轮换其他加密密钥。
  • 你的 AWS KMS 密钥必须与 TiDB Cloud Premium 实例位于同一区域。因此,对于使用 CMEK 的备份,不支持跨区域恢复操作。

启用双层数据加密

你可以在创建 TiDB Cloud Premium 实例时启用双层数据加密,也可以在实例创建后启用。

在创建实例时启用加密

创建 TiDB Cloud Premium 实例时,你可以启用双层数据加密。根据你的安全和运维要求,选择 Customer-Managed Encryption Key (CMEK)Service-Managed Encryption Key

选项 1:Customer-Managed Encryption Key (CMEK)

如需使用你自己的加密密钥,请执行以下步骤:

  1. 在 AWS KMS 中创建一个对称加密密钥。

    该密钥必须与计划创建的 TiDB Cloud Premium 实例位于同一区域。详细说明请参见 Create a symmetric encryption KMS key

  2. TiDB Cloud 控制台 中配置 CMEK:

    1. My TiDB 页面,点击 Create Resource
    2. 选择 TiDB Cloud Premium 计划并完成基本配置。
    3. Dual-Layer Data Encryption 部分,点击 Enable
    4. 选择 Customer-Managed Encryption Key (CMEK),然后点击 Add KMS Key ARN
    5. 复制显示的 JSON policy,并将其保存为 ROLE-TRUST-POLICY.JSON。该文件定义了所需的信任关系。
    6. 在 AWS KMS 控制台中,将此 trust policy 添加到你的密钥。更多信息,请参见 Key policies in AWS KMS
    7. 返回 TiDB Cloud 控制台,滚动到密钥创建页面底部,输入你从 AWS KMS 获取的 KMS Key ARN
    8. 要验证信任关系,点击 Test and Add KMS Key ARN
    9. 验证成功后,点击 Create 完成 TiDB Cloud Premium 实例创建。

选项 2:Service-Managed Encryption Key

如需由 TiDB Cloud 代表你管理加密密钥,请执行以下步骤:

  1. My TiDB 页面,点击 Create Resource
  2. 选择 TiDB Cloud Premium 计划并完成基本配置。
  3. Dual-Layer Data Encryption 部分,点击 Enable
  4. 选择 Service-Managed Encryption Key
  5. 点击 Create 完成 TiDB Cloud Premium 实例创建。

为现有实例启用加密

如果你在创建实例时未启用加密,也可以稍后启用。根据你的需求,选择 Customer-Managed Encryption Key (CMEK) 或 Service-Managed Encryption Key。

选项 1:Customer-Managed Encryption Key (CMEK)

开始之前,请确保你已在 AWS KMS 中创建对称加密密钥。然后,执行以下步骤:

  1. 在 TiDB Cloud Premium 实例的 Security 页面中,在 Dual-Layer Data Encryption 部分点击 Enable
  2. 选择 Customer-Managed Encryption Key (CMEK),然后点击 Add KMS Key ARN
  3. 复制显示的 JSON policy,并将其保存为 ROLE-TRUST-POLICY.JSON。该文件定义了所需的信任关系。
  4. 在 AWS KMS 控制台中,将此 trust policy 添加到你的密钥。更多信息,请参见 Key policies in AWS KMS
  5. 返回 TiDB Cloud 控制台,滚动到页面底部,输入你从 AWS KMS 获取的 KMS Key ARN
  6. 要验证信任关系,点击 Test and Add KMS Key ARN
  7. 要启用双层数据加密,点击 Enable

选项 2:Service-Managed Encryption Key

如需由 TiDB Cloud 代表你管理加密密钥,请执行以下步骤:

  1. 在 TiDB Cloud Premium 实例的 Security 页面中,在 Dual-Layer Data Encryption 部分点击 Enable
  2. 选择 Service-Managed Encryption Key
  3. 点击 Enable

查看加密状态

启用加密后,请在以下位置检查状态:

  • 在 TiDB Cloud Premium 实例的 Overview 页面,Encryption 字段会显示当前启用的密钥管理方式:Enabled with Customer-Managed Encryption Key (CMEK)Enabled with Service-Managed Encryption Key
  • Security 页面,你可以查看双层数据加密的详细配置。

从加密备份恢复

从启用了加密的 TiDB Cloud Premium 实例创建的备份也会被加密。恢复加密备份时,新实例必须使用一致的加密设置。

恢复使用 CMEK 加密的备份

如果备份使用 CMEK 加密,请确保新实例在恢复期间能够访问 KMS 主密钥。密钥 ARN 保持不变。

要验证访问权限,点击 Check 开始 trust policy 验证。随后,TiDB Cloud 会检查密钥策略中已授权的 TiDB Cloud 账户是否与原始备份关联的账户一致:

  • 如果账户一致,则无需进一步授权。
  • 如果账户不一致,请复制提供的密钥策略并在 AWS KMS 中更新。此更新会重新授权该密钥,并确保新实例能够访问它。

恢复使用 Service-Managed Encryption Key 加密的备份

如果备份使用 Service-Managed Encryption Key 加密,则恢复后的实例会自动继承相同的密钥类型。在恢复过程中,加密默认启用,且密钥类型设置为 Service-Managed Encryption Key

轮换 Customer-Managed Encryption Key (CMEK)

要轮换 CMEK,你可以在 AWS KMS 中启用自动密钥轮换。无需额外的 TiDB Cloud 配置。

文档内容是否有帮助?