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

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

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

Ограничения

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

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

  2. Отсутствие возможности отключения TDE при наличии баз данных, расположенных на зашифрованных табличных пространствах.

  3. Требование остановки СУБД Pangolin на мастере и реплике перед выполнением утилиты.

  4. Последовательность отключения:

    • Защита данных от привилегированного пользователя;
    • Прозрачное защитное преобразование данных (TDE);
    • Защита параметров конфигурации сервера Pangolin
  5. Ограничения прав доступа – утилиты для отключения функциональности могут использоваться только пользователем kmadmin_pg.

  6. Требование аутентификации и авторизации от администратора безопасности.

  7. Необходимость достаточного объема свободного места на диске для переноса табличных пространств.

  8. Автоматический режим отключения TDE (без указания списка табличных пространств) нельзя использовать на кластерных конфигурациях.

Примечание:

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

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

Внимание!

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

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

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

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

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

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

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

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

Добавлена функция, необходимая для удаления отключения защиты защищенных объектов и удаления политик защиты.

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

  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(), которая выполняет очистку системных таблиц: pr_object, pr_object_attr, pr_policy, pr_policy_attr, pr_rule, pr_grant, pr_object_kind.

  5. Остановка СУБД Pangolin.

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

    • удаляются записи из таблиц pg_pp_password, pg_pp_history, pg_authid, pg_db_role_setting для пользователей, входящих в роль sec_admin_role;
    • удаляются записи из таблиц pg_pp_password, pg_pp_history, pg_authid, pg_db_role_setting для роли sec_admin_role.
  7. Восстановление оригинальной версии файла pg_hba.conf после успешного завершения процесса отключения защиты.

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

Отключение функциональности «Шифрование хранимых данных (TDE)»

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

  • --data или -D: каталог PGDATA;
  • --tablespaces или -T: массив, содержащий данные о табличных пространствах. Каждая запись массива включает имя исходного табличного пространства, целевое табличное пространство и каталог в файловой системе, разделенные двоеточиями. Записи массива разделяются точкой с запятой. Имена исходного и целевого табличных пространств должны различаться. Имя целевого табличного пространства не должно совпадать с существующими именами табличных пространств. Целевой каталог должен существовать и быть пуст.

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

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. Создание нового физического каталога для копии данных.
  4. Создание временного табличного пространства в новом каталоге.
  5. Перенос данных на новое табличное пространство.
  6. Удаление старого табличное пространство, если оно пустое.
  7. Удаление исходного каталога, если он пуст.
  8. Переименовывание временного табличного пространства в исходное имя.
  9. Переименовывание временного каталога в исходное имя:
  10. Обновление символической ссылки для нового расположения табличного пространства.
  11. Расшифровка WAL.

Ручной режим переноса отношений на новое табличное пространство:

Примечание:

В этом режиме отношения переносятся в новое табличное пространство, переданное через аргумент -T.

  1. Передача массвива с исходными и целевыми табличными пространствами и их новыми каталогами в аргумент -T.

  2. Проверка исходных данных:

    • проверка, что все исходные табличные пространства существуют;
    • если какое-то табличное пространство отсутствует, оно пропускается;
    • проверка, что целевые табличные пространства не существуют;
    • если целевое табличное пространство уже существует, процесс завершается.
  3. Проверка наличия свободного места в целевом каталоге — если места недостаточно, процесс завершается.

  4. Создание целевых табличных пространств.

  5. Перенос отношений в новое табличное пространство.

  6. Расшифровка WAL.

Отключение функциональности «Secure Config»

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

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

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

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

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

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

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

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

    • удаление файла конфигурации /etc/pangolin-security-utilities/enc_connection_settings.cfg, если параметр is_tde_on выключен;
    • завершение работы, если параметр is_tde_on включен.