feat(clickhouse): добавлены роли и межнодовый секрет
- Зачем: - менти должен увидеть разделение доступа без состояния в томах. - Что: - пользователи и роли объявлены файлом с паролями из окружения. - межшардовые запросы передают пользователя через общий секрет. - четыре допущения реализации подтверждены в ADR живыми замерами. - Проверка: - make config-test, make smoke, make check-clickhouse, make check-services.
This commit is contained in:
@@ -5,6 +5,11 @@
|
||||
-->
|
||||
<remote_servers>
|
||||
<clickstream_cluster>
|
||||
<!--
|
||||
ClickHouse 26.3 передаёт с секретом пользователя-инициатора на
|
||||
соседний шард; секрет сверяется на обеих нодах.
|
||||
-->
|
||||
<secret from_env="CLICKHOUSE_CLUSTER_SECRET"/>
|
||||
<shard>
|
||||
<internal_replication>true</internal_replication>
|
||||
<replica>
|
||||
@@ -33,4 +38,3 @@
|
||||
<path>/clickhouse/task_queue/ddl</path>
|
||||
</distributed_ddl>
|
||||
</clickhouse>
|
||||
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
<clickhouse>
|
||||
<!--
|
||||
Пользователи и роли объявлены файлом: повторный подъём стенда не хранит
|
||||
доступ в томах. Пароли приходят из .env через Compose.
|
||||
-->
|
||||
<roles>
|
||||
<etl_writer>
|
||||
<grants>
|
||||
<query>GRANT SELECT, INSERT, ALTER, CREATE TABLE, CREATE VIEW, DROP TABLE, DROP VIEW ON default.*</query>
|
||||
<query>GRANT SELECT, INSERT, ALTER, CREATE TABLE, CREATE VIEW, DROP TABLE, DROP VIEW, CREATE DATABASE ON stg.*</query>
|
||||
<query>GRANT SELECT, INSERT, ALTER, CREATE TABLE, CREATE VIEW, DROP TABLE, DROP VIEW, CREATE DATABASE ON ods.*</query>
|
||||
<query>GRANT SELECT, INSERT, ALTER, CREATE TABLE, CREATE VIEW, DROP TABLE, DROP VIEW, CREATE DATABASE ON dds.*</query>
|
||||
<query>GRANT SELECT, INSERT, ALTER, CREATE TABLE, CREATE VIEW, DROP TABLE, DROP VIEW, CREATE DATABASE ON dm.*</query>
|
||||
<query>GRANT SELECT ON system.*</query>
|
||||
<query>GRANT CLUSTER ON *.*</query>
|
||||
<query>GRANT REMOTE ON *.*</query>
|
||||
</grants>
|
||||
</etl_writer>
|
||||
<bi_reader>
|
||||
<grants>
|
||||
<query>GRANT SELECT ON dds.*</query>
|
||||
<query>GRANT SELECT ON dm.*</query>
|
||||
<query>GRANT SELECT ON system.settings</query>
|
||||
</grants>
|
||||
</bi_reader>
|
||||
<analyst_reader>
|
||||
<grants>
|
||||
<query>GRANT SELECT ON stg.*</query>
|
||||
<query>GRANT SELECT ON ods.*</query>
|
||||
<query>GRANT SELECT ON dds.*</query>
|
||||
<query>GRANT SELECT ON dm.*</query>
|
||||
<query>GRANT SELECT ON system.settings</query>
|
||||
</grants>
|
||||
</analyst_reader>
|
||||
</roles>
|
||||
|
||||
<users>
|
||||
<etl>
|
||||
<password from_env="CLICKHOUSE_ETL_PASSWORD"/>
|
||||
<profile>default</profile>
|
||||
<quota>default</quota>
|
||||
<grants>
|
||||
<query>GRANT etl_writer</query>
|
||||
</grants>
|
||||
</etl>
|
||||
<bi>
|
||||
<password from_env="CLICKHOUSE_BI_PASSWORD"/>
|
||||
<profile>default</profile>
|
||||
<quota>default</quota>
|
||||
<grants>
|
||||
<query>GRANT bi_reader</query>
|
||||
</grants>
|
||||
</bi>
|
||||
<analyst>
|
||||
<password from_env="CLICKHOUSE_ANALYST_PASSWORD"/>
|
||||
<profile>default</profile>
|
||||
<quota>default</quota>
|
||||
<grants>
|
||||
<query>GRANT analyst_reader</query>
|
||||
</grants>
|
||||
</analyst>
|
||||
</users>
|
||||
</clickhouse>
|
||||
Reference in New Issue
Block a user