Role-Based Access Control¶
Role-Based Access Control (RBAC, управление доступом на основе ролей) — это модель разграничения прав доступа к информационным ресурсам, в которой разрешения на выполнение определённых операций назначаются не отдельным пользователям напрямую, а ролям. Пользователи получают доступ к системе только после назначения им одной или нескольких ролей, что существенно упрощает администрирование безопасности в крупных организациях и информационных системах.
¶Основные принципы и концепции
RBAC основан на трёх фундаментальных сущностях: пользователь, роль и разрешение. Пользователь — это субъект доступа (человек, сервис, программа). Роль — это абстрактная категория, объединяющая набор прав, необходимых для выполнения определённых функций в системе. Разрешение — это право на выполнение конкретного действия (чтение, запись, выполнение, удаление) над определённым объектом (файл, база данных, приложение).
Ключевое правило RBAC: пользователь не может получить разрешение напрямую, минуя роль. Все разрешения назначаются исключительно ролям, а пользователи лишь наследуют их через членство в ролях. Это обеспечивает централизованное управление и минимизирует риск ошибок при ручном назначении прав.
¶Иерархия ролей
В сложных системах часто применяется иерархическая модель ролей. Роли могут наследовать разрешения друг друга. Например, роль «Администратор» может включать в себя все разрешения роли «Менеджер», а та, в свою очередь, — разрешения роли «Оператор». Такая иерархия позволяет строить гибкие и масштабируемые структуры прав, где каждая вышестоящая роль автоматически получает все права нижестоящих.
¶Разделение обязанностей
Важным принципом RBAC является разделение обязанностей. Оно может быть статическим или динамическим. Статическое разделение запрещает одному пользователю одновременно иметь две конфликтующие роли (например, «Бухгалтер» и «Кассир»). Динамическое разделение ограничивает возможность активации конфликтующих ролей в рамках одной сессии, но не запрещает их назначение в принципе.
¶Стандартизация
Наиболее известным стандартом, описывающим модель RBAC, является стандарт INCITS 359-2004 (ANSI/INCITS 359-2004, «American National Standard for Information Technology — Role Based Access Control»), разработанный Национальным институтом стандартов и технологий США (NIST). Он определяет четыре уровня модели:
- Core RBAC (Базовый) — минимальный набор функций: пользователи, роли, разрешения, сессии.
- Hierarchical RBAC (Иерархический) — добавляет поддержку иерархии ролей.
- Static Separation of Duty (Статическое разделение обязанностей) — запрещает назначение конфликтующих ролей.
- Dynamic Separation of Duty (Динамическое разделение обязанностей) — ограничивает активацию ролей в сессии.
¶Преимущества и недостатки
¶Преимущества
- Упрощение администрирования. Администратору не нужно управлять правами каждого пользователя отдельно — достаточно управлять ролями. При изменении должностных обязанностей пользователя достаточно сменить его роль, а не переопределять все разрешения.
- Повышение безопасности. Снижается риск ошибок, связанных с человеческим фактором, и вероятность несанкционированного доступа за счёт строгого соответствия ролей должностным обязанностям.
- Масштабируемость. Модель легко адаптируется к росту числа пользователей и систем, так как количество ролей обычно значительно меньше количества пользователей.
- Аудит и соответствие. RBAC упрощает отслеживание того, кто и к каким ресурсам имеет доступ, что необходимо для выполнения требований законодательства (например, Федерального закона «О персональных данных» в РФ, стандартов PCI DSS, HIPAA).
¶Недостатки
- Сложность первоначального проектирования. Требуется тщательный анализ бизнес-процессов и определение всех необходимых ролей, что может быть трудоёмким для крупных организаций.
- Риск избыточности ролей. Со временем количество ролей может расти, что приводит к усложнению управления и снижению эффективности модели.
- Негибкость для динамических сред. В системах, где права доступа должны часто меняться в зависимости от контекста (например, времени суток, местоположения, типа задачи), RBAC может быть недостаточно гибким.
- Проблема «ролевого взрыва». В очень больших системах с множеством уникальных комбинаций прав количество ролей может стать непомерно большим.
¶Сравнение с другими моделями
RBAC часто сравнивают с другими моделями управления доступом:
- Discretionary Access Control (DAC, избирательное управление доступом) — владелец ресурса сам решает, кто может к нему обращаться. RBAC более централизован и управляем.
- Mandatory Access Control (MAC, мандатное управление доступом) — доступ определяется на основе меток безопасности (например, «секретно», «совершенно секретно»). RBAC не использует метки, а оперирует ролями.
- Attribute-Based Access Control (ABAC, управление доступом на основе атрибутов) — доступ определяется на основе набора атрибутов (пользователя, ресурса, окружения). ABAC более гибок, но сложнее в реализации, чем RBAC.
¶Применение
RBAC широко применяется в корпоративных информационных системах, операционных системах (например, в Microsoft Windows — группы безопасности, в Linux — роли через sudo), системах управления базами данных (Oracle, PostgreSQL, Microsoft SQL Server), облачных платформах (Amazon Web Services, Microsoft Azure, Google Cloud Platform), а также в приложениях для управления персоналом, бухгалтерии и документооборота.
¶Пример реализации
В типичной корпоративной системе могут быть определены следующие роли:
- Гость — только чтение общедоступной информации.
- Сотрудник — чтение и редактирование своих документов, доступ к внутренним ресурсам.
- Менеджер — все права сотрудника плюс управление документами своего отдела.
- Администратор — полный доступ ко всем ресурсам системы, включая управление пользователями и ролями.
¶Источники
- INCITS 359-2004, American National Standard for Information Technology — Role Based Access Control.
- Sandhu, R., Coyne, E. J., Feinstein, H. L., & Youman, C. E. (1996). Role-Based Access Control Models. IEEE Computer, 29(2), 38-47.
- Ferraiolo, D. F., & Kuhn, D. R. (1992). Role-Based Access Controls. Proceedings of the 15th National Computer Security Conference.
- Федеральный закон от 27.07.2006 № 152-ФЗ «О персональных данных».
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →


