PostgreSQL Anonymizer 1.1:Postgres 的隐私默认方案

发布于 2022-09-29,Dalibo
相关开源软件

法国图尔,2022年9月28日

PostgreSQL Anonymizer 是一款用于隐藏或替换 PostgreSQL 数据库中个人身份信息(PII)或商业敏感数据的扩展。

该扩展支持三种不同的匿名化策略:动态脱敏 (https://postgresql-anonymizer.readthedocs.io/en/latest/dynamic_masking/)、静态脱敏 (https://postgresql-anonymizer.readthedocs.io/en/latest/static_masking/) 和匿名导出 (https://postgresql-anonymizer.readthedocs.io/en/latest/anonymous_dumps/)。它还提供了丰富的脱敏函数 (https://postgresql-anonymizer.readthedocs.io/en/latest/masking_functions/) 可供选择,包括替换、随机化、伪造、假名化、部分混淆、洗牌、噪声添加和泛化。

隐私默认

GDPR 法规(及其他隐私法律)引入了"默认数据保护"的概念。简单来说,这意味着组织应当默认确保以最高隐私保护标准处理数据,使个人数据默认不会对不特定的多数人公开。

将这一原则应用于匿名化,我们就得出了"隐私默认"的理念——即所有表的所有列都应默认进行脱敏处理,无需为每一列逐一声明脱敏规则。

要启用此功能,只需将选项 anon.privacy_by_default 设置为 on

ALTER DATABASE foo SET anon.privacy_by_default = True; ```

现在 foo 数据库的所有列都将使用列的默认值(如已定义)或 NULL 进行匿名化处理。

注意事项:如果某些列声明为 NOT NULL,则必须定义默认值,否则在匿名化数据库时会出现约束违规错误。

有关此功能的更多详细信息,请访问以下链接:

https://postgresql-anonymizer.readthedocs.io/en/latest/privacy_by_default/ (https://postgresql-anonymizer.readthedocs.io/en/latest/privacy_by_default/)

一致性匿名导出

在 1.0 版本之前,pg_dump_anon 是一个 bash 脚本。该脚本简洁实用,但在某些条件下匿名备份无法保证一致性。

现在推出了全新版本的 pg_dump_anon(使用 Golang 重写),能够始终生成一致性的导出。

之前的脚本现已重命名为 pg_dump_anon.sh,仍可用于向后兼容,但将在 2.0 版本中被弃用。

https://postgresql-anonymizer.readthedocs.io/en/latest/anonymous_dumps/ (https://postgresql-anonymizer.readthedocs.io/en/latest/anonymous_dumps/)

安装方式

该扩展正式支持 PostgreSQL 9.6 及更高版本。

在 Red Hat、CentOS 和 Rocky Linux 系统上,可以直接从 PostgreSQL 官方 RPM 仓库 (https://yum.postgresql.org/) 安装:

dnf install postgresql_anonymizer14 ```

然后加载扩展:

ALTER DATABASE foo SET session_preload_libraries = 'anon'; ```

在数据库中创建扩展:

CREATE EXTENSION anon CASCADE; ```

最后,初始化扩展:

SELECT anon.init(); ```

对于其他系统,请参阅安装文档 (https://postgresql-anonymizer.readthedocs.io/en/latest/INSTALL/):

https://postgresql-anonymizer.readthedocs.io/en/latest/INSTALL/ (https://postgresql-anonymizer.readthedocs.io/en/latest/INSTALL/)

致谢

本次发布包含了来自 Michel Pelletier、Gergő Rubint、Mahesh Moturu、Greg Pringle、Christophe Courtois 及其他贡献者 (https://gitlab.com/dalibo/postgresql_anonymizer/-/blob/master/AUTHORS.md) 的代码、缺陷修复、文档、代码审查和建议。

非常感谢他们的帮助和反馈。

如何贡献

PostgreSQL Anonymizer 是 Dalibo Labs (https://labs.dalibo.com) 计划的一部分,主要由 Damien Clochard (https://www.dalibo.com/en/equipe#daamien) 开发。

这是一个开放项目,欢迎贡献。我们需要你的反馈和想法!请告诉我们你对该工具的看法、它如何满足你的需求,以及还缺少哪些功能。

如果你想提供帮助,可以在这里找到一份"初级任务"列表:

https://gitlab.com/dalibo/postgresql_anonymizer/issues?label_name%5B%5D=Junior+Jobs (https://gitlab.com/dalibo/postgresql_anonymizer/issues?label_name%5B%5D=Junior+Jobs)