Аутентификация узлов баз данных
Аутентификация узлов баз данных в кластере YDB обеспечивает присвоение служебным подключениям между узлами кластера корректных идентификаторов защиты, или SID. Процесс аутентификации узлов баз данных относится к подключениям, использующим протокол gRPC и обеспечивающим выполнение функций регистрации узлов в кластере, а также доступа к конфигурационной информации. Присвоенные подключениям SID учитываются при проверке правил авторизации, действующих в отношении служебных gRPC-вызовов.
Настройки аутентификации узлов баз данных указываются в составе статической конфигурации кластера.
client_certificate_authorization — настройки аутентификации узлов
Этот раздел конфигурации управляет режимом аутентификации при подключении узлов баз данных и определяет требования к заполнению полей "Subject" и "Subject Alternative Name" сертификатов узлов, а также список присваиваемых идентификаторов защиты SID.
Поле "Subject" сертификата узла состоит из нескольких компонентов (например, O
— организация, OU
— подразделение в составе организации, C
— страна, CN
— имя собственное субъекта). Проверки могут быть настроены на соответствие одного или нескольких компонентов поля ожидаемым значениям.
Поле "Subject Alternative Name" сертификата узла представляет собой список сетевых имён или IP-адресов узлов. Проверка может быть настроена на соответствие сетевых имён в сертификате ожидаемым значениям.
Синтаксис
client_certificate_authorization:
request_client_certificate: Bool
default_group: <SID по умолчанию>
client_certificate_definitions:
- member_groups: <массив SID>
require_same_issuer: Bool
subject_dns:
- suffixes: <массив разрешенных суффиксов>
values: <массив допустимых значений>
subject_terms:
- short_name: <имя компонента Subject Name>
suffixes: <массив разрешенных суффиксов>
values: <массив допустимых значений>
- member_groups: <массив SID>
...
Ключ | Описание |
---|---|
request_client_certificate |
Требовать корректный клиентский сертификат для подключения узлов. Допустимые значения:
|
default_group |
SID, присваиваемый всем подключениям с доверенным клиентским сертификатом, если нет явно заданных настроек в секции client_certificate_definitions . |
client_certificate_definitions |
Блок настроек требований к сертификатам узлов баз данных. |
member_groups |
Массив SID, присваиваемых подключениям, сертификаты которых соответствуют требованиям этого блока. |
require_same_issuer |
Требовать совпадение поля "Issuer" (наименование центра регистрации) для клиентского (узел базы данных) и серверного (узел хранения) сертификатов. Допустимые значения:
|
subject_dns |
Допустимые значения поля "Subject Alternative Name" в виде массива полных значений (ключ values ) или массива суффиксов значений (ключ suffixes ). Проверка считается успешной при совпадении одного из значений поля с любым полным именем либо при соответствии любому указанному суффиксу. |
subject_terms |
Требования к заполнению компонентов поля "Subject". Указывается имя компонента (ключ short_name ), а также набор полных значений (ключ values ) или набор суффиксов значений (ключ suffixes ). Проверка считается успешной, если для каждого проверяемого компонента поля "Subject" его значение соответствует одному из разрешённых полных значений либо одному из разрешённых суффиксов. |
Примеры
Следующий фрагмент конфигурации включает аутентификацию узлов и требует наличия в поле "Subject" компонента O=YDB
. При успешной аутентификации подключению будет присвоен субъект доступа registerNode@cert
.
client_certificate_authorization:
request_client_certificate: true
client_certificate_definitions:
- member_groups: ["registerNode@cert"]
subject_terms:
- short_name: "O"
values: ["YDB"]
Следующий фрагмент конфигурации включает аутентификацию узлов и требует наличия в поле "Subject" компонентов OU=cluster1
и O=YDB
. Дополнительно проверяется, что поле "Subject Alternative Name" содержит имя хоста, заканчивающееся на суффикс .cluster1.ydb.company.net
. При успешной аутентификации подключению будет присвоен субъект доступа registerNode@cert
.
client_certificate_authorization:
request_client_certificate: true
client_certificate_definitions:
- member_groups: ["registerNode@cert"]
subject_dns:
- suffixes: [".cluster1.ydb.company.net"]
subject_terms:
- short_name: "OU"
values: ["cluster1"]
- short_name: "O"
values: ["YDB"]