Включение функциональности и ее настройка
Для работы функциональности необходимо подключить расширение anon. Это расширение входит в состав дистрибутива Pangolin, но по умолчанию не установлено.
Конфигурационные параметры
Параметр | Значение по умолчанию | Описание |
|---|---|---|
|
| Алгоритм хеширования, применяемый методом псевдонимизации. |
|
| Флаг, допускающий обфускацию для атрибутов, входящих в ограничение целостности |
|
| Локаль инициализации таблиц подстановок, применяемых в методах фальсификации и псевдонимизации |
|
| Имя |
|
| Схема БД, используемая расширением обфускации данных и содержащая таблицы и функции подстановок |
|
| Схема БД, используемая для генерации анонимизированных данных |
|
| Выбор стратегии маскирования атрибутов, не имеющих метки |
|
| Признак использования функций маскирования, расположенных только в схемах с атрибутом |
| Отсутствует | Соль, используемая для метода псевдонимизации |
|
| Схема БД по умолчанию, содержащая исходные данные. В случае использования нескольких схем — каждая из них должна быть помечена атрибутом |
|
| Требования соответствия типа подстановочного значения типу исходного значения |
|
| Режим динамического маскирования |
Применение изменений данных параметров требует перечитывания конфигурации (SELECT pg_reload_conf()). Параметры можно определить для всего экземпляра (в файле конфигурации postgresql.conf или с помощью ALTER SYSTEM), либо на уровне базы данных (ALTER DATABASE).
Таблицы подстановок
В таблице ниже представлены таблицы подстановок предоставляемые функциональностью:
| Объект | Аргументы, атрибуты | Возвращаемое значение | Описание |
|---|---|---|---|
anon.address | - | - | Адрес |
anon.city | - | - | Город |
anon.company | - | - | Компания |
anon.country | - | - | Страна |
anon.email | - | - | |
anon.first_name | - | - | Имя физического лица |
anon.iban | - | - | IBAN |
anon.identifier | - | - | Идентификатор атрибута для автоматической разметки БД в целях анонимизации |
anon.identifiers_category | - | - | Категория идентификатора для автоматической разметки БД в целях анонимизации |
anon.inn | - | - | ИНН |
anon.last_name | - | - | Фамилия физического лица |
anon.lorem_ipsum | - | - | Текстовые данные для генератора текстовых данных |
anon.middle_name | - | - | Отчество физического лица |
anon.ogrn | - | - | ОГРН |
anon.personal_name | - | - | ФИО физического лица |
anon.postcode | - | - | Почтовый индекс |
anon.siret | - | - | SIRET |
anon.snils | - | - | СНИЛС |
Настройка
Для начала использования функциональности выполните следующие действия:
-
Установите rpm/deb-пакет расширения из поставляемой 3rd Party части дистрибутива:
[UserName@ServerName ~]$ cd ~/Distr/3rdparty[UserName@ServerName 3rdparty]$ tar xf 3rdparty.tar.gz[UserName@ServerName 3rdparty]$ ls -latotal 551252drwxr-xr-x. 22 UserName UserName 4096 Jul 3 23:52 .drwxr-xr-x. 12 UserName UserName 4096 Sep 15 15:12 ..-rw-r--r--. 1 UserName UserName 436164214 Sep 15 15:10 3rdparty.tar.gzdrwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:32 citusdrwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:50 license_rest_apidrwxr-xr-x. 3 UserName UserName 4096 Jul 3 23:55 migration_tools-rw-r--r--. 1 UserName UserName 14326371 Jul 3 23:50 pangolin-ansible-venv-controlled-6.7.0-redos8.0.x86_64.rpm-rw-r--r--. 1 UserName UserName 52242719 Jul 3 23:52 pangolin-ansible-venv-controller-6.7.0-redos8.0.x86_64.rpmdrwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:40 pangolin-backup-tools-venvdrwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:49 pangolin-manager-venv-rw-r--r--. 1 UserName UserName 61643586 Jul 3 23:50 pcloudn-1.20.6-distrib.tar.gzdrwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:33 pg_anondrwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:42 pg_backgrounddrwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:33 pgcompacttabledrwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:33 pgcopydbdrwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:42 pg_dbms_lockdrwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:31 pgqdrwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:31 pgq_coopdrwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:31 pgqddrwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:43 pgroutingdrwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:33 pgsql_httpdrwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:31 pldebuggerdrwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:33 plpgsql_checkdrwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:46 postgisdrwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:43 timescaledbdrwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:43 timescaledb_2_19_3[UserName@ServerName 3rdparty]$ cd pg_anon/[UserName@ServerName pg_anon]$ ls -latotal 604drwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:33 .drwxr-xr-x. 22 UserName UserName 4096 Jul 3 23:52 ..-rw-r--r--. 1 UserName UserName 606611 Jul 3 23:33 pangolin-1.3.1-6.7.0.redos8.0.x86_64.rpmДля установки необходимо выполнить команду:
[UserName@ServerName pg_anon]$ sudo dnf install pangolin-pg-anon-1.3.1-6.7.0.redos8.0.x86_64.rpm -
Создайте базу данных
prod:[UserName@ServerName pg_anon]$ sudo su - postgres[postgres@ServerName ~]$ psqlPager is used for long output.Border style is 2.Line style is unicode.psql (15.5)Type "help" for help.postgres@postgres=# CREATE DATABASE prod;CREATE DATABASE -
Обфускация может влиять на производительность, поэтому не рекомендуется, чтобы она работала всегда. Определите конфигурационный параметр
session_preload_libraries(библиотеки предварительной загрузки сессии) для необходимой БД или сессии:postgres@postgres=# \c prodpostgres@prod=# ALTER DATABASE prod SET session_preload_libraries='anon';ALTER DATABASEpostgres@prod=# SELECT pg_reload_conf();┌────────────────┐│ pg_reload_conf │├────────────────┤│ t │└────────────────┘(1 row) -
Активируйте расширение
anon:postgres@prod=# CREATE EXTENSION anon;CREATE EXTENSION