Возможность полного отключения СЗИ#
Новая функциональность позволяет администраторам безопасности полностью отключить три компонента безопасности базы данных: «Прозрачное защитное преобразование данных (TDE)», «Защита данных от привилегированных пользователей» и «Защита параметров конфигурации сервера Pangolin». При этом отключение защиты от привилегированного пользователя требует процедуры аутентификации и авторизации администратора безопасности, а право использования соответствующих утилит предоставляется исключительно пользователю kmadmin_pg.
Ограничения#
Ограничения, обеспечивающие управление и безопасность процесса отключения защиты, и минимизирующие риски ошибок и несанкционированного доступа:
Отсутствие возможности временного отключения функциональности «Защиты данных от привилегированных пользователей».
Отсутствие возможности отключения TDE при наличии баз данных, расположенных на зашифрованных табличных пространствах.
Требование остановки СУБД Pangolin на мастере и реплике перед выполнением утилиты.
Последовательность отключения:
Защита данных от привилегированного пользователя;
Прозрачное защитное преобразование данных (TDE);
Защита параметров конфигурации сервера Pangolin
Ограничения прав доступа – утилиты для отключения функциональности могут использоваться только пользователем
kmadmin_pg.Требование аутентификации и авторизации от администратора безопасности.
Необходимость достаточного объема свободного места на диске для переноса табличных пространств.
Автоматический режим отключения TDE (без указания списка табличных пространств) нельзя использовать на кластерных конфигурациях.
Примечание:
В кластерной конфигурации необходимо соблюдать следующий порядок выполнения утилит:
Остановка обоих узлов: оба узла кластера должны быть остановлены перед началом выполнения утилит.
Если включена функциональность «Защита данных от привилегированного пользователя», то в первую очередь выполняется утилита
admin_protection_disablerна мастере.Следующим шагом должна выполняться утилита
tde_disablerна обоих узлах. Это связано с необходимостью расшифровки существующих WAL и установки параметраis_tde_onв локальных файлах конфигурации.Последним шагом выполняется утилита
secure_config_disablerна обоих узлах. Утилита удаляет файлы/etc/pangolin-security-utilities/enc_connection_settings.cfg.
Внимание!
Во время работы утилита
tde_disablerпереносит данные с зашифрованных табличных пространств на незашифрованные. Поэтому целевой каталог должен иметь свободное пространство объемом не менее 110% от размера зашифрованных данных. Рекомендуется также отключить программы, генерирующие большие объемы данных, чтобы избежать переполнения диска.
Описание решения#
Разработаны три консольных приложения, каждое из которых предназначено для отключения определенной функциональности системы безопасности.
Отключение функциональности «Защита данных от привилегированного пользователя»#
Обязательные аргументы в консольном приложении для отключения функциональности «Защита данных от привилегированного пользователя»:
--usernameили-u: имя пользователя – администратора безопасности;--passwordили-p: пароль пользователя – администратора безопасности;--dataили-D: каталогPGDATA.
Необязательные аргументы:
--force: режим работы без подтверждений. Необходим для использования утилиты в скриптах;--dry-run: режим отображения предполагаемых действий без фактического выполнения операций.
Добавлена функция, необходимая для удаления отключения защиты защищенных объектов и удаления политик защиты.
Алгоритм отключения функциональности «Защита данных от привилегированного пользователя»#
Временная заменена оригинального файл
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
Запуск СУБД Pangolin.
Подключение под пользователем
sec_admin:Вызов функции
PM_DISABLE_PROTECTION(), которая выполняет очистку системных таблиц:pr_object,pr_object_attr,pr_policy,pr_policy_attr,pr_rule,pr_grant,pr_object_kind.Остановка СУБД Pangolin.
Запуск СУБД 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.
Восстановление оригинальной версии файла
pg_hba.confпосле успешного завершения процесса отключения защиты.Завершение работы утилиты.
Отключение функциональности «Шифрование хранимых данных (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):
Примечание:
В этом режиме отношения остаются в исходном каталоге, а табличное пространство сохраняет свое первоначальное название.
Получение списка зашифрованных табличных пространств.
Проверка, что в целевом каталоге достаточно места для хранения расшифрованных данных.
Создание нового физического каталога для копии данных.
Создание временного табличного пространства в новом каталоге.
Перенос данных на новое табличное пространство.
Удаление старого табличное пространство, если оно пустое.
Удаление исходного каталога, если он пуст.
Переименовывание временного табличного пространства в исходное имя.
Переименовывание временного каталога в исходное имя:
Обновление символической ссылки для нового расположения табличного пространства.
Расшифровка WAL.
Ручной режим переноса отношений на новое табличное пространство:
Примечание:
В этом режиме отношения переносятся в новое табличное пространство, переданное через аргумент
-T.
Передача массвива с исходными и целевыми табличными пространствами и их новыми каталогами в аргумент
-T.Проверка исходных данных:
проверка, что все исходные табличные пространства существуют;
если какое-то табличное пространство отсутствует, оно пропускается;
проверка, что целевые табличные пространства не существуют;
если целевое табличное пространство уже существует, процесс завершается.
Проверка наличия свободного места в целевом каталоге — если места недостаточно, процесс завершается.
Создание целевых табличных пространств.
Перенос отношений в новое табличное пространство.
Расшифровка WAL.
Отключение функциональности «Secure Config»#
Обязательный аргумент в консольном приложении для отключения функциональности «Secure Config» – --data или -D (каталог PGDATA).
Необязательные аргументы:
--force: режим работы без подтверждений. Необходим для использования утилиты в скриптах;--dry-run: режим отображения предполагаемых действий без фактического выполнения операций.
Каждое из этих консольных приложений помогает администраторам безопасности управлять безопасностью данных в системе, отключая избыточные или ненужные механизмы защиты.
Алгоритм отключения функциональности «Защита параметров конфигурации сервера Pangolin»#
Запуск утилиты отключения функциональности «Защита параметров конфигурации сервера Pangolin».
Запуск СУБД Pangolin в single-режиме.
Проверка, включен ли параметр
is_tde_on:удаление файла конфигурации
/etc/pangolin-security-utilities/enc_connection_settings.cfg, если параметрis_tde_onвыключен;завершение работы, если параметр
is_tde_onвключен.