PostgreSQL Anonymizer 1.1:Postgres 預設保護隱私

發表於 2022-09-29,作者:Dalibo
相關開源

法國 Tour,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 開發。

這是一個開放專案,歡迎貢獻。我們需要您的回饋和想法!請告訴我們您對此工具的看法、它如何滿足您的需求以及缺少哪些功能。

如果您想提供幫助,可以在這裡找到 Junior Jobs 的列表

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