提问背景
数据安全合规要求日益严格,许多企业要求数据库存储层加密。OceanBase支持TDE,但用户关心加密算法、密钥管理方式以及对读写性能的影响。尤其在高并发写入场景下,加密开销可能放大写入延迟。
具体问题
- OceanBase的TDE是表空间级加密还是列级加密?是否支持国密算法(如SM4)?
- 加密密钥如何管理?是否支持对接外部KMS(如Hashicorp Vault、阿里云KMS)?
- 启用TDE后,对读/写性能的典型影响有多大(例如CPU开销增加百分比)?是否可以通过硬件加速(如Intel QAT)降低开销?
- 备份数据是否默认加密?如果备份到外部存储,密钥如何传递和存储以保证安全?
问题价值
安全特性是选型关键,该问题帮助用户评估TDE的合规性和性能代价,为金融、政务等高敏感数据
2 个赞
辞霜
#5
1.表空间(Tablespace)级加密支持国秘算法如SM4
2. 密钥管理与外部 KMS 对接
OceanBase 采用 两级密钥体系:
密钥管理方式通过 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,除非重建租户,否则无法切换加密方式。
- 加密只作用于磁盘 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’;
论坛小助手
#7
您好,您提的这个技术问题可能牵涉到 OceanBase 企业版范围内的功能细节;针对此类问题,建议你通过以下方式寻求帮助:
-
如你所在的企业客户已签署 OceanBase 企业版销售合同,请你联系客户经理;
-
如你所在的企业客户尚未签署 OceanBase 企业版销售合同,你可通过OceanBase官网商务咨询页面留下你的联系方式,OceanBase企业版的业务顾问会在一个工作日内与你联系。
另外,我们欢迎你使用社区版,并在论坛/社群中分享你对社区版本的想法、经验和问题,与其他社区成员共同交流。