Доступ к ClickHouse: пользователи, роли и межнодовое доверие #66

Closed
opened 2026-08-07 19:32:40 +03:00 by ddmitry · 1 comment
Owner

Вопрос

Какую модель доступа к ClickHouse должен показывать учебный стенд до того, как поверх текущего кластера появятся ETL, витрины и новые проверки?

Нужно развести четыре контура: подключение человека через DBeaver, доступ Airflow, доступ Superset и доверие между нодами при Distributed, remote() и ON CLUSTER. Отдельно решить судьбу пользователя default: пароль, ограничение по сети или отключение сетевого входа.

Гриллинг должен выбрать границу боевого реализма: что действительно учит разделению доступа, а что лишь добавляет управление секретами, TLS и эксплуатационную тяжесть без достаточной учебной отдачи.

Сначала прочитать

  • AGENTS.md — цена сложности и учебная ценность.
  • README.md, раздел «Состав и доступ».
  • compose.yaml: x-clickhouse-common, clickhouse-init, подключения Airflow и Superset.
  • infra/clickhouse/config.d/cluster.xml.
  • docs/adr/0001-stand-services.md.

Выход

Резолюция должна назвать пользователей и роли, способ межнодового доверия, место хранения учебных секретов, поведение make up на существующих томах и явно отложенные меры боевой защиты. Итог перенести в минимальный подходящий документ репозитория; реализация — отдельным тикетом.

## Вопрос Какую модель доступа к ClickHouse должен показывать учебный стенд до того, как поверх текущего кластера появятся ETL, витрины и новые проверки? Нужно развести четыре контура: подключение человека через DBeaver, доступ Airflow, доступ Superset и доверие между нодами при `Distributed`, `remote()` и `ON CLUSTER`. Отдельно решить судьбу пользователя `default`: пароль, ограничение по сети или отключение сетевого входа. Гриллинг должен выбрать границу боевого реализма: что действительно учит разделению доступа, а что лишь добавляет управление секретами, TLS и эксплуатационную тяжесть без достаточной учебной отдачи. ## Сначала прочитать - `AGENTS.md` — цена сложности и учебная ценность. - `README.md`, раздел «Состав и доступ». - `compose.yaml`: `x-clickhouse-common`, `clickhouse-init`, подключения Airflow и Superset. - `infra/clickhouse/config.d/cluster.xml`. - `docs/adr/0001-stand-services.md`. ## Выход Резолюция должна назвать пользователей и роли, способ межнодового доверия, место хранения учебных секретов, поведение `make up` на существующих томах и явно отложенные меры боевой защиты. Итог перенести в минимальный подходящий документ репозитория; реализация — отдельным тикетом.
ddmitry added the wayfinder:grilling label 2026-08-07 19:32:40 +03:00
ddmitry added a new dependency 2026-08-07 20:20:58 +03:00
Author
Owner

Развилка пройдена 9 августа 2026 года. Итог перенесён в
ADR 0007
(коммит a3d852c) — он источник истины по решению, доводам и отвергнутым
вариантам. Реализация — #78.

Коротко, чтобы читателю тикета не ходить за файлом:

  • Пользователи и роли. Четыре пользователя и три роли: default — с
    паролем, только служебный; etl (etl_writer) — Airflow и DDL; bi
    (bi_reader) — Superset, витрины DM и слой DDS; analyst
    (analyst_reader) — человек, все слои.
  • Где живут. Объявлены файлами настройки сервера, не запросами SQL:
    состояния в томах нет, повторный make up доступ не сдвигает, источник
    истины — файл в git. Плата — объявленных файлом пользователей нельзя менять
    запросами; принята как упрощение.
  • Межнодовое доверие. Общий секрет кластера, а не учётные данные по
    репликам. Довод не про шифрование: у каждой реплики в описании кластера своя
    учётка, и без секрета вся межшардовая работа идёт от неё, кто бы ни спросил —
    права на соседнем шарде оказываются не те, что у спросившего.
  • Секреты. Пароли в .env, в файл настройки попадают подстановкой по
    имени переменной; конвенция значений — слово-число-слово, потому что пароль
    analyst человек набирает руками.
  • Отложено явно. TLS и защищённые межсерверные соединения, настоящее
    хранилище секретов, внешние поставщики учётных записей, квоты и профили под
    пользователя, политики строк, аудит запросов.

Отдельного справочника по доступу заводить не стали: своего содержания сверх
ADR и раздела README «Состав и доступ» у него сегодня нет. Дом ему
понадобится на этапе 4, когда появятся dds, dm и словари.

Четыре утверждения в ADR помечены непроверенными и закрываются на стенде в
#78: форма объявления секрета, подстановка пароля из окружения, права на ещё
не созданную базу и то самое подменённое право на соседнем шарде.

**Развилка пройдена 9 августа 2026 года.** Итог перенесён в [ADR 0007](https://git.dementev.space/ddmitry/clickstream-data-platform/src/branch/main/docs/adr/0007-clickhouse-access.md) (коммит `a3d852c`) — он источник истины по решению, доводам и отвергнутым вариантам. Реализация — #78. Коротко, чтобы читателю тикета не ходить за файлом: - **Пользователи и роли.** Четыре пользователя и три роли: `default` — с паролем, только служебный; `etl` (`etl_writer`) — Airflow и DDL; `bi` (`bi_reader`) — Superset, витрины DM и слой DDS; `analyst` (`analyst_reader`) — человек, все слои. - **Где живут.** Объявлены файлами настройки сервера, не запросами SQL: состояния в томах нет, повторный `make up` доступ не сдвигает, источник истины — файл в git. Плата — объявленных файлом пользователей нельзя менять запросами; принята как упрощение. - **Межнодовое доверие.** Общий секрет кластера, а не учётные данные по репликам. Довод не про шифрование: у каждой реплики в описании кластера своя учётка, и без секрета вся межшардовая работа идёт от неё, кто бы ни спросил — права на соседнем шарде оказываются не те, что у спросившего. - **Секреты.** Пароли в `.env`, в файл настройки попадают подстановкой по имени переменной; конвенция значений — слово-число-слово, потому что пароль `analyst` человек набирает руками. - **Отложено явно.** TLS и защищённые межсерверные соединения, настоящее хранилище секретов, внешние поставщики учётных записей, квоты и профили под пользователя, политики строк, аудит запросов. Отдельного справочника по доступу заводить не стали: своего содержания сверх ADR и раздела README «Состав и доступ» у него сегодня нет. Дом ему понадобится на этапе 4, когда появятся `dds`, `dm` и словари. Четыре утверждения в ADR помечены непроверенными и закрываются на стенде в #78: форма объявления секрета, подстановка пароля из окружения, права на ещё не созданную базу и то самое подменённое право на соседнем шарде.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Blocks
#7 Этап 5: Airflow — etl_pipeline
ddmitry/clickstream-data-platform
Reference: ddmitry/clickstream-data-platform#66