4.2.1.3.1. Политики настроек
Политики настроек позволяют:
Централизовать управление настройками работы нескольких экземпляров Сервера и баз данных: общие настройки могут быть собраны в едином хранилище
Автоматически распространять и применять обновления настроек к экземплярам Сервера и базам данных без перезапуска
Сервер кэширует содержимое политики своих настроек и баз данных и отслеживает их обновления.
Политики настроек могут использоваться совместно с локальными настройками.
|
Привязка к политике указывается в файлах определения экземпляра Сервера (server.jsonc) и базы данных (db.jsonc), в параметре config_policy.
|
Содержимое политики настроек
Содержимое каждой отдельной политики - JSON-строка, идентичная содержимому файла локальных настроек config/local.jsonc Сервера и баз данных:
В корне - настройки для Сервера
В разделе 3x - настройки для баз данных формата 3x
В разделе 4x - настройки для баз данных формата 4x
{
//Разделы настроек работы Сервера
"api": { ... },
"async_query": { ... },
...
//Настройки работы баз данных формата '3x'
"3x": { ... },
//Настройки работы баз данных формата '4x'
"4x": { ... }
}
|
Благодаря такому устройству, для Сервера и баз данных может использоваться одна или раздельные политики в различных комбинациях.
Кэширование политики настроек в файле config/policy.jsonc
Кэширование содержимого политики настроек Сервера и баз данных выполняется единообразно: при получении содержимого политики она сохраняется локально в файле в файле config/policy.jsonc в папке конфигурации Сервера или базы данных.
Вычисление эффективных настроек при использовании политик
Если используются политики, то вычисление эффективных значений настроек выполняется при их загрузке (в ходе запуска или при перезагрузке в процессе работы) выполняется путём сведения содержимого локальных настроек (файл config/local.jsonc) и политики настроек (кэш содержимого в файле config/policy.jsonc). Сведение осуществляется следующим образом:
Изначально параметрам присваиваются значения по умолчанию (приведены в шаблонных файлах конфигураций)
Если существует файл кэша политики настроек config/policy.jsonc, то загружается его содержимое. Значения параметров, указанных в файле, переопределяют ранее присвоенные значения.
Если существует файл локальных настроек config/local.jsonc, то загружается его содержимое. Значения параметров, указанных в файле, переопределяют ранее присвоенные значения.
Содержимое файла локальных настроек имеет приоритет над содержимым политики настроек.
|
Файл кэша политики config/policy.jsonc в конфигурации Сервера или базы данных может отсутствовать:
если политика не используется;
содержимое политики ещё не было получено, либо он был удалён вручную.
|
Полученные таким образом эффективные значения настроек применяются к Серверу или базе данных.
Хранение политики настроек
Для хранения политики настроек в конфигурации Astra.Security (LDAP-хранилище) должно быть определено следующее (названия приложения и элемента безопасности условны):
Пользователь DefaultUser, от имени которого Сервер будет осуществлять запрос содержимого политики
Приложение App
Строковый элемент безопасности Token
Право для пользователя DefaultUser на элемент безопасности App/Token
Содержимое политики сохраняется в строке разрешения с индексом 0.
|
Для каждой отдельной политики должен быть определён свой элемент безопасности. При этом политика может объединять настройки и Сервера, и баз данных.
Применение обновлений политики настроек
В случае использования политик настроек Сервер поддерживает подключение к Astra.Security.Agent и подписку на элементы безопасности, указанные в привязках к политикам в файлах определения экземпляра Сервера и баз данных.
После успешного установления соединения с Astra.Security.Agent и подписки на элемент безопасности, Сервер получает содержимое политики настроек и кэширует его. Далее в случае получения обновлений содержимого (по уведомлениям от Агента Astra.Security) Сервер обновляет содержимое кэша. В фоновой процедуре выполнения периодически (раз в 2 секунды) Сервер проверяет наличие обновлений кэша.
Для каждого элемента безопасности, содержимое которого изменилось с момента предыдущей проверки, Сервер выполняет следующие действия:
Для каждой базы данных, привязанной к политике, соответствующей элементу безопасности, Сервер выполняет следующие действия:
Сохраняет содержимое в файле кэша политики настроек config/policy.json
Вызывает процедуру применения обновления настроек
Если это политика, к которой привязан Сервер, то аналогичные действия он применяет по отношению к себе
Сервер выводит сообщения в журнал о получении обновлений политик и их применении, а также ошибки в случае их возникновения.
Не следует локально изменять содержимое файла config/policy.jsonc, т.к. при перезапуске или получении обновления политики в ходе работы содержимое будет повторно сохранено в файл, что приведёт к потере модификаций. Для внесения локальных изменений предназначен файл config/local.jsonc.
|
Перезагрузка настроек в процессе работы
Возможна перезагрузка настроек Сервера и баз данных в процессе работы без перезапуска Сервера. Перезагрузка может быть инициирована:
Автоматически при получении обновления политики
Вручную, посредством вызова соответствущей команды
