Управление правами доступа пользователей Kintsugi с помощью ETL-машины#
В Kintsugi (DBCM) предусмотрено управление правами доступа пользователей с помощью настройки привилегий.
Доступ выдается пользователю на выполнение операции только над тем объектами, которые обладают заданным набором атрибутов.
В Kintsugi (DBCM) формирование групп основано на фильтрах, которые представляют собой набор условий на равенство пользовательских свойств определенным значениям.
Выдача дополнительных привилегий в Kintsugi#
Выдача дополнительных привилегий в Kintsugi (DBCM) выполняется путем создания правил.
Каждое правило состоит из:
группы пользователей;
фильтра выбора активов;
набора выдаваемых привилегий.
Группа пользователей определяется двумя параметрами:
именем группы;
списком имен пользователей входящих в группу.
Фильтр выбора активов - служит для определения множества активов в отношении которых будут действовать выдаваемые привилегии. Фильтр представляет собой набор условий на равенство пользовательских свойств определенным значениям, условия объединяются по правилам логического «И».
Набор привилегий#
В рамках одного правила можно выдать одну и более привилегий. Список доступных привилегий приведен в таблице:
Привилегия Backend |
Действие |
|---|---|
|
Просмотр списка активов и открытие Оперативного центра |
|
Доступ к функциональности подписок на оповещения |
|
Доступ к функции создания актива типа PosgreSQL |
|
Редактирование объекта мониторинга / кластера |
|
Удаление объекта мониторинга / кластера |
|
Просмотр объекта мониторинга / кластера |
|
Просмотр списка подписчиков на оповещения |
|
Переключение флага сбора всех метрик |
|
Переключение флага сбора метрик с типами |
|
Переключение флага сбора и параметров метрик |
|
Просмотр логов актива (или доступ к панели мониторинга Логи) |
|
Предоставляет доступ к панели управления Конфигурация |
Пример#
Пусть в системе заведены два пользовательских свойства: custom_stand (имя стенда) и custom_env_type (тип среды: "primary" "secondary").
В таком случае, если мы хотим выдать дополнительные привилегии на доступ ко всем активам входящим в стенды с именем "test", во всех средах (вне зависимости значения custom_env_type) фильтр активов будет выглядеть следующим образом:
{"custom_stand": "test"}
Если мы хотим выдать дополнительные привилегии на доступ к активам стенда "test" только в "primary" среде, фильтр активов будет выглядеть следующим образом:
{"custom_stand": "test", "custom_env_type" : "primary"}
ETL-машина#
ETL-машина работает как мост между Service Manager и Kintsugi (DBCM).
Она периодически проверяет указанную директорию на наличие новых ZIP-архивов с CSV-файлами и соответствующих .done-файлов. Обнаружив их, она забирает файлы, распаковывает и загружает данные во внутреннюю in-memory БД для обработки. На основе этих данных с помощью предопределенных SQL-запросов и логики преобразования формируются снепшоты конфигурации привилегий в формате, совместимом с Kintsugi.
Эти снепшоты отправляются на соответствующие стенды Kintsugi через REST API (/privileges/snapshots/upload). Подробнее c API-вызовом можно ознакомиться в документе «Руководство прикладного разработчика на Kintsugi (DBCM)» раздел «Загрузка актуальной информации о доступности привилегий для групп пользователей».
Важно
ETL-машина сама не применяет права, а лишь загружает снепшоты, которые потом вручную применяются администратором через интерфейс Kintsugi.
Взаимодействие с ETL-машиной: