OceanBase透明数据加密(TDE)的实现细节与性能影响

提问背景
数据安全合规要求日益严格,许多企业要求数据库存储层加密。OceanBase支持TDE,但用户关心加密算法、密钥管理方式以及对读写性能的影响。尤其在高并发写入场景下,加密开销可能放大写入延迟。

具体问题

  1. OceanBase的TDE是表空间级加密还是列级加密?是否支持国密算法(如SM4)?
  2. 加密密钥如何管理?是否支持对接外部KMS(如Hashicorp Vault、阿里云KMS)?
  3. 启用TDE后,对读/写性能的典型影响有多大(例如CPU开销增加百分比)?是否可以通过硬件加速(如Intel QAT)降低开销?
  4. 备份数据是否默认加密?如果备份到外部存储,密钥如何传递和存储以保证安全?

问题价值
安全特性是选型关键,该问题帮助用户评估TDE的合规性和性能代价,为金融、政务等高敏感数据

2 个赞

只要是加密,就肯定会对性能造成影响

感谢分享

1.表空间(Tablespace)级加密支持国秘算法如SM4
2. 密钥管理与外部 KMS 对接

OceanBase 采用 两级密钥体系:

  • 主密钥(Master Key): 每个租户一个,存储于 Keystore 中,用于加密数据密钥

  • 数据密钥(Data Key): 每个加密表空间一个,由主密钥加密后存储在内部表和宏块/Clog 头部中

密钥管理方式通过 tde_method 配置项控制,支持三种模式:

tde_method 取值 含义
none 关闭加密
internal 主密钥存储于 OceanBase 内部表
bkmi 主密钥存储于外部 BKMI 密钥管理系统
obcloud 通过统一 KMS 代理服务管理(V4.3.5 BP2+)
  • internal 模式:私有云部署主要使用此方式,密钥在内部表中管理

  • bkmi 模式:支持对接外部 BKMI 密钥管理系统

  • obcloud 模式(V4.3.5 BP2 起新增):通过统一 KMS 代理服务管理,需要配置 external_kms_info 参数(kms_host、access_key_id、access_key_secret、cmk_id)

关于 Hashicorp Vault 的直接对接,官方文档中未提及原生支持。目前外部 KMS 支持的是 BKMI 和 OceanBase Cloud KMS 代理服务。如果需要对接第三方 KMS(如 Vault),可能需要通过 KMS 代理服务层间接实现。
安全特性:用户无法直接查看或指定主密钥和数据密钥,所有密钥由系统生成,不会以明文存储在磁盘上。支持主密钥轮转(ALTER INSTANCE ROTATE INNODB MASTER KEY),且一旦设置了 tde_method,除非重建租户,否则无法切换加密方式。

  1. 加密只作用于磁盘 I/O 路径:内存中的数据不加密,只有写入磁盘时才加密,读取时才解密。这意味着热数据在内存中时不受加密影响。

4.备份数据是否默认加密: 如果源租户已开启 TDE,由于备份的是磁盘上的加密数据(宏块数据),备份数据继承了源数据的加密状态。OceanBase 文档中明确指出"用户数据和备份最终都是以二进制的形式存储在磁盘上",TDE 对此提供保护。
密钥传递和存储机制: 当源租户配置了透明加密时,备份前需要单独备份密钥:

– 系统租户为指定租户备份密钥

ALTER SYSTEM BACKUP KEY TENANT = tenant_name TO ‘backup_key_path’ ENCRYPTED BY ‘password’;

– 用户租户为本租户备份密钥

ALTER SYSTEM BACKUP KEY TO ‘backup_key_path’ ENCRYPTED BY ‘password’;

@论坛小助手

您好,您提的这个技术问题可能牵涉到 OceanBase 企业版范围内的功能细节;针对此类问题,建议你通过以下方式寻求帮助:

  1. 如你所在的企业客户已签署 OceanBase 企业版销售合同,请你联系客户经理;

  2. 如你所在的企业客户尚未签署 OceanBase 企业版销售合同,你可通过OceanBase官网商务咨询页面留下你的联系方式,OceanBase企业版的业务顾问会在一个工作日内与你联系。

另外,我们欢迎你使用社区版,并在论坛/社群中分享你对社区版本的想法、经验和问题,与其他社区成员共同交流。