Модуль доступен только в Deckhouse Enterprise Edition.
Типы аутентификации и их настройка
Deckhouse Observability Platform предоставляет различные методы аутентификации для обеспечения безопасного доступа к системе.
Доступны следующие варианты аутентификации:
- Email/пароль — cтандартный метод аутентификации, где пользователи входят в систему, используя свой email и пароль. Этот метод включен по умолчанию.
- Внешняя аутентификация — для организаций, которые предпочитают использовать свои существующие системы управления идентификационной информацией. Deckhouse Observability Platform поддерживает следующие методы при аутентификации через внешние источники:
- OIDC (OpenID Connect) — современный стандарт аутентификации, основанный на протоколе OAuth 2.0.
- LDAP / Active Directory c использованием Dex — интеграция с корпоративными каталогами LDAP или Active Directory с использованием Dex как посредника. Для интеграции требуется дополнительная настройка со стороны Deckhouse Kubernetes Platform.
- API-токен — метод аутентификации для взаимодействия с системой через API. Данный вид аутентификации включен всегда.
Выбор метода аутентификации осуществляется с помощью параметра ui.auth.mode ModuleConfig observability-platform
при установке системы. При использовании внешней аутентификации (ui.auth.mode: externalAuth
) требуется дополнительная настройка маппинга ролей.
Ролевая модель пользователей
Пользователь
— это учетная запись в системе, имеющая разные права доступа к различным сущностям системы. Пользователи взаимодействуют с системой только через веб-интерфейс.
Для пользователя предусмотрены 4 типа ролей:
- Суперадминистратор
- Администратор
- Пользователь
- Только просмотр
Состав прав доступа для каждой роли приведен в таблице.
Таблица состава прав ролей пользователей:
Сущность | Суперадминистратор | Администратор | Пользователь | Только просмотр |
---|---|---|---|---|
Проект | ||||
Дашборды | Полный доступ | Полный доступ | Полный доступ | Только чтение |
Обзор данных | Полный доступ | Полный доступ | Полный доступ | Только чтение |
Уведомления | Полный доступ | Полный доступ | Только чтение | Только чтение |
Триггеры | Полный доступ | Полный доступ | Полный доступ | Только чтение |
Производные метрики | Полный доступ | Полный доступ | Полный доступ | Только чтение |
Правила нотификаций | Полный доступ | Полный доступ | Полный доступ | Только чтение |
Отключенные уведомления | Полный доступ | Полный доступ | Полный доступ | Только чтение |
Правила уведомлений | Полный доступ | Полный доступ | Полный доступ | Только чтение |
Статистика использования | Только чтение | Только чтение | Только чтение | Только чтение |
API-токены | Полный доступ | Полный доступ | Нет доступа | Нет доступа |
Пользователи | Полный доступ | Полный доступ | Только чтение | Только чтение |
Интеграции | Только чтение | Только чтение | Только чтение | Нет доступа |
Настройки | Полный доступ | Только чтение | Нет доступа | Нет доступа |
Лимиты (метрики) | Полный доступ | Нет доступа | Нет доступа | Нет доступа |
Лимиты (логи) | Полный доступ | Нет доступа | Нет доступа | Нет доступа |
Рабочее пространство | ||||
Статистика использования | Только чтение | Только чтение | Только чтение | Только чтение |
Пользователи | Полный доступ | Полный доступ | Только чтение | Только чтение |
API-токены | Полный доступ | Полный доступ | Нет доступа | Нет доступа |
Настройки | Полный доступ | Только чтение | Нет доступа | Нет доступа |
Организация | ||||
Дашборды | Полный доступ | Только чтение | Только чтение | Только чтение |
Каналы нотификаций | Полный доступ | Полный доступ | Только чтение | Только чтение |
Триггеры | Полный доступ | Только чтение | Только чтение | Только чтение |
Статистика использования | Только чтение | Только чтение | Только чтение | Только чтение |
Пользователи | Полный доступ | Полный доступ | Только чтение | Только чтение |
API-токены | Полный доступ | Полный доступ | Нет доступа | Нет доступа |
Настройки | Полный доступ | Только чтение | Нет доступа | Нет доступа |
Системные настройки | ||||
Общие настройки | Полный доступ | Нет доступа | Нет доступа | Нет доступа |
Базовые лимиты (метрики) | Полный доступ | Нет доступа | Нет доступа | Нет доступа |
Базовые лимиты (логи) | Полный доступ | Нет доступа | Нет доступа | Нет доступа |
Маппинг ролей | Полный доступ | Нет доступа | Нет доступа | Нет доступа |
Пользователи | Полный доступ | Нет доступа | Нет доступа | Нет доступа |
Кластеры | Полный доступ | Нет доступа | Нет доступа | Нет доступа |
Аудит (логи) | Полный доступ | Нет доступа | Нет доступа | Нет доступа |
Внешняя аутентификация
Включение внешней аутентификации
Внешняя аутентификация позволяет пользователям Deckhouse Observability Platform использовать для входа в систему учетные записи из внешних систем. Чтобы настроить функцию, выполните следующие шаги:
-
Задайте маппинг для роли Суперадминистратор:
- Войдите в раздел «Системные настройки» → «Настройка маппинга ролей».
- Выберите «Добавить маппинг».
- Заполните поля:
- «Название группы» — идентификатор внешней группы (например, «super-administrator»).
- «Тип объекта» — выберите «Вся система».
- «Роль» — укажите «Суперадминистратор».
- Подтвердите выбор, нажав «Обновить».
-
Включите внешнюю аутентификацию:
-
Если используется Dex, требуется предварительная настройка провайдера аутентификации с помощью ресурса dexProvider.
-
Если включен OIDC, необходимо задать его настройки в секции параметров ui.auth ModuleConfig
observability-platform
.Например:
kubectl patch ModuleConfig observability-platform --type=merge -p <<- 'EOT' { "spec": { "settings": { "ui": { "auth": { "mode": "externalAuth", "provider": "dex", "issuer": "https://dex.dop.example.com", "groupsParamName": "groups" } } } } } EOT
Подробности о параметрах настройки можно найти в документации.
-
Включите внешнюю аутентификацию, используя команду:
kubectl patch ModuleConfig observability-platform --type=merge -p <<- 'EOT' { "spec": { "settings": { "ui": { "auth": { "mode": "externalAuth" } } } } } EOT
-
После завершения этих шагов система будет готова к использованию внешней аутентификации.
Настройка маппинга ролей
Для настройки маппинга ролей выполните следующие шаги:
- Перейдите в «Системные настройки» → «Настройка маппинга ролей».
- Нажмите «Добавить маппинг ролей»:
- «Название группы» — название группы из внешней системы (например, «admins»).
- «Тип объекта» — выберите объект («Вся система», «Организация», «Рабочее пространство», «Проект»).
- «Родительский объект» (если применимо).
- «Название объекта» (если применимо).
- «Роль» — выберите один из типов роли («Суперадминистратор», «Администратор», «Пользователь», «Только просмотр»).
Ролевая модель API-токенов
API-токен — это учетная запись в системе, имеющая разные права доступа к различным сущностям системы, которые взаимодействуют с системой только через API.
Права | Уровень доступа | Проект | Рабочее пространство | Организация |
---|---|---|---|---|
Метрики: чтение | Чтение | Да | Да | Да |
Метрики: запись | Запись | Да | Нет | Нет |
Триггеры и алерты (Метрики): чтение | Чтение | Да | Да | Да |
Триггеры и алерты (Метрики): запись | Запись | Да | Нет | Нет |
Логи: чтение | Чтение | Да | Да | Да |
Логи: запись | Запись | Да | Нет | Нет |
Мультитенантный API-токен — токен, областью действия которого являются рабочее пространство, организация или сразу несколько проектов. Мультитенантные API-токены ограничены возможностью только чтения мониторинговых данных из выбранной области действия.