RBAC (Role-Based Access Control) - это модель управления доступом, при которой права пользователей в системе определяются на основе их ролей, а не персональных идентификаторов. Каждой роли назначается набор разрешений, а пользователи получают доступ путём назначения соответствующих ролей.
Ключевые принципы
- Роли > Пользователи: Права привязываются к должностям/функциям («Администратор БД», «Аналитик финансов»), а не к конкретным людям.
- Минимальные привилегии: Пользователь получает ровно столько прав, сколько нужно для работы.
- Иерархия ролей: Роли могут наследовать права друг друга (например, «Старший аналитик» включает все права «Аналитика»).
Как работает RBAC?
- Создание ролей: Определяются роли (например: reader, editor, admin).
- Назначение разрешений, каждой роли выдаются права:
- reader: read (просмотр данных),
- editor: read + write + edit,
- admin: read + write + delete + user_management.
- Привязка пользователей к ролям: Пользователь -> роль 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-средах.