Открыть сервис

Ролевое управление доступом RBAC

Ролевое управление доступом (RBAC) — это политика избирательного управления доступом субъектов (пользователей, процессов) к объектам (файлам, базам данных, сетевым ресурсам) информационной системы, основанная на назначении субъектам ролей и последующем предоставлении этим ролям прав на выполнение определённых операций. RBAC является одной из наиболее распространённых моделей контроля доступа, обеспечивающей централизованное администрирование и снижение риска несанкционированного доступа за счёт разделения обязанностей и принципа минимальных привилегий.

Основные понятия и принципы

Модель RBAC оперирует тремя ключевыми сущностями: пользователи, роли и разрешения.

  • Пользователь (User) — человек или программный агент, который взаимодействует с системой.
  • Роль (Role) — набор прав доступа, объединённый по функциональному признаку (например, «Бухгалтер», «Администратор базы данных», «Менеджер по продажам»). Роль является промежуточным звеном между пользователем и разрешениями.
  • Разрешение (Permission) — санкционированное действие над объектом (например, чтение, запись, выполнение, удаление).

Основополагающий принцип RBAC: пользователь не получает права напрямую, а только через назначение ему одной или нескольких ролей. Это позволяет значительно упростить администрирование: при изменении должностных обязанностей сотрудника достаточно изменить его ролевую принадлежность, а не переопределять права для каждого пользователя индивидуально.

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

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

Разделение обязанностей

Модель RBAC поддерживает два типа разделения обязанностей:

  • Статическое разделение (Static Separation of Duty, SSD) — запрещает одному пользователю одновременно иметь две конфликтующие роли (например, роли «Кассир» и «Бухгалтер»).
  • Динамическое разделение (Dynamic Separation of Duty, DSD) — запрещает пользователю активировать две конфликтующие роли в одном сеансе работы, но допускает их наличие в его профиле.

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

В сложных системах часто применяется иерархическая структура ролей. В этом случае одни роли могут наследовать права других. Например, роль «Старший инженер» может автоматически включать в себя все права роли «Инженер». Иерархия обычно строится по принципу частичного порядка: чем выше роль, тем шире её полномочия. Это позволяет избежать дублирования разрешений и упрощает управление.

Классификация моделей RBAC

Стандарт NIST (Национальный институт стандартов и технологий США) выделяет четыре уровня моделей RBAC, которые описывают различные степени детализации и функциональности:

  1. Плоский RBAC (Flat RBAC) — базовая модель, где пользователи ассоциируются с ролями, а роли — с разрешениями. Иерархия не поддерживается.
  2. Иерархический RBAC (Hierarchical RBAC) — поддерживает наследование прав между ролями. Может быть реализован как с общим (любая роль может быть родителем для любой другой), так и с ограниченным наследованием.
  3. Ограниченный RBAC (Constrained RBAC) — добавляет к иерархической модели механизмы статического и динамического разделения обязанностей.
  4. Симметричный RBAC (Symmetric RBAC) — наиболее полная модель, которая помимо проверки прав на операции позволяет также проверять возможность отзыва ролей и управлять сеансами.

Реализация и применение

RBAC широко применяется в корпоративных информационных системах, операционных системах (например, в Windows Active Directory, Linux с SELinux), системах управления базами данных (Oracle, PostgreSQL, Microsoft SQL Server), а также в веб-приложениях и облачных сервисах.

Этапы внедрения

Внедрение RBAC в организации обычно включает следующие шаги:

  1. Инвентаризация — выявление всех объектов доступа и операций, выполняемых пользователями.
  2. Проектирование ролей — группировка должностных обязанностей в роли. Роль должна отражать реальные бизнес-функции, а не технические детали.
  3. Назначение разрешений — каждой роли присваивается набор прав на операции с объектами.
  4. Назначение пользователей — каждому пользователю присваивается одна или несколько ролей.
  5. Аудит и поддержка — регулярная проверка актуальности ролей и прав, а также мониторинг сеансов доступа.

Примеры использования

  • В медицинской информационной системе роль «Врач» может иметь права на чтение и запись в историю болезни, а роль «Медсестра» — только на чтение и ввод данных о процедурах.
  • В банковской системе роль «Операционист» позволяет проводить платежи до определённой суммы, а роль «Начальник отдела» — утверждать крупные переводы и просматривать отчёты.

Преимущества и недостатки

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

  • Упрощение администрирования — при изменении обязанностей сотрудника достаточно изменить его роли, а не переназначать сотни разрешений.
  • Повышение безопасности — снижается риск ошибок и злоупотреблений за счёт чёткого разделения обязанностей и минимальных привилегий.
  • Масштабируемость — легко добавлять новых пользователей и новые роли в уже существующую структуру.
  • Соответствие нормативным требованиям — многие стандарты (например, PCI DSS, HIPAA, GDPR) требуют внедрения ролевого управления доступом.

Недостатки

  • Сложность проектирования — неправильно спроектированная ролевая модель может привести к «ролевому взрыву» (сотни и тысячи ролей), что сведёт на нет преимущества RBAC.
  • Гибкость — RBAC не всегда хорошо подходит для систем с высокой динамикой прав, где требуется доступ на уровне отдельных записей (например, «только к своим проектам»). В таких случаях используются атрибутивные модели (ABAC).
  • Административная нагрузка — требует регулярного пересмотра ролей и прав для поддержания актуальности.

Сравнение с другими моделями

  • Дискреционное управление доступом (DAC) — владелец объекта сам решает, кому предоставить доступ. RBAC, напротив, централизован и не зависит от воли владельца.
  • Мандатное управление доступом (MAC) — основано на метках безопасности (уровни секретности). RBAC более гибок и не требует жёсткой классификации данных.
  • Атрибутивное управление доступом (ABAC) — использует атрибуты пользователя, объекта и окружения для принятия решений. ABAC сложнее, но позволяет реализовать более тонкую политику, чем RBAC.

Стандартизация

Основной стандарт, описывающий модель RBAC, — ANSI INCITS 359-2004 (также известный как NIST RBAC Model). Он был разработан Национальным институтом стандартов и технологий США и принят в 2004 году. Этот стандарт определяет четыре описанные выше модели, а также требования к функциональным спецификациям систем, реализующих RBAC.

Источники

  1. Sandhu, R., Coyne, E. J., Feinstein, H. L., & Youman, C. E. (1996). Role-based access control models. IEEE Computer, 29(2), 38–47.
  2. Ferraiolo, D. F., & Kuhn, D. R. (1992). Role-based access control. Proceedings of the 15th National Computer Security Conference.
  3. ANSI INCITS 359-2004. (2004). Information Technology — Role Based Access Control.
  4. National Institute of Standards and Technology (NIST). (2004). NIST Special Publication 800-53: Recommended Security Controls for Federal Information Systems.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →