Обзор
Возможность создавать и управлять кластером Managed ClickHouse регулируется IAM-ролями. Однако внутри кластера доступ к данным и возможность выполнять операции определяет RBAC (Role-Based Access Control) — модель управления правами на основе ролей.
Основные компоненты модели RBAC: пользователи, привилегии, роли и профили настроек.
Пользователь
Пользователь — внутренняя учетная запись ClickHouse для аутентификации в кластере. С каждым кластером автоматически создается его первый пользователь — администратор.
Для работы с данными пользователю нужны права, которые выдаются ему в виде привилегий напрямую или через роли. Параметры сессии пользователя задаются профилем настроек, который назначается ему напрямую или через роль.
Привилегии и роли
Привилегия — разрешение на выполнение действий внутри кластера. Список всех возможных привилегий доступен в официальной документации ClickHouse.
Привилегии могут выдаваться пользователю напрямую по одной или готовым набором. Такой набор называется ролью. Одному пользователю может быть назначено несколько ролей, тогда все привилегии из всех назначенных ролей суммируются.
Между ролями можно настраивать наследование. Тогда роль-наследник всегда будет использовать привилегии роли-источника.
Управлять пользователями и ролями позволяет привилегия ACCESS MANAGEMENT. Этой привилегией обладает администратор кластера или пользователь, которому администратор ее выдал. Например, ACCESS MANAGEMENT позволяет выполнять такие команды:
CREATE USER,DROP USER— создание и удаление пользователей;CREATE ROLE,DROP ROLE— создание и удаление ролей;GRANT,REVOKE— выдача и отзыв привилегий;SHOW USERS,SHOW ROLES,SHOW GRANTS— просмотр списков пользователей, ролей и выданных привилегий.
Для управления базами данных и таблицами используются привилегии на объекты. Например, пользователю или роли можно выдать такие привилегии:
CREATE— создание базы данных или таблицы;SELECT— чтение данных;INSERT— вставка данных;ALTER— изменение структуры таблицы;DROP— удаление таблицы или базы данных;ALL— все привилегии на указанный объект.
При выдаче привилегий объекты задаются в формате:
*.*— все базы и таблицы;<имя базы данных>.*— все таблицы в базе;<имя базы данных>.<имя таблицы>— конкретная таблица.
Профиль настроек
Профиль настроек — набор ограничений на запросы пользователя, позволяющий защитить кластер от перегрузки и обеспечить стабильность работы. Эти ограничения задаются настройками ClickHouse. Примеры настроек:
max_memory_usage— максимальный объем оперативной памяти на один запрос;max_execution_time— максимальное время выполнения запроса;readonly— режим «только чтение»;log_queries— включение логирования всех запросов.
Полный список настроек доступен в документации ClickHouse.
При создании кластера Managed ClickHouse автоматически создается профиль default с ограничениями для защиты кластера от перегрузки. Этот профиль будет по умолчанию использоваться каждым новым пользователем.
Профиль настроек можно назначать и пользователям, и ролям. На уровне пользователя всегда действует только один профиль настроек. Если назначено сразу несколько профилей настроек (например, один напрямую пользователю и один его роли), то ClickHouse произвольно применит только один из них.
Управлять профилями настроек позволяет привилегия ACCESS MANAGEMENT с помощью команд:
CREATE SETTINGS PROFILE— создание профиля настроек;ALTER SETTINGS PROFILE— изменение профиля настроек;DROP SETTINGS PROFILE— удаление профиля настроек.
Особенности и ограничения
После удаления восстановить пользователя, роль и профиль настроек невозможно.
Доступные операции с пользователем
Операция | Комментарий |
|---|---|
| Просмотр списка пользователей в кластере | Посмотрите полный список пользователей кластера |
| Просмотр информации о конкретном пользователе | Посмотрите подробную информацию о любом пользователе |
| Создание пользователя | Создайте пользователя кластера, если хотите добавить новый доступ к управлению |
| Назначение роли пользователю | Предоставьте пользователю привилегии, выданные указанной роли |
| Назначение привилегии пользователю | Предоставьте пользователю конкретную привилегию |
| Просмотр ролей пользователя | Посмотрите, какие роли назначены пользователю |
| Отзыв роли или привилегии у пользователя | Отзовите указанные роли или привилегии у пользователя |
| Назначение профиля настроек пользователю | Назначьте профиль настроек пользователю |
| Просмотр профиля настроек пользователя | Посмотрите профиль настроек, назначенный пользователю |
| Отзыв профиля настроек у пользователя | Отзовите назначенный профиль настроек у пользователя |
| Удаление пользователя | Удалите пользователя, если этот доступ к управлению больше не нужен |
Доступные операции с ролями
Операция | Комментарий |
|---|---|
| Просмотр списка ролей в кластере | Посмотрите полный список ролей в кластере |
| Просмотр информации о конкретной роли | Посмотрите подробную информацию о любой роли |
| Создание роли | Создайте новую роль без привилегий |
| Выдача привилегии роли | Выдайте привилегии роли |
| Просмотр привилегий роли | Посмотрите все привилегии, выданные роли |
| Отзыв привилегии у роли | Отзовите указанные привилегии у роли |
| Назначение профиля настроек роли | Назначьте профиль настроек роли |
| Просмотр профиля настроек роли | Посмотрите профиль настроек, назначенный роли |
| Отзыв профиля настроек у роли | Отзовите назначенный профиль настроек у роли |
| Настройка наследования роли | Настройте наследование роли другой ролью |
| Отзыв наследования роли | Отзовите наследование роли другой ролью |
| Удаление роли | Удалите роль, если она больше не нужна |
Доступные операции с профилями настроек
Операция | Комментарий |
|---|---|
| Просмотр списка профилей настроек в кластере | Посмотрите полный список профилей настроек в кластере |
| Просмотр информации о конкретном профиле настроек | Посмотрите метаданные профиля настроек и его настройки |
| Просмотр назначения профиля настроек пользователям и ролям | Посмотрите, каким пользователям и ролям назначен профиль настроек |
| Создание профиля настроек | Создайте новый уникальный профиль настроек |
| Удаление профиля настроек | Удалите профиль настроек, если он больше не нужен |