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

Возможность полного отключения СЗИ

Функциональность позволяет администраторам безопасности полностью отключить три компонента безопасности базы данных: «Прозрачное защитное преобразование данных (TDE)», «Защита данных от привилегированных пользователей» и «Защита параметров конфигурации сервера Pangolin».

Отключение защиты данных от привилегированного пользователя может выполняться в двух режимах: pause (временное отключение) и full (полное удаление следов). В обоих случаях требуется аутентификация и авторизация администратора безопасности. Право использования соответствующих утилит предоставляется исключительно пользователю kmadmin_pg.

Ограничения

Ограничения, обеспечивающие управление и безопасность процесса отключения защиты, и минимизирующие риски ошибок и несанкционированного доступа:

  1. Перед выполнением каждой утилиты необходимо остановить СУБД Pangolin на мастере и на реплике.
  2. Утилиты могут использовать только пользователи kmadmin_pg.
  3. Утилита отключения защиты данных от привилегированного пользователя требует аутентификации и авторизации.
  4. После отключения защиты данных от привилегированного пользователя необходимо запустить кластер для синхронизации данных.
  5. Для переноса табличных пространств при отключении TDE требуется достаточный объем свободного места — не менее 110% от размера засекреченных данных.
  6. Перед использованием tde_disabler необходимо:
  • выполнить команду CHECKPOINT на первом узле;
  • убедиться, что WAL передан на реплику (SELECT replay_lsn = pg_current_wal_insert_lsn() FROM pg_stat_replication возвращает true);
  • выполнить команду CHECKPOINT на втором узле.
  1. Утилита tde_disabler переносит данные с засекреченных табличных пространств на незасекреченные, отключив фоновые процессы, генерирующие данные.
примечание

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

  1. Остановка обоих узлов: оба узла кластера должны быть остановлены перед началом выполнения утилит.
  2. Если включена функциональность «Защита данных от привилегированного пользователя», то в первую очередь выполняется утилита admin_protection_disabler на мастере.
  3. После этого выполняется запуск кластера для синхронизации данных.
  4. Когда данные синхронизированы, кластер останавливается.
  5. Следующим шагом должна выполняться утилита tde_disabler на обоих узлах. Это связано с необходимостью рассекречивания существующих WAL и установки параметра is_tde_on в локальных файлах конфигурации.
  6. Последним шагом выполняется утилита secure_config_disabler на обоих узлах. Утилита переименовывает файлы /etc/pangolin-security-utilities/enc_connection_settings.cfg, добавляя к исходному имени файла текущее время. Таким образом выполняется бэкап этих файлов.
Внимание!

Во время работы утилита tde_disabler переносит данные с преобразованных табличных пространств на непреобразованные. Поэтому целевой каталог должен иметь свободное пространство объемом не менее 110% от размера преобразованных данных. Рекомендуется также отключить программы, генерирующие большие объемы данных, чтобы избежать переполнения диска.

Описание решения

Разработаны три консольных приложения, каждое из которых предназначено для отключения определенной функциональности системы безопасности.

Отключение функциональности «Защита данных от привилегированного пользователя»

Утилита поддерживает два режима:

  • временное отключение с сохранением всех настроек;
  • полное удаление всех объектов и ролей, связанных с защитой.

Обязательные аргументы в консольном приложении для отключения функциональности «Защита данных от привилегированного пользователя»:

  • -u, --username: имя пользователя – администратора безопасности;
  • -p, --password: пароль пользователя – администратора безопасности;
  • -D, --data: каталог PGDATA.

Необязательные аргументы:

  • --force: режим работы без подтверждений. Необходим для использования утилиты в скриптах;
  • --dry-run: режим отображения предполагаемых действий без фактического выполнения операций;
  • --full: режим отключения с полным удалением всех данных функциональности «Защита данных от привилегированного пользователя»: списки защищенных объектов, политики, роли администратора безопасности.

Алгоритм отключения функциональности «Защита данных от привилегированного пользователя»

  1. Временная заменена оригинального файл pg_hba.conf для безопасного отключения защиты:

    • сохраняется оригинальный файл pg_hba.conf в каталоге PGDATA под именем pg_hba.conf.Y.m.d.H.M.S, где Y – год, m – месяц; d – день; H – час; M – минуты;S – секунды;

    • создается временный файл pg_hba.conf, позволяющий подключаться к СУБД только пользователю, входящему в роль sec_admin_role.

      host all sec_admin 0.0.0.0/0 scram-sha-256
  2. Запуск СУБД Pangolin.

  3. Подключение под пользователем sec_admin:

  4. Вызов функции PM_DISABLE_PROTECTION()

    • при режиме pause сохраняются политики и роли;
    • при режиме full удаляются данные из таблиц pr_object, pr_object_attr, pr_policy, pr_policy_attr, pr_rule, pr_grant, pr_object_kind.
  5. Остановка кластера и запуск в single-режиме.

  6. Восстановление оригинальной версии файла pg_hba.conf после успешного завершения процесса отключения защиты.

  7. Завершение работы утилиты.

  8. Результатом работы утилиты является отсутствие настроек связанных с функциональностью «Защита данных от привилегированного пользователя».

Если необходимо включить функциональность «Защита данных от привилегированного пользователя», выполните команду initprotection. Команда initprotection инициализирует функциональность и проверяет, полностью ли она выключена или временно.

Если функциональность выключена временно, initprotection предложит включить ее (снять режим паузы). В консоли появится запрос:

Protection in pause mode. Resume protection? [yes/no]

Пользователь должен выбрать, включить ли функциональность, введя yes или no.

Отключение функциональности «Прозрачное защитное преобразование данных (TDE)»

Обязательные аргументы в консольном приложении для отключения функциональности «Прозрачное защитное преобразование данных (TDE)»:

  • -D, --data: каталог PGDATA;
  • -M, --pangolin-manager-config: конфигурация для кластеров (по умолчанию /etc/pangolin-manager/postgresql.yml);
  • -T, --tablespaces: список табличных пространств вида src_ts:dst_ts:/location.

Особенности:

  • При пустом -T в standalone: автоматический перенос в текущие каталоги.
  • В кластерной конфигурации пустой аргумент -T означает: все объекты уже расположены в незасекреченных табличных пространствах и необходимо выполнить только рассекречивание WAL файлов. При наличии объектов на засекреченных табличных пространствах необходимо указать исходные табличные пространства, целевые табличные пространства и каталоги целевых табличных пространств.
  • Каталоги целевых табличных пространств должны быть созданы заранее.
  • Целевые табличные пространства должны отсутствовать. Они создаются в процессе работы утилиты.

Пример использования обязательных аргументов:

tde_disabler -D /pgdata/06/data -T "src_ts1:dst_ts1:/dst/location1;src_ts2:dst_ts2:/dst/location2;src_ts3:dst_ts3:/dst/location3"

Необязательные аргументы:

  • --force: режим работы без подтверждений. Необходим для использования утилиты в скриптах;
  • --dry-run: режим отображения предполагаемых действий без фактического выполнения операций.

Алгоритм отключения функциональности «Прозрачное защитное преобразование данных (TDE)»

Важно

Автоматический режим возможен только в конфигурациях standalone. Его использование в кластерной конфигурации может привести к неработоспособности кластера.

  1. Проверка функциональности защиты: разрешено ли перемещение объектов.
  2. Перенос данных в ручном или автоматическом режиме.
  3. Обновление параметра is_tde_on = off.
  4. Рассекречивание WAL в single-режиме.
  5. При успешном отключении функциональности «Прозрачное защитное преобразование данных (TDE)» выводится сообщение AUDIT: SESSION,1,1,MISC,SET,PARAMETER,is_tde_on,SET is_tde_on = off,<not logged>.

Отключение функциональности «Защита параметров конфигурации сервера»

Обязательный аргумент в консольном приложении для отключения функциональности «Защита параметров конфигурации сервера» – -D, --data (каталог PGDATA).

Необязательные аргументы:

  • --force: режим работы без подтверждений. Необходим для использования утилиты в скриптах.

Алгоритм отключения функциональности «Защита параметров конфигурации сервера»

  1. Запуск утилиты отключения функциональности «Защита параметров конфигурации сервера Pangolin».

  2. Запуск СУБД Pangolin в single-режиме.

  3. Проверка, включен ли параметр is_tde_on:

    • удаление файла конфигурации /etc/pangolin-security-utilities/enc_connection_settings.cfg, если параметр is_tde_on выключен;
    • завершение работы, если параметр is_tde_on включен.
  4. При успешном отключении функциональности «Защита параметров конфигурации сервера» выводится сообщение AUDIT: SESSION,1,1,MISC,SET,PARAMETER,secure_config,SET secure_config = off,<not logged>.

Каждое из этих консольных приложений помогает администраторам безопасности управлять безопасностью данных в системе, отключая избыточные или ненужные механизмы защиты.