security_config
В разделе security_config файла конфигурации YDB задаются режимы аутентификации, первичная конфигурация локальных пользователей и групп и их права.
security_config:
# настройка режима аутентификации
enforce_user_token_requirement: false
enforce_user_token_check_requirement: false
default_user_sids: <SID для анонимных запросов>
all_authenticated_users: <имя группы всех аутентифицированных пользователей>
all_users_group: <имя группы всех пользователей>
# первичные настройки безопасности
default_users: <список пользователей по умолчанию>
default_groups: <список групп по умолчанию>
default_access: <список прав по умолчанию на корне кластера>
# настройки привилегий
viewer_allowed_sids: <список SID'ов с правами просмотра состояния кластера>
monitoring_allowed_sids: <список SID'ов с правами просмотра и изменения состояния кластера>
administration_allowed_sids: <список SID'ов с доступом администратора кластера>
register_dynamic_node_allowed_sids: <список SID'ов с правами регистрации узлов баз данных в кластере>
# настройки встроенной настройки безопасности
disable_builtin_security: false
disable_builtin_groups: false
disable_builtin_access: false
Настройки режима аутентификации
|
Параметр |
Описание |
|
|
Режим обязательной аутентификации. Возможные значения:
Взамен отсутствующего в запросах токена используется значение параметра Значение по умолчанию: |
|
|
Запрещает игнорировать ошибки аутентификации в режиме Значение по умолчанию: |
|
|
Список SID'ов для использования в процессе аутентификации в случае, когда входящий запрос не сопровождается явным аутентификационным токеном.
Непустой Значение по умолчанию: пустой список. |
|
|
Имя виртуальной группы, в которой состоят все аутентифицированные пользователи. Виртуальную группу не нужно явно создавать, она ведётся системой автоматически. Виртуальную группу нельзя удалить, нельзя получить или изменить список её членов. Совет Информацию о правах доступа к схемным объектам можно получить из системных представлений YDB, см. {#T}. Значение по умолчанию: |
|
|
Имя группы, в которую должны добавляться все внутренние пользователи. Если
Значение по умолчанию: пустая строка. |
Следующая диаграмма показывает как взаимодействуют параметры настройки режима аутентификации:
Первичные настройки безопасности
Параметры default_users, default_groups, default_access влияют на настройку кластера, осуществляемую при первом старте YDB. При последующих запусках первичная настройка не выполняется, эти параметры игнорируются.
См. также раздел по встроенной настройке безопасности и влияющие на неё настройки уровня domains_config.
|
Параметр |
Описание |
|
|
Какие пользователи должны быть созданы на кластере при первом запуске. Список пар логин-пароль. Первый пользователь становится суперпользователем. Примечание Пароли задаются в открытом виде и оставлять их действующими на долгое время небезопасно. Поэтому после первого запуска кластера и его настройки рекомендуется пароли стартовым пользователям поменять средствами YDB (например, Пример:
Ошибки в списке (повторение логинов) фиксируются в логе, но не влияют на запуск кластера. |
|
|
Какие группы должны быть созданы на кластере при первом запуске. Список групп и их членов. Важно Эти группы создаются для всего кластера YDB. Пример:
Порядок перечисления групп важен: группы создаются в порядке перечисления, и указанные члены группы к моменту создания группы должны существовать, иначе они не будут добавлены в группу. Ошибки добавления членов групп фиксируются в логе, но не влияют на запуск кластера. |
|
|
Какие права должны быть выданы на корне кластера. Список разрешений в формате краткой записи управления доступом. Пример:
|
Ошибки в строках прав доступа фиксируются в логе, но не влияют на запуск кластера. Право доступа с ошибкой не будет добавлено.
Настройки административных и других привилегий
Управление доступом в YDB реализуется двумя механизмами:
- списками прав на схемных объектах;
- уровнями доступа, определяющими дополнительные возможности или ограничения.
Оба механизма применяются одновременно: для конкретного субъекта действие оказывается доступно, если оба механизма его разрешают, и не доступно, если хотя бы один не разрешает.
Уровень доступа субъекта определяется списками разрешений, заданными в конфигурации кластера, и влияет на дополнительные возможности субъекта при работе со схемными объектами, а также на возможности субъекта в контекстах, не связанных со схемными объектами.
|
Параметр |
Описание |
|
|
Список SID'ов с доступом уровня наблюдателя. Даёт возможность просмотра состояния системы, закрытого от публичного доступа (это большая часть страниц Embedded UI (YDB Monitoring)), без возможности делать изменения. |
|
|
Список SID'ов с доступом уровня оператора. Даёт дополнительные возможности просмотра и выполнения действий, меняющих состояние системы. Например, выполнение бекапа, восстановления базы или выполнение YQL-запросов через Embedded UI. |
|
|
Список SID'ов с доступом уровня администратора. Даёт право на выполнение административных действий с базами или кластером. |
|
|
Список SID'ов , для которых разрешена регистрация узлов баз данных. По техническим причинам в этом списке также должен присутствовать субъект доступа |
Важно
По-умолчанию, все списки пустые.
Пустой список разрешает доступ любому пользователю (включая анонимного пользователя).
Все три пустых списка дают возможности администратора любому пользователю системы.
Для защищённого развёртывания YDB важно заранее определить модель прав и прописать в списках соответствующие группы.
В списках могут перечисляться индивидуальные SID'ы пользователей или SID'ы групп пользователей. Принадлежность пользователя к списку определяется по прямому вхождению или по вхождению в список любой его группы (рекурсивно).
Рекомендуется включать в списки *_allowed_sids группы и отдельные сервисные аккаунты, тогда наделение индивидуальных пользователей соответствующими возможностями не будет требовать изменения общей конфигурации кластера.
Примечание
Списки разрешений — это слои дополнительных разрешений:
- Субъект, не состоящий ни в одном списке разрешений, имеет возможность просмотра публично доступной информации в системе (например, может видеть список баз на кластере или список узлов кластера).
- Списки
viewer_allowed_sids,monitoring_allowed_sids,administration_allowed_sidsпоследовательно наращивают возможности субъекта. Максимальные возможности требуют включения во все три списка. - Присутствие в списке
monitoring_allowed_sidsилиadministration_allowed_sidsбез присутствия воviewer_allowed_sidsне имеет смысла.
Например:
- оператор должен состоять (прямо или через группы) во
viewer_allowed_sidsи вmonitoring_allowed_sids; - полноценный администратор должен состоять во
viewer_allowed_sids,monitoring_allowed_sidsи вadministration_allowed_sids.
Настройки встроенной настройки безопасности
Флаги disable_builtin_security, disable_builtin_groups, disable_builtin_access влияют на настройку кластера, осуществляемую только при первом старте кластера YDB.
|
Параметр |
Описание |
|
|
Не выполнять встроенную настройку безопасности. Эфемерный флаг, не попадает в конфигурацию, сохраняемую в кластере. Значение по умолчанию: |
|
|
Отказаться от создания встроенных групп, даже если явные группы по умолчанию ( Значение по умолчанию: |
|
|
Отказаться от добавления прав на корне кластера для встроенных групп, даже если явные права по умолчанию ( Значение по умолчанию: |