Skip to content

TLS и безопасность

Обязательно для внешнего доступа

SASL/PLAIN и Basic передают пароль в открытом виде — наружу только поверх TLS.

Варианты TLS

Рекомендуется: обратный прокси (Caddy/Nginx) с TLS-терминацией перед 8080 (веб-консоль) и, при необходимости, перед 9092/50051. Caddy выпускает сертификаты Let's Encrypt автоматически.

Нативный TLS брокера — на gRPC- и Kafka-портах, включая mTLS (проверка клиентских сертификатов). Пути к сертификату/ключу задаются секцией TLS в serve.toml; в docker-варианте сертификаты монтируются в контейнер. Клиенты:

bash
# roxactl по TLS:
roxactl --endpoint https://SERVER:50051 --tls-ca ca.pem topic list

# kcat по TLS + SASL:
kcat -b SERVER:9092 -X security.protocol=SASL_SSL -X ssl.ca.location=ca.pem \
     -X sasl.mechanism=PLAIN -X sasl.username=app -X sasl.password=<pass> -L

Аутентификация

СлойМеханизм
gRPC data-plane (roxactl, SDK)Basic-учётные данные из [[auth.users]]
Kafka wireSASL/PLAIN (те же пользователи)
Веб-консольлогин/пароль из admin.toml; argon2-хэши, CSPRNG-сессии TTL 24 ч

Роли data-plane: admin (все операции) и viewer (только чтение). Без секции [[auth.users]] доступ открытый — допустимо только для локальной разработки.

Расширенное управление доступом (RBAC-пользователи веб-консоли, лимит мест из лицензии) — в редакциях с лицензией, см. Лицензирование.

Чеклист прода

  1. Сменены все пароли CHANGE_ME… (serve.toml, admin.toml, .env).
  2. [[auth.users]] включены; открытого доступа нет.
  3. TLS на всех портах, доступных снаружи.
  4. Порт MinIO (9000) не опубликован наружу.
  5. Секреты совпадают в трёх местах (см. прод-стек).