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 wire | SASL/PLAIN (те же пользователи) |
| Веб-консоль | логин/пароль из admin.toml; argon2-хэши, CSPRNG-сессии TTL 24 ч |
Роли data-plane: admin (все операции) и viewer (только чтение). Без секции [[auth.users]] доступ открытый — допустимо только для локальной разработки.
Расширенное управление доступом (RBAC-пользователи веб-консоли, лимит мест из лицензии) — в редакциях с лицензией, см. Лицензирование.
Чеклист прода
- Сменены все пароли
CHANGE_ME…(serve.toml, admin.toml, .env). [[auth.users]]включены; открытого доступа нет.- TLS на всех портах, доступных снаружи.
- Порт MinIO (9000) не опубликован наружу.
- Секреты совпадают в трёх местах (см. прод-стек).