feat(clickhouse): добавлены роли и межнодовый секрет
- Зачем: - менти должен увидеть разделение доступа без состояния в томах. - Что: - пользователи и роли объявлены файлом с паролями из окружения. - межшардовые запросы передают пользователя через общий секрет. - четыре допущения реализации подтверждены в ADR живыми замерами. - Проверка: - make config-test, make smoke, make check-clickhouse, make check-services.
This commit is contained in:
@@ -132,12 +132,16 @@ Postgres и Grafana. Цена выбора известна: объявленн
|
||||
настройки ClickHouse.
|
||||
- Весь DDL репозитория идёт через `IF NOT EXISTS` (файлы `sql/ddl/`).
|
||||
|
||||
Осталось проверить при исполнении, и это работа тикета реализации: точная
|
||||
форма объявления секрета в описании кластера (готового примера в
|
||||
документации не нашлось); работает ли подстановка из окружения именно для
|
||||
пароля пользователя, и если нет — пароли лягут в файл настройки прямым
|
||||
текстом, а README назовёт это вслух; применяются ли на соседнем шарде права
|
||||
`bi`, а не общей учётки (вывод из колонки `user`, живьём не измерен —
|
||||
проверка требует создать пользователя); принимает ли ClickHouse права,
|
||||
выданные на ещё не созданную базу — на момент решения `dds` и `dm` не
|
||||
существуют.
|
||||
Проверено на живом стенде 13 августа 2026 года, ClickHouse 26.3.17.56.
|
||||
|
||||
- Секрет кластера принимается внутри `remote_servers` в виде
|
||||
`<secret from_env="CLICKHOUSE_CLUSTER_SECRET"/>`. Запрос от `etl` через обе
|
||||
ноды выполнился на каждой под пользователем `etl`.
|
||||
- `from_env` работает у элемента `password`: `etl`, `bi` и `analyst` вошли с
|
||||
паролями из окружения и получили свои роли.
|
||||
- При запросе от `bi` через Distributed на второй ноде `system.query_log`
|
||||
показал `user = bi` и `initial_user = bi`. Значит, на соседнем шарде
|
||||
применяются права инициатора, а не общей учётной записи.
|
||||
- Права на отсутствующие базы `dds` и `dm` приняты. До создания баз они видны
|
||||
в `SHOW GRANTS FOR etl_writer`; временная таблица в `dm` подтвердила право
|
||||
`bi` на чтение после появления базы.
|
||||
|
||||
Reference in New Issue
Block a user