Перейти к содержанию

Роли и права доступа

AegisAI использует модель RBAC (Role-Based Access Control) с пятью иерархическими ролями.

Иерархия ролей

super_admin (5) > admin (4) > security_analyst (3) > developer (2) > viewer (1)

Роль с более высоким рангом наследует все права ролей ниже (кроме явных ограничений).

Матрица прав

Super Admin

Полный доступ ко всем ресурсам всех арендаторов.

{"*": ["*"]}

Admin

Ресурс Действия
users create, read, update, delete, change_role
policies create, read, update, delete
agents create, read, update, delete
audit read, export
anomalies read, confirm
hitl read, approve, reject
dashboard read

Security Analyst

Ресурс Действия
audit read, export
anomalies read, confirm
policies read
dashboard read
hitl read, approve, reject

Developer

Ресурс Действия
agents create, read, update
policies read
audit read
dashboard read

Viewer

Ресурс Действия
dashboard read
audit read

Сравнительная таблица

Возможность Viewer Developer Sec. Analyst Admin Super Admin
Панель мониторинга
Аудит (чтение)
Аудит (экспорт)
Агенты (CRUD) ✅*
Политики (CRUD)
Политики (чтение)
Аномалии
HITL
Пользователи
Все арендаторы

* Developer может создавать и обновлять, но не удалять агентов.

Правила назначения ролей

Ограничения

  1. Только Super Admin может назначить роль super_admin
  2. Нельзя назначить роль выше своей
  3. Super Admin не привязан к арендатору (tenant_id = null)
  4. Остальные роли требуют tenant_id

Проверка прав в API

Backend использует декоратор require_role:

from app.core.rbac import require_role
from app.models.user import UserRole

@router.get("/admin-only")
async def admin_endpoint(user: User = Depends(require_role(UserRole.ADMIN))):
    ...

И класс PermissionChecker:

checker = PermissionChecker(user)
if checker.can("export", "audit"):
    # разрешён экспорт

JWT и роли

При аутентификации роль включается в JWT payload:

{
  "sub": "user-uuid",
  "tenant_id": "tenant-uuid",
  "role": "admin",
  "exp": 1234567890
}

WebSocket использует role из JWT для фильтрации событий.

Рекомендации

Сценарий Рекомендуемая роль
Руководитель безопасности Admin
Аналитик SOC Security Analyst
Разработчик агентов Developer
Аудитор (только чтение) Viewer
DevOps / платформенный админ Super Admin

Принцип минимальных привилегий

Назначайте минимально необходимую роль. Developer не нужен доступ к HITL, Viewer — к управлению агентами.