RBAC (Role-Based Access Control)

RBAC (Role-Based Access Control) - это модель управления доступом, при которой права пользователей в системе определяются на основе их ролей, а не персональных идентификаторов. Каждой роли назначается набор разрешений, а пользователи получают доступ путём назначения соответствующих ролей.

Ключевые принципы

  • Роли > Пользователи: Права привязываются к должностям/функциям («Администратор БД», «Аналитик финансов»), а не к конкретным людям.
  • Минимальные привилегии: Пользователь получает ровно столько прав, сколько нужно для работы.
  • Иерархия ролей: Роли могут наследовать права друг друга (например, «Старший аналитик» включает все права «Аналитика»).

Как работает RBAC?

  1. Создание ролей: Определяются роли (например: reader, editor, admin).
  2. Назначение разрешений, каждой роли выдаются права:
    1. reader: read (просмотр данных),
    2. editor: read + write + edit,
    3. admin: read + write + delete + user_management.
  3. Привязка пользователей к ролям: Пользователь -> роль editor -> получает права на чтение/редактирование.

Компоненты модели

Элемент Описание
Пользователь (User) Аккаунт (человек/сервис)
Роль (Role) Набор разрешений (например: billing_manager)
Разрешение (Permission) Действие: read, write, delete
Сессия (Session) Временное назначение ролей пользователю

Преимущества

  • Упрощение администрирования: Добавил пользователя в роль — автоматически выдал все права.
  • Централизованный контроль: Изменил разрешения роли — обновил права для всех её членов.
  • Соответствие compliance: Чёткая аудиторская трассировка («Кто имел доступ к данным?»).
  • Безопасность: Снижение риска ошибок (нет ручной выдачи прав каждому пользователю).

RBAC vs Другие модели

Модель Ключевая логика Пример
RBAC Доступ через роли Корпоративные сети, SaaS
ABAC (Attribute-Based) Правила на основе атрибутов (должность=менеджер, время=9:00-18:00) Сложные системы (AWS IAM)
DAC (Discretionary) Владелец ресурса решает, кому дать доступ Персональные ПК
MAC (Mandatory) Жёсткие правила (секретность меток TOP SECRET) Военные системы

Типы RBAC

  • Flat RBAC: Базовый вариант: пользователи ↔ роли ↔ разрешения.
  • Hierarchical RBAC: Иерархия ролей (роль Директор включает права Менеджера).
  • Constrained RBAC: Добавление разделения обязанностей (SoD): один пользователь не может совмещать конфликтующие роли (например, бухгалтер и аудитор).

RBAC - это стандартизированный подход к управлению доступом, где права назначаются ролям (а не пользователям), что обеспечивает масштабируемость, соблюдение принципа минимальных привилегий и упрощение аудита в корпоративных и cloud-средах.