PostgreSQL Anonymizer 1.1:Postgres 默认隐私保护

发布于 2022-09-29,作者:Dalibo
相关开源

法国图尔,2022 年 9 月 28 日

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

该扩展支持 3 种不同的匿名化策略:动态掩码静态掩码匿名转储。它还提供了大量的 掩码函数 选择,例如替换、随机化、伪造、匿名化、部分加扰、洗牌、噪声添加和泛化。

默认隐私保护

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/

一致的匿名转储

在 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/

如何安装

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

在 Red Hat、CentOS 和 Rocky Linux 系统上,您可以直接从 官方 PostgreSQL RPM 存储库安装它

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/

致谢

此版本包括 Michel Pelletier、Gergő Rubint、Mahesh Moturu、Greg pringle、Christophe Courtois 和其他 贡献者 的代码、错误修复、文档、代码审查和想法。

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

如何贡献

PostgreSQL Anonymizer 是 Dalibo Labs 倡议的一部分。它主要由 Damien Clochard 开发。

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

如果您想提供帮助,可以在这里找到 初级任务 列表

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