内容提要
Percona正在开发PG_TDE工具,用于在磁盘上透明加密PostgreSQL数据。该工具正在测试中,本文介绍了在Ubuntu 22.04 LTS环境中运行PG_TDE的步骤。
延伸解读
PG_TDE 的定位与现状
PG_TDE 是 Percona 为 PostgreSQL 16 及更高版本开发的实验性透明数据加密访问方法,旨在解决 PostgreSQL 缺乏原生 TDE 的问题。它使用 AES-CTR 算法在文件级别加密数据,目前处于积极开发阶段,尚未成为正式功能。Percona 鼓励用户测试并提供反馈,以帮助改进产品。
在 Ubuntu 上测试的注意事项
文章以 Ubuntu 22.04 LTS 为例,使用发行版自带的 PostgreSQL 进行测试。安装 PG_TDE 需要下载 deb 包、配置 shared_preload_libraries 并重启服务。测试时需注意,若遇到“access method pg_tde does not exist”错误,需手动创建扩展。加密表与普通表在查询时无差异,但可通过 pgtde_is_encrypted 函数验证加密状态。
参与测试的意义
Percona 强调 TDE 是复杂功能,需要广泛测试以确保稳定性。用户积极测试有助于发现边缘情况,避免未来在生产环境中遇到问题。通过 GitHub 仓库或论坛提供反馈,可以推动 PG_TDE 成为 PostgreSQL 未来版本的一部分,从而提升数据静态保护能力。
Q&A
PG_TDE 是什么?它有什么作用?
PG_TDE 是 Percona 正在开发的一个工具,用于在磁盘上透明加密 PostgreSQL 数据。它使用 AES-CTR 加密算法,是 PostgreSQL 16 及以后的实验性透明数据加密访问方法。
为什么 PostgreSQL 需要透明数据加密(TDE)?
透明数据加密(TDE)提供文件级加密,解决静态数据保护问题。其他数据库已有此功能,但上游原生 PostgreSQL 尚未提供。Percona 收到用户反馈希望有此功能,因此正在开发开源扩展。
如何在 Ubuntu 22.04 LTS 上安装和配置 PG_TDE?
首先下载 pgtde-pgdg16.deb 包,使用 sudo dpkg -i 安装。然后以 postgres 用户登录,执行 ALTER SYSTEM SET shared_preload_libraries = 'pg_tde'; 并重启 PostgreSQL 服务。
如何使用 PG_TDE 加密表?
在创建表时使用 'USING pg_tde' 子句,例如:CREATE TABLE test_enc (id SERIAL, t VARCHAR(32), PRIMARY KEY(id)) USING pg_tde; 如果出现访问方法不存在的错误,可以执行 create extension pg_tde; 来创建扩展。
如何检查一个表是否被 PG_TDE 加密?
可以使用函数 pgtde_is_encrypted(<table name>) 来检查表是否加密。例如:select pgtde_is_encrypted('test_basic'); 返回 f 表示未加密,返回 t 表示已加密。
Percona 对 PG_TDE 的测试有什么呼吁?
Percona 呼吁用户积极测试 PG_TDE,下载到测试机并反馈体验(无论好坏),以帮助改进产品,确保其稳定并成为未来 PostgreSQL 版本的一部分。