Администрирование RBAC
На этой странице:
Введение
Администрирование RBAC — раздел платформы Proto Observability для расширенного управления доступом на основе ролей (Role-Based Access Control). Раздел предоставляет единый интерфейс для:
- Управления пользователями — приглашение, активация/деактивация, назначение ролей, сброс пароля
- Управления ролями — создание пользовательских ролей, редактирование существующих
- Настройки прав доступа — матрица разрешений по типам ресурсов и действиям
- Привязки внешних групп — сопоставление групп из внешних провайдеров (LDAP/OIDC) с ролями платформы
- Аудита — просмотр журнала всех действий, связанных с управлением доступом
Версия
Данный функционал доступен начиная с версии 200.Доступ
Раздел «Администрирование RBAC» доступен только пользователям с правами администратора. Если раздел не отображается в меню, обратитесь к администратору платформы.Как открыть: перейдите в раздел Администрирование RBAC в основном меню навигации платформы.
Пользователи
Вкладка «Пользователи» отображает таблицу всех зарегистрированных пользователей платформы.
Столбцы таблицы:
| Столбец | Описание |
|---|---|
| Имя | Имя пользователя |
| Адрес электронной почты | |
| Роли | Назначенные роли (отображаются в виде тегов) |
| Последний вход | Дата и время последней авторизации |
Возможности:
- Поиск — фильтрация списка по имени или email
- Фильтр по роли — отображение только пользователей с выбранной ролью
- Пригласить пользователя — кнопка для отправки приглашения новому пользователю
Операции с пользователем (доступны через столбец действий):
| Операция | Описание |
|---|---|
| Управление ролями | Назначение или отзыв ролей пользователя |
| Редактирование | Изменение данных пользователя |
| Сброс пароля | Установка нового временного пароля |
| Включить / Отключить | Активация или деактивация учетной записи |
Роли
Вкладка «Роли» содержит список всех ролей, доступных в платформе.
Роли делятся на два типа:
- Системные роли — предустановленные роли платформы (например, «Администратор», «Пользователь»). Системные роли отмечены специальным индикатором и не могут быть удалены.
- Пользовательские роли — созданные администратором роли для специфических сценариев доступа.
Доступные операции:
- Создание роли — укажите имя и описание для новой роли
- Редактирование роли — изменение имени и описания существующей роли
- Просмотр деталей — подробная информация о роли и связанных разрешениях
Права доступа
Вкладка «Права доступа» отображает матрицу разрешений — какие действия разрешены каждой роли для каждого типа ресурсов.
Структура матрицы:
- Строки — типы ресурсов платформы (дашборды, алерты, сервисы, настройки и другие)
- Столбцы — роли
- Ячейки — действия, разрешенные для данной комбинации роли и типа ресурса (просмотр, создание, редактирование, удаление, администрирование)
Администратор может настроить разрешения для пользовательских ролей, изменяя значения в ячейках матрицы.
Системные роли
Разрешения системных ролей не могут быть изменены. Для настройки специфических прав создайте пользовательскую роль.Ресурсно-ограниченные права
Начиная с версии 200, права доступа можно выдавать не только на уровне типа ресурса, но и на конкретные экземпляры ресурсов. Это особенно полезно в больших организациях, где разные команды отвечают за разные сервисы и им не нужен доступ к чужим данным.
Поддерживаемые типы ресурсов для ограничения по экземпляру:
| Тип ресурса | Пример ограничения |
|---|---|
service |
Доступ только к сервису payment_bank |
bt (бизнес-транзакция) |
Просмотр только конкретных ключевых бизнес-транзакций |
slo |
Редактирование только SLO определённой команды |
dashboard |
Редактирование только выделенных дашбордов |
Как настроить:
- Откройте редактирование роли на вкладке Роли.
- В секции прав доступа выберите тип ресурса и действия (просмотр, редактирование и т.д.).
- Вместо подстановочного значения
*(все ресурсы) укажите идентификаторы или имена конкретных ресурсов. - Сохраните изменения.
Пользователи с этой ролью получат доступ только к указанным экземплярам. Если для типа ресурса не задано ни одного ограничения, применяется правило «нет доступа».
Администраторы
Пользователям с ролью администратора ({admin, *, *}) по-прежнему доступны все ресурсы платформы. Ресурсно-ограниченные права — инструмент тонкой настройки для обычных ролей.
Ограничение доступа к сигналам по сервисам
Права на тип ресурса service автоматически применяются ко всем запросам данных, которые выполняет пользователь в интерфейсе платформы. Платформа прозрачно добавляет фильтр по списку разрешённых сервисов к следующим источникам:
| Источник данных | Способ применения |
|---|---|
| PromQL | В каждый запрос добавляется фильтр {service=~"svc1|svc2|..."} |
| LogsQL | К запросу добавляется extra_filter с разрешёнными именами сервисов |
| CubeJS (OLAP) | В JWT-токен CubeJS добавляется claim allowed_services, который преобразуется в WHERE-условие через queryRewrite |
Благодаря этому любой виджет на дашборде, Traces Explorer, Logs Explorer, Браузер метрик и SLO показывают пользователю только данные его сервисов — даже если сам запрос написан без явного фильтра.
Поведение для разных категорий пользователей:
- Администраторы (правило
{admin, *, *}) — видят данные всех сервисов, фильтр не добавляется. - Пользователи с разрешённым списком сервисов — видят данные только этих сервисов.
- Пользователи без прав на сервисы — получают пустой результат запроса (запрос выполняется, но не возвращает данных).
Отказ в доступе
Если у пользователя нет прав на ресурс целиком (например, нет ни одного разрешённого SLO), вместо пустого результата отображается локализованная панель «Доступ запрещён» с пояснением. Это работает для виджетов APDEX, таблиц KBT, правил обнаружения, SLO, сегментов, правил извлечения бизнес-контекста и других.Внешние группы
Вкладка «Внешние группы» позволяет настроить автоматическое назначение ролей платформы на основе групп из внешних провайдеров учетных записей (LDAP, OpenID Connect).
Принцип работы:
При входе пользователя через SSO (LDAP или OIDC) платформа определяет его группы во внешнем провайдере. Если для этих групп настроено сопоставление, пользователю автоматически назначаются соответствующие роли платформы.
Доступные операции:
- Просмотр сопоставлений — таблица существующих привязок «внешняя группа — роль платформы»
- Добавить сопоставление — диалоговое окно для создания новой привязки: укажите имя внешней группы и выберите роль платформы
Настройка SSO
Для использования внешних групп необходимо предварительно настроить подключение SSO (LDAP или OIDC). Подробнее см. Настройка RBAC.Привязка групп LDAP/OIDC
В таблице сопоставлений каждая запись имеет источник (source_type), который определяет, откуда ожидается имя группы:
| Источник | Когда использовать |
|---|---|
| LDAP | Для пользователей, аутентифицируемых через LDAP-каталог (Active Directory и т.п.) |
| OIDC | Для пользователей, входящих через внешнего OIDC-провайдера |
| Встроенный (built-in) | Предустановленные сопоставления для исторических имён групп — их нельзя удалить, только отключить |
Настраиваемое имя claim для OIDC
По умолчанию платформа ожидает, что OIDC-провайдер передаёт список групп пользователя в claim groups. Если ваш провайдер использует другое имя (например, roles, ldap_groups, cognito:groups), его можно указать в настройках Keycloak — платформа корректно извлечёт группы из произвольного claim.
Унаследованные сопоставления
При обновлении с предыдущих версий платформы исторические имена LDAP-групп автоматически сохраняются как встроенные (built-in) сопоставления. Это гарантирует, что существующие пользователи не потеряют доступ после миграции на v200.Журнал аудита
Вкладка «Журнал аудита» предоставляет хронологический лог всех действий, связанных с управлением доступом в платформе.
Информация о каждом событии:
| Поле | Описание |
|---|---|
| Дата и время | Момент совершения действия |
| Пользователь | Кто выполнил действие |
| Тип действия | Категория операции (создание роли, назначение роли, изменение разрешений и т.д.) |
| Детали | Подробное описание выполненного действия |
Журнал аудита помогает отслеживать изменения в настройках доступа и выполнять требования по безопасности и комплаенсу.