Документация

Группы и RBAC

Версия v2.3.1 · Обновлено

Группы и RBAC#

IncidentRelay использует два слоя разрешений:

  • Роли группы определяют границу доступа и администрирование на уровне группы.
  • Роли команды определяют, что пользователь может делать внутри конкретной команды.

Пользователь должен принадлежать к группе, прежде чем он сможет принадлежать к команде в этой группе. Добавление пользователя в команду не добавляет пользователя в группу автоматически.

Глобальный администратор#

Глобальный администратор может управлять всей установкой:

  • создавать, обновлять и удалять группы;
  • создавать пользователей и управлять ими;
  • добавлять существующих пользователей в группы;
  • назначать любую роль группы, включая user_admin;
  • управлять всеми командами и ресурсами;
  • просматривать все данные.

Глобальный администратор не должен иметь возможности удалить или отключить самого себя, и система должна сохранять как минимум одного активного глобального администратора.

Роли группы#

РольМетка в UIНазначение
viewerGroup ViewerМожет видеть ресурсы внутри границы группы
editorGroup EditorМожет создавать или редактировать операционные ресурсы на уровне группы, например создать команду в группе
user_adminGroup AdminМожет создавать пользователей и управлять ими только внутри границы этой группы

Границы Group Admin#

user_admin намеренно ограничен:

  • может создать нового пользователя только внутри выбранной группы;
  • созданный пользователь автоматически привязывается к этой группе;
  • не может передать или переопределить group_id в теле запроса;
  • не может создать пользователя с правами глобального администратора;
  • не может назначить другого user_admin;
  • не может добавить существующего пользователя в группу;
  • не может перемещать пользователя между группами;
  • не может глобально отключить или удалить пользователя.

Границы Group Editor#

editor — это операционная роль на уровне группы.

Group Editor может:

  • создавать команды внутри группы;
  • создавать и редактировать операционные ресурсы на уровне группы;
  • управлять командой только тогда, когда у него также есть роль manager в этой команде.

Group Editor не может:

  • управлять пользователями;
  • назначать роли группы;
  • назначать user_admin;
  • автоматически управлять каждой командой в группе;
  • редактировать ротации, маршруты, сервисы, каналы или заглушки команды, где он не является Team Manager.

Когда Group Editor создаёт новую команду, IncidentRelay добавляет этого пользователя как manager созданной команды.

Добавление существующего пользователя в группу изменяет границу группы и доступно только глобальному администратору.

Роли команды#

РольМетка в UIНазначение
viewerTeam ViewerМожет видеть ресурсы команды и алерты
responderTeam ResponderМожет видеть ресурсы команды и подтверждать (acknowledge), разрешать или временно откладывать алерты (shelve)
managerTeam ManagerМожет управлять ресурсами команды, пользователями команды, каналами, маршрутами, ротациями и заглушками

Group editor не становится автоматически менеджером каждой команды в группе. Доступ на запись к команде требует роли команды manager.

Когда Group editor, не являющийся администратором, создаёт новую команду, IncidentRelay должен добавить этого создателя как manager созданной команды.

Матрица разрешений#

ДействиеТребуемое разрешение
Список видимых группЛюбое активное членство в группе или глобальный администратор
Создать группуГлобальный администратор
Обновить свойства группыGroup editor или глобальный администратор
Удалить группуГлобальный администратор
Список пользователей группыЧитаемое членство в группе или глобальный администратор
Создать пользователя внутри группыGroup user_admin или глобальный администратор
Добавить существующего пользователя в группуГлобальный администратор
Назначить роли группыGroup user_admin с ограничениями или глобальный администратор
Назначить роль user_adminГлобальный администратор
Отключить членство в группеGroup user_admin или глобальный администратор
Удалить членство в группеГлобальный администратор
Создать команду в группеGroup editor или глобальный администратор
Читать командуTeam viewer, responder, manager или глобальный администратор
Подтвердить (acknowledge) или разрешить алертTeam responder, manager или глобальный администратор
Управлять ресурсами командыTeam manager или глобальный администратор
Добавить пользователя в командуTeam manager или глобальный администратор; целевой пользователь уже должен быть в группе команды
Управлять собственной созданной командойTeam manager или глобальный администратор
Управлять любой командой в группеНе допускается только ролью группы; требуется Team manager
Управлять ротациямиTeam manager или глобальный администратор
Управлять маршрутамиTeam manager или глобальный администратор
Управлять сервисамиTeam manager или глобальный администратор
Управлять каналамиTeam manager или глобальный администратор
Управлять заглушкамиTeam manager или глобальный администратор