Настройка TLS

YDB поддерживает шифрование данных при передаче по сети, и каждый сетевой протокол может иметь свои настройки TLS. Этот раздел документации предоставляет справочную информацию по настройке TLS в YDB.

Interconnect

Интерконнект акторной системы YDB — это специализированный протокол для обмена данными между узлами YDB.

Пример включения TLS для интерконнекта:

interconnect_config:
   start_tcp: true
   encryption_mode: REQUIRED # или OPTIONAL
   path_to_certificate_file: "/opt/ydb/certs/node.crt"
   path_to_private_key_file: "/opt/ydb/certs/node.key"
   path_to_ca_file: "/opt/ydb/certs/ca.crt"

YDB в роли сервера

gRPC

Основной API YDB основан на gRPC. Он используется для внешнего взаимодействия с клиентскими приложениями, которые работают напрямую с YDB через SDK или CLI.

Пример включения TLS для gRPC API:

grpc_config:
   cert: "/opt/ydb/certs/node.crt"
   key: "/opt/ydb/certs/node.key"
   ca: "/opt/ydb/certs/ca.crt"

Протокол PostgreSQL

YDB открывает отдельный сетевой порт для протокола PostgreSQL. Этот протокол используется для внешнего взаимодействия с клиентскими приложениями, изначально разработанными для работы с PostgreSQL.

Пример включения TLS для протокола PostgreSQL:

local_pg_wire_config:
    ssl_certificate: "/opt/ydb/certs/node.crt"

Протокол Kafka

YDB открывает отдельный сетевой порт для протокола Kafka. Этот протокол используется для внешнего взаимодействия с клиентскими приложениями, изначально разработанными для работы с Apache Kafka.

Пример включения TLS для протокола Kafka с использованием файла, содержащего как сертификат, так и закрытый ключ:

kafka_proxy_config:
    ssl_certificate: "/opt/ydb/certs/node.crt"

Пример включения TLS для протокола Kafka с раздельными файлами сертификата и закрытого ключа:

kafka_proxy_config:
    cert: "/opt/ydb/certs/node.crt"
    key: "/opt/ydb/certs/node.key"

HTTP

YDB открывает отдельный HTTP порт для работы встроенного интерфейса, отображения метрик и других вспомогательных команд.

Пример включения TLS на HTTP-порту, что делает его использования HTTPS:

monitoring_config:
    monitoring_certificate_file: "/opt/ydb/certs/node.crt"

YDB в роли клиента

LDAP

YDB поддерживает LDAP для аутентификации пользователей. Протокол LDAP имеет два варианта включения TLS.

Пример включения TLS для LDAP через расширение протокола StartTls:

auth_config:
  ldap_authentication:
    use_tls:
      enable: true
      ca_cert_file: "/path/to/ca.pem"
      cert_require: DEMAND
  scheme: "ldap"

Пример включения TLS для LDAP через ldaps:

auth_config:
  ldap_authentication:
    use_tls:
      enable: false
      ca_cert_file: "/path/to/ca.pem"
      cert_require: DEMAND
  scheme: "ldaps"

Подробнее этот механизм описан в Конфигурация LDAP аутентификации.

Федеративные запросы

Федеративные запросы позволяют YDB выполнять запросы к различным внешним источникам данных. Использование TLS при выполнении таких запросов контролируется параметром USE_TLS в запросах CREATE EXTERNAL DATA SOURCE. Изменения в серверной конфигурации не требуются.

Трассировка

YDB может отправлять данные трассировки на внешний коллектор через gRPC.

Пример включения TLS для данных трассировки посредством указания протокола grpcs://:

tracing_config:
  backend:
    opentelemetry:
      collector_url: grpcs://example.com:4317
      service_name: ydb

Асинхронная репликация

Асинхронная репликация синхронизирует данные между двумя базами данных YDB, одна из которых выступает в роли клиента для другой. Использование TLS при такой коммуникации контролируется параметром CONNECTION_STRING в запросах CREATE ASYNC REPLICATION. Для TLS-соединений используйте протокол grpcs://. Изменения в серверной конфигурации не требуются.

Предыдущая
Следующая