Настройка 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://
. Изменения в серверной конфигурации не требуются.