Возможность полного отключения СЗИ
Функциональность позволяет администраторам безопасности полностью отключить три компонента безопасности базы данных: «Прозрачное защитное преобразование данных (TDE)», «Защита данных от привилегированных пользователей» и «Защита параметров конфигурации сервера Pangolin».
Отключение защиты данных от привилегированного пользователя может выполняться в двух режимах: pause
(временное отключение) и full
(полное удаление следов). В обоих случаях требуется аутентификация и авторизация администратора безопасности. Право использования соответствующих утилит предоставляется исключительно пользователю kmadmin_pg
.
Ограничения
Ограничения, обеспечивающие управление и безопасность процесса отключения защиты, и минимизирующие риски ошибок и несанкционированного доступа:
- Перед выполнением каждой утилиты необходимо остановить СУБД Pangolin на мастере и на реплике.
- Утилиты могут использовать только пользователи
kmadmin_pg
. - Утилита отключения защиты данных от привилегированного пользователя требует аутентификации и авторизации.
- После отключения защиты данных от привилегированного пользователя необходимо запустить кластер для синхронизации данных.
- Для переноса табличных пространств при отключении TDE требуется достаточный объем свободного места — не менее 110% от размера засекреченных данных.
- Перед использованием
tde_disabler
необходимо:
- выполнить команду
CHECKPOINT
на первом узле; - убедиться, что WAL передан на реплику (
SELECT replay_lsn = pg_current_wal_insert_lsn() FROM pg_stat_replication
возвращаетtrue
); - выполнить команду
CHECKPOINT
на втором узле.
- Утилита
tde_disabler
переносит данные с засекреченных табличных пространств на незасекреченные, отключив фоновые процессы, генерирующие данные.
В кластерной конфигурации необходимо соблюдать следующий порядок выполнения утилит:
- Остановка обоих узлов: оба узла кластера должны быть остановлены перед началом выполнения утилит.
- Если включена функциональность «Защита данных от привилегированного пользователя», то в первую очередь выполняется утилита
admin_protection_disabler
на мастере. - После этого выполняется запуск кластера для синхронизации данных.
- Когда данные синхронизированы, кластер останавливается.
- Следующим шагом должна выполняться утилита
tde_disabler
на обоих узлах. Это связано с необходимостью рассекречивания существующих WAL и установки параметраis_tde_on
в локальных файлах конфигурации. - Последним шагом выполняется утилита
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
: режим отключения с полным удалением всех данных функциональности «Защита данных от привилегированного пользователя»: списки защищенных объектов, политики, роли администратора безопасности.
Алгоритм отключения функциональности «Защита данных от привилегированного пользователя»
-
Временная заменена оригинального файл
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()
- при режиме
pause
сохраняются политики и роли; - при режиме
full
удаляются данные из таблицpr_object
,pr_object_attr
,pr_policy
,pr_policy_attr
,pr_rule
,pr_grant
,pr_object_kind
.
- при режиме
-
Остановка кластера и запуск в single-режиме.
-
Восстановление оригинальной версии файла
pg_hba.conf
после успешного завершения процесса отключения защиты. -
Завершение работы утилиты.
-
Результатом работы утилиты является отсутствие настроек связанных с функциональностью «Защита данных от привилегированного пользователя».
Если необходимо включить функциональность «Защита данных от привилегированного пользователя», выполните команду 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. Его использование в кластерной конфигурации может привести к неработоспособности кластера.
- Проверка функциональности защиты: разрешено ли перемещение объектов.
- Перенос данных в ручном или автоматическом режиме.
- Обновление параметра
is_tde_on = off
. - Рассекречивание WAL в single-режиме.
- При успешном отключении функциональности «Прозрачное защитное преобразование данных (TDE)» выводится сообщение
AUDIT: SESSION,1,1,MISC,SET,PARAMETER,is_tde_on,SET is_tde_on = off,<not logged>
.
Отключение функциональности «Защита параметров конфигурации сервера»
Обязательный аргумент в консольном приложении для отключения функциональности «Защита параметров конфигурации сервера» – -D
, --data
(каталог PGDATA
).
Необязательные аргументы:
--force
: режим работы без подтверждений. Необходим для использования утилиты в скриптах.
Алгоритм отключения функциональности «Защита параметров конфигурации сервера»
-
Запуск утилиты отключения функциональности «Защита параметров конфигурации сервера Pangolin».
-
Запуск СУБД Pangolin в single-режиме.
-
Проверка, включен ли параметр
is_tde_on
:- удаление файла конфигурации
/etc/pangolin-security-utilities/enc_connection_settings.cfg
, если параметрis_tde_on
выключен; - завершение работы, если параметр
is_tde_on
включен.
- удаление файла конфигурации
-
При успешном отключении функциональности «Защита параметров конфигурации сервера» выводится сообщение
AUDIT: SESSION,1,1,MISC,SET,PARAMETER,secure_config,SET secure_config = off,<not logged>
.
Каждое из этих консольных приложений помогает администраторам безопасности управлять безопасностью данных в системе, отключая избыточные или ненужные механизмы защиты.