双层数据加密
本文档介绍如何为 平凯云 Premium 实例启用和管理双层数据加密。
注意
当前,双层数据加密功能仅可按需提供。如需申请此功能,请点击 平凯数据库云服务控制台右下角的 ?,然后点击 Support Tickets 进入 Help Center。创建工单,在 Description 字段中填写 "Apply for Dual-Layer Data Encryption",然后点击 Submit。
概述
默认情况下,平凯云 Premium 会对实例存储和快照卷中的静态数据进行加密,从而提供基础级别的数据安全性。此外,平凯云 Premium 支持将 TiDB 存储引擎加密与云服务提供商的 Key Management Service (KMS) 结合使用。这一额外的加密层称为 双层数据加密。
加密机制
为了提供更高级别的数据安全性,平凯云 Premium 对静态数据加密采用双层架构。存储层加密和数据库层加密都会保护你的数据。
-
存储层加密
- 底层云服务提供商会在其存储基础设施上提供存储层加密。例如,在 AWS 上,这包括 Amazon Elastic Block Store (EBS) 卷加密和 Amazon Simple Storage Service (S3) 存储桶加密。
- 此层默认对所有 平凯云 Premium 实例启用,且无法禁用。它为静态数据提供基础安全保障。
-
数据库层加密
- 除了存储层加密之外,平凯云 Premium 还支持可选的数据库层加密功能(在平凯数据库云服务控制台中标记为 Dual-Layer Data Encryption)。启用后,该功能会对存储在 TiKV 中的数据、changefeed 数据以及备份数据进行加密。
- 该机制使数据在数据库系统内部始终保持加密状态,从而降低内部处理和数据传输过程中的数据泄露风险。
- 与存储层加密不同,数据库层加密可由用户配置。你可以根据安全合规和运维要求,选择 Customer-Managed Encryption Key (CMEK) 或 Service-Managed Encryption Key。
备份与恢复注意事项
启用双层数据加密后,平凯云 Premium 实例的备份数据也会被加密。任何从该备份恢复出的新实例都会继承原始实例的加密属性和 KMS 主密钥。
由于访问备份数据需要原始 KMS 主密钥,请确保满足以下要求:
- 保持密钥可用:即使你删除了原始 平凯云 Premium 实例,也要保持关联的 KMS 主密钥处于激活状态,以便能够恢复备份数据。
- 确保授权正确:在执行恢复操作时,配置与备份关联的完全相同的 KMS 主密钥,并确保该密钥具有访问数据所需的权限。
密钥管理选项
双层数据加密使用你的云服务提供商 KMS 管理静态数据加密的主密钥。你可以在以下两种密钥管理选项之间进行选择:
-
Customer-Managed Encryption Key (CMEK)
你可以创建、拥有并管理自己的 KMS 主密钥。此选项可提供对加密的完全控制,适用于具有严格安全要求的组织。
警告:
你需要对密钥的安全性和可用性负全部责任。如果你的 CMEK 被删除或永久损坏,你的实例将变得不可用,且加密数据将永久无法恢复。
-
Service-Managed Encryption Key
平凯云 Premium 会自动代表你创建并管理 KMS 主密钥。此选项在安全性与便利性之间提供平衡,且无需维护开销。
- 该密钥是对称加密密钥。
- 当你在某个区域中创建第一个启用了加密的 平凯云 Premium 实例时,系统会自动生成该密钥。
- 每个组织在每个区域只会创建一个密钥,并由该区域中的所有 平凯云 Premium 实例共享。
- 只有在使用该密钥加密的所有数据都已从你的组织中移除后,该密钥才会被自动删除。
限制
- 当前,此功能支持 AWS KMS 和 Alibaba Cloud KMS。
- 数据加密适用于 TiKV 存储的数据、changefeed 数据和备份数据。对 TiFlash 数据加密的支持计划在未来版本中提供。
- 启用双层数据加密后,你无法修改 平凯云 Premium 实例的加密配置。
- 不支持自定义加密算法。你只能轮换 KMS 主密钥,不支持轮换其他加密密钥。
- 你的云服务提供商 KMS 密钥必须与 平凯云 Premium 实例位于同一区域。因此,对于使用 CMEK 的备份,不支持跨区域恢复操作。
启用双层数据加密
你可以在创建 平凯云 Premium 实例时启用双层数据加密,也可以在实例创建后启用。
在创建实例时启用加密
创建 平凯云 Premium 实例时,你可以启用双层数据加密。根据你的安全和运维要求,选择 Customer-Managed Encryption Key (CMEK) 或 Service-Managed Encryption Key。
选项 1:Customer-Managed Encryption Key (CMEK)
如需使用你自己的加密密钥,请执行以下步骤:
-
在你的云服务提供商 KMS 中创建一个对称加密密钥。
该密钥必须与计划创建的 平凯云 Premium 实例位于同一区域。
- 对于 AWS,请参见 Create a symmetric encryption KMS key。
- 对于 Alibaba Cloud,请参见 Understanding KMS keys。
-
在 平凯数据库云服务控制台中配置 CMEK:
-
在 My TiDB 页面,点击 Create Resource。
-
选择 平凯云 Premium 计划并完成基本配置。
-
在 Dual-Layer Data Encryption 部分,点击 Enable。
-
选择 Customer-Managed Encryption Key (CMEK),然后点击 Add KMS Key ARN。
-
复制显示的 JSON policy 语句。该 policy 语句定义了平凯数据库云服务所需的密钥访问权限。
-
在你的云服务提供商 KMS 控制台中,将此 policy 语句附加到你的密钥策略中。
- 对于 AWS,请参见 Key policies in AWS KMS。
- 对于 Alibaba Cloud,请参见 Manage Keys。
-
返回平凯数据库云服务控制台,滚动到密钥创建页面底部,输入你从云服务提供商 KMS 获取的 KMS Key ARN。
-
要验证信任关系,点击 Test and Add KMS Key ARN。
-
验证成功后,点击 Create 完成 平凯云 Premium 实例创建。
-
选项 2:Service-Managed Encryption Key
如需由平凯数据库云服务代表你管理加密密钥,请执行以下步骤:
- 在 My TiDB 页面,点击 Create Resource。
- 选择 平凯云 Premium 计划并完成基本配置。
- 在 Dual-Layer Data Encryption 部分,点击 Enable。
- 选择 Service-Managed Encryption Key。
- 点击 Create 完成 平凯云 Premium 实例创建。
为现有实例启用加密
如果你在创建实例时未启用加密,也可以稍后启用。根据你的需求,选择 Customer-Managed Encryption Key (CMEK) 或 Service-Managed Encryption Key。
注意
为现有实例启用加密可能需要一些时间才能完成。
选项 1:Customer-Managed Encryption Key (CMEK)
开始之前,请确保你已在你的云服务提供商 KMS 中创建对称加密密钥。然后,执行以下步骤:
-
在 平凯云 Premium 实例的 Security 页面中,在 Dual-Layer Data Encryption 部分点击 Enable。
-
选择 Customer-Managed Encryption Key (CMEK),然后点击 Add KMS Key ARN。
-
复制显示的 JSON policy 语句。该 policy 语句定义了平凯数据库云服务所需的密钥访问权限。
-
在你的云服务提供商 KMS 控制台中,将此 policy 语句附加到你的密钥策略中。
- 对于 AWS,请参见 Key policies in AWS KMS。
- 对于 Alibaba Cloud,请参见 Manage Keys。
-
返回平凯数据库云服务控制台,滚动到页面底部,输入你从云服务提供商 KMS 获取的 KMS Key ARN。
-
点击 Test and Add KMS Key ARN 以验证密钥访问配置并启用双层数据加密。
选项 2:Service-Managed Encryption Key
如需由平凯数据库云服务代表你管理加密密钥,请执行以下步骤:
- 在 平凯云 Premium 实例的 Security 页面中,在 Dual-Layer Data Encryption 部分点击 Enable。
- 选择 Service-Managed Encryption Key。
- 点击 Enable。
查看加密状态
启用加密后,请在以下位置检查状态:
- 在 平凯云 Premium 实例的 Overview 页面,Encryption 字段会显示当前启用的密钥管理方式:Enabled with Customer-Managed Encryption Key (CMEK) 或 Enabled with Service-Managed Encryption Key。
- 在 Security 页面,你可以查看双层数据加密的详细配置。
从加密备份恢复
从启用了加密的 平凯云 Premium 实例创建的备份也会被加密。恢复加密备份时,新实例必须使用一致的加密设置。
警告:
- 当前,你只能将加密备份恢复到与原始实例相同账户且相同区域下。暂不支持跨区域和跨账户恢复操作。
- 你需要对密钥的安全性和可用性负责。如果你的 CMEK 被删除或永久损坏,与该密钥关联的任何备份数据也将无法恢复。
恢复使用 CMEK 加密的备份
如果备份使用 CMEK 加密,请确保新实例在恢复期间能够访问 KMS 主密钥。密钥 ARN 保持不变。
要验证访问权限,点击 Check 开始 trust policy 验证。随后,平凯数据库云服务会检查密钥策略中已授权的平凯数据库云服务账户是否与原始备份关联的账户一致:
- 如果账户一致,则无需进一步授权。
- 如果账户不一致,请复制提供的密钥策略并在你的云服务提供商 KMS 中修改。此更新会重新授予该密钥权限,并确保新实例能够访问它。
恢复使用 Service-Managed Encryption Key 加密的备份
如果备份使用 Service-Managed Encryption Key 加密,则恢复后的实例会自动继承相同的密钥类型。在恢复过程中,加密默认启用,且密钥类型设置为 Service-Managed Encryption Key。
轮换 Customer-Managed Encryption Key (CMEK)
你可以在你的云服务提供商 KMS 中配置 CMEK 自动轮转。平凯数据库云服务中无需更新配置。
- 对于 AWS,请参见 automatic CMEK rotation。
- 对于 Alibaba Cloud,请参见 Key rotation.