Аутентификация узлов баз данных

Аутентификация узлов баз данных в кластере 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 Требовать корректный клиентский сертификат для подключения узлов.
Допустимые значения:
  • false — сертификат не требуется (применяется по умолчанию, если параметр не задан);
  • true — для подключения узлов требуется доверенный клиентский сертификат.
default_group SID, присваиваемый всем подключениям с доверенным клиентским сертификатом, если нет явно заданных настроек в секции client_certificate_definitions.
client_certificate_definitions Блок настроек требований к сертификатам узлов баз данных.
member_groups Массив SID, присваиваемых подключениям, сертификаты которых соответствуют требованиям этого блока.
require_same_issuer Требовать совпадение поля "Issuer" (наименование центра регистрации) для клиентского (узел базы данных) и серверного (узел хранения) сертификатов.
Допустимые значения:
  • true — совпадение требуется (применяется по умолчанию, если параметр не задан);
  • false — совпадение не требуется (клиентский и серверный сертификаты могут быть выпущены разными центрами регистрации).
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"]
Предыдущая
Следующая