Секция конфигурации client_certificate_authorization
Аутентификация узлов баз данных в кластере 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"]