Изменения в функциональности администраторов безопасности#
Общая информация#
Среди возможностей в рамках функциональности, предназначенной для администраторов безопасности, можно выделить:
Поддержку встроенной групповой роли администраторов безопасности, которая расширяет возможности по управлению составом пользователей БД-администраторов безопасности и вводит единый признак отношения пользователя к администраторам безопасности;
Наличие встроенного виртуального правила подключения для пользователей-администраторов безопасности, которое позволяет им подключаться к БД даже при отсутствии прописанного в
pg_hba.confправила подключения для такого пользователя;Реализованы возможности задать администраторов безопасности списком при инициализации защиты пользователей и установить им пароли не только вводом по запросу, но и в виде хеша в параметрах командной строки утилиты
initprotection;Функции API администратора безопасности.
Изменения поведения ранее реализованных функций выключают:
Запрет изменения парольных политик для создаваемой групповой роли администраторов безопасности;
Изменение защиты функций с модификатором SECURITY DEFINER для исключения возможности обхода защиты суперпользователем;
Изменение ограничения используемых методов аутентификации;
Управление шифрованием табличных пространств по умолчанию.
Также внесены изменения в разделении разрешений на некоторые настроечные параметры postgresql в режиме работы с защищенным конфигурированием.
Изменения в работе с настроечными параметрами postgresql#
Полный список настроечных параметров, управляемых администраторами безопасности через KMS в режиме защищенного конфигурирования, находится в таблице документа «Параметры, настраиваемые через KMS».
Ниже будут рассмотрены внесенные изменения в рамках настройки некоторых из них в режиме защищенного конфигурирования.
pg_hba.conf (методы аутентификации и подключения)#
Параметр исключен из хранимых в защищенном хранилище/KMS и управляемых администраторами безопасности.
pg_indent.conf (карты сопоставления пользователей при авторизации)#
Параметр вносится под двойное управление – то есть прописывается одновременно и в KMS, и в локальном файле. При этом совпадение порядка слов не требуется.
Внимание!
В случае если в правилах pg_ident заданы регулярные значения, необходимо убедиться в их полном совпадении.
shared_preload_libraries, jit_provider (подгружаемые PostgreSQL библиотеки)#
Параметры исключены из хранимых в защищенном хранилище/KMS и управляемых администраторами безопасности.
local_preload_libraries, session_preload_libraries (подгружаемые PostgreSQL библиотеки)#
Для данных параметров снято игнорирование при работе в режиме защищенного конфигурирования.
dynamic_library_path (путь к динамически подгружаемым модулям)#
Параметр исключен из хранимых в защищенном хранилище/KMS и управляемых администраторами безопасности.
allowed_servers (список разрешенных к использованию LDAP и RADIUS серверов)#
Управление целиком передано на сторону защищенного хранилища/KMS администраторам безопасности.
ssl (режим работы с SSL)#
Управление целиком передано на сторону защищенного хранилища/KMS администраторам безопасности.
password_encryption (метод хеширования паролей пользователей)#
Управление целиком передано на сторону защищенного хранилища/KMS администраторам безопасности.
Примечание:
Все параметры, управляемые через KMS, доступны для всех пользователей (помимо superuser).
enabled_sec_admin_extra_auth_methods, enabled_extra_auth_methods (список дополнительно разрешенных к использованию методов аутентификации)#
Примечание:
enabled_sec_admin_extra_auth_methodsотвечает за список дополнительно разрешенных к использованию методов аутентификации для ролей администраторов безопасности, тогда как вenabled_extra_auth_methodsпередается список для всех остальных ролей.
Для обоих параметров характерно следующее поведение:
В режиме защищенного конфигурирования управление целиком передано на сторону защищенного хранилища/KMS администраторам безопасности;
При отключенном режиме защищенного конфигурирования настройка выполняется через
postgresql.conf;По умолчанию доступны только методы аутентификации
scram-sha-256,ldap,radius;Во избежание остановки сервера Pangolin при изменении правил аутентификации параметры являются обновляемыми при
reload (SIGHUP)Pangolin.
Значения параметров применяются при аутентификации, т.к. это единственный этап, когда можно фактически определить принадлежность аутентифицируемой роли к администраторам безопасности. При использовании не разрешенного для роли метода аутентификации она будет завершена с сообщением: Authentication method "<метод аутентификации>" isn't allowed for non security admin role "<роль>". Соответствующая запись с аналогичным сообщением помещается в лог аудита как ошибка открытия соединения.
В случае ошибок внутри параметров:
запуск Pangolin прервется с ошибкой;
при перезагрузке конфигурации весь параметр с новым значением будет проигнорирован.
Для разрешения использовать другой метод аутентификации для администраторов безопасности, соответствующий метод должен быть прописан в параметре.
encrypt_new_tablespaces (шифрование новых табличных пространств)#
Параметр применяется при создании нового табличного пространства и доступен для просмотра всем.
Внимание!
Параметр действует только при запуске Pangolin и включенном TDE:
is_tde_on = on/true
Настройка параметра может изменяться без перезапуска Pangolin:
При
secure_config = onуправление целиком передается на сторону защищенного хранилища/KMS администраторам безопасности;При
secure_config = offили при отсутствии настроек для подключения к KMS настройка выполняется черезpostgresql.conf.
В случае, если в качестве значения параметра выбрано значение по умолчанию ddl, новые табличные пространства шифруются только при ручной установке опции is_encrypted = on, по умолчанию же шифрование не применяется.
При выборе значения параметра always, опция is_encryped, передаваемая в команде, игнорируется, так как в этом случае на все таблицы пространства будет применено шифрование.
Изменения в работе утилиты initprotection#
Утилита позволяет создавать более одной учетной записи администраторов безопасности при инициализации механизма защиты. Учетные записи перечисляются в параметре -U через запятую. Хеши паролей учетных записей перечисляются в параметре -P в порядке соответствия логинам. При отсутствии параметра запрашивается пользовательский пароль. Количество хешей паролей, переданных через командную строку, должно соответствовать количеству переданных логинов. Принимаются только хеши паролей в формате scram-sha-256.
Изменения:
Создана групповая роль администраторов безопасности
sec_admin_role. Роль помещается под защиту и может быть выдана только через специальные функции API администраторов безопасности.Создана парольная политика для роли
sec_admin_role, в рамках которой время жизни пароля не ограничено.Сложность пароля для zxcvbn = 3.
Минимальная длина пароля = 25.
Остальные параметры парольных политик берутся из настроек по умолчанию, включая интервал авторазблокировки после блокировки УЗ в ходе неверных попыток ввода пароля.
Определен параметр аудита для роли sec_admin_role:
pgaudit.log = 'ALL'.Происходит создание предустановленной политики
secAdminUser, включающей разрешение переключения на рольsec_admin_role.Реализована выдача роли
sec_admin_roleи новой политикиsecAdminUserсоздаваемым пользователям-администраторам безопасности.Для созданных пользователей-администраторов безопасности устанавливается правило переключения на роль
sec_admin_roleпри авторизации (ALTER ROLE .. SET ROLE sec_admin_role).Ранее реализованная выдача политик на функции API администратора безопасности и каталоги безопасности непосредственно пользователю-администратору безопасности исключены.
Пароль создаваемого при инициализации механизма защиты пользователя заносится в
pg_authidстрого в видеscram-sha-256хеша.
Введение групповой роли sec_admin_role#
В рамках роли задаются следующие характеристики:
права на вызов функций API администратора безопасности;
права на выборку из каталогов безопасности;
права на вызов встроенной функции
current_setting;наличие политик, выдающих разрешения, необходимые администраторам безопасности (аналогично ранее выдаваемым пользователю-администратору безопасности), кроме разрешений на
insert,update,deleteсистемных каталогов механизма защиты;
Роль по умолчанию помещается под защиту.
Примечание:
Для определения групповой роли используется опция
NOLOGIN.
Защита привилегированных пользователей#
Изменения в возможностях пользовательского поведения при включенной защите от привилегированных пользователей:
Предустановленные функции, роли, политики и каталоги безопасности не могут быть изменены каким-либо образом с применением функций API.
Выполнение функции с модификатором
SECURITY DEFINERзапрещается текущему пользователю при нахождении definer-функции под защитой и отсутствии у текущего пользователя права на переключение под роль definer'а.Для ролей, находящихся под защитой, накладывается запрет на изменение действующих для них парольных политик.
При включенной защите от привилегированных пользователей, роль, находящаяся под защитой, теперь может выполнять изменения самой себя, например, изменение пароля (без необходимости наличия политики, разрешающей такие изменения).
Поддержка виртуальных правил подключения#
При включенной защите от привилегированных пользователей администраторы безопасности имеют право на подключение к любой БД. Кроме этого, для таких пользователей не требуется наличия в pg_hba.conf правила подключения для обладателей роли sec_admin_role. Такое правило неявно проверяется при любой попытке подключения пользователя, который не соответствует ни одному явно заданному в pg_hba.conf правилу подключения. Это требуется для исключения возможности блокировки подключения к БД администраторов безопасности администраторами БД.
Правило по умолчанию выглядит как:
подключение по
hostssl, еслиssl=on, илиhost, еслиssl=off;подключение к любой БД;
подключение пользователей с групповой ролью
sec_admin_role;подключение с любого адреса.
Примечание:
Метод аутентификации берется из параметра
sec_admin_default_auth, включая параметры метода аутентификации, по умолчанию:scram-sha-256, еслиpassword_encryption=scram-sha-256, иmd5, еслиpassword_encryption=md5.
При загрузке значения параметра производится проверка:
допустимости метода аутентификации по параметру
enabled_sec_admin_extra_auth_methods;допустимости серверов аутентификации (при наличии в опциях метода аутентификации) по параметру
allowed_servers.
Внимание!
Методы аутентификации и их опции передаются в строгом соответствии с используемыми в
pg_hba.conf.