Перейти к основному содержимому

Включение функциональности и ее настройка

Для работы функциональности необходимо подключить расширение anon. Это расширение входит в состав дистрибутива Pangolin, но по умолчанию не установлено.

Конфигурационные параметры​

Параметр

Значение по умолчанию

Описание

anon.algorithm

sha256

Алгоритм хеширования, применяемый методом псевдонимизации.
Поддерживаются md5, sha1, sha224, sha256, sha384 и sha512

anon.allow_constraints_masking

false

Флаг, допускающий обфускацию для атрибутов, входящих в ограничение целостности

anon.default_locale

en_US

Локаль инициализации таблиц подстановок, применяемых в методах фальсификации и псевдонимизации

anon.k_anonymity_provider

k_anonymity

Имя SECURITY PROVIDER, используемого для метода K-Anonimity

anon.masking_policies

anon

Схема БД, используемая расширением обфускации данных и содержащая таблицы и функции подстановок

anon.maskschema

mask

Схема БД, используемая для генерации анонимизированных данных

anon.privacy_by_default

off

Выбор стратегии маскирования атрибутов, не имеющих метки SECURITY LABEL. При включении параметра — для всех атрибутов, имеющих значения по умолчанию — будут использоваться они. Для атрибутов, допускающих NULL — подставлен NULL

anon.restrict_to_trusted_schemas

on

Признак использования функций маскирования, расположенных только в схемах с атрибутом TRUSTED

anon.salt

Отсутствует

Соль, используемая для метода псевдонимизации

anon.sourceschema

public

Схема БД по умолчанию, содержащая исходные данные. В случае использования нескольких схем — каждая из них должна быть помечена атрибутом TRUSTED

anon.strict_mode

on

Требования соответствия типа подстановочного значения типу исходного значения

anon.transparent_dynamic_masking

off

Режим динамического маскирования

Подсказка

Применение изменений данных параметров требует перечитывания конфигурации (SELECT pg_reload_conf()). Параметры можно определить для всего экземпляра (в файле конфигурации postgresql.conf или с помощью ALTER SYSTEM), либо на уровне базы данных (ALTER DATABASE).

Таблицы подстановок​

В таблице ниже представлены таблицы подстановок предоставляемые функциональностью:

ОбъектАргументы, атрибутыВозвращаемое значениеОписание
anon.address--Адрес
anon.city--Город
anon.company--Компания
anon.country--Страна
anon.email--e-mail
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--СНИЛС

Настройка​

Для начала использования функциональности выполните следующие действия:

  1. Установите rpm/deb-пакет расширения из поставляемой 3rd Party части дистрибутива:

    [UserName@ServerName ~]$ cd ~/Distr/3rdparty
    [UserName@ServerName 3rdparty]$ tar xf 3rdparty.tar.gz
    [UserName@ServerName 3rdparty]$ ls -la
    total 551252
    drwxr-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.gz
    drwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:32 citus
    drwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:50 license_rest_api
    drwxr-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.rpm
    drwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:40 pangolin-backup-tools-venv
    drwxr-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.gz
    drwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:33 pg_anon
    drwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:42 pg_background
    drwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:33 pgcompacttable
    drwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:33 pgcopydb
    drwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:42 pg_dbms_lock
    drwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:31 pgq
    drwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:31 pgq_coop
    drwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:31 pgqd
    drwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:43 pgrouting
    drwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:33 pgsql_http
    drwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:31 pldebugger
    drwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:33 plpgsql_check
    drwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:46 postgis
    drwxr-xr-x. 2 UserName UserName 4096 Jul 3 23:43 timescaledb
    drwxr-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 -la
    total 604
    drwxr-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
  2. Создайте базу данных prod:

    [UserName@ServerName pg_anon]$ sudo su - postgres
    [postgres@ServerName ~]$ psql
    Pager 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
  3. Обфускация может влиять на производительность, поэтому не рекомендуется, чтобы она работала всегда. Определите конфигурационный параметр session_preload_libraries (библиотеки предварительной загрузки сессии) для необходимой БД или сессии:

    postgres@postgres=# \c prod
    postgres@prod=# ALTER DATABASE prod SET session_preload_libraries='anon';
    ALTER DATABASE
    postgres@prod=# SELECT pg_reload_conf();
    ┌────────────────┐
    │ pg_reload_conf │
    ├────────────────┤
    │ t │
    └────────────────┘
    (1 row)
  4. Активируйте расширение anon:

    postgres@prod=# CREATE EXTENSION anon;
    CREATE EXTENSION

Подведем итоги​

Вопрос 1

Вопрос 1: Какое расширение необходимо подключить для использования функциональности обфускации данных?

Вопрос 2

Вопрос 2: Что происходит при включении параметра anon.privacy_by_default (выберите несколько вариантов)?