System Design Space

    Глава 163

    Обновлено: 17 февраля 2026 г. в 06:08

    Подходы к управлению правами: ACL, RBAC, ABAC, ReBAC (Google Zanzibar)

    Прогресс части0/12

    Практический разбор ACL/RBAC/ABAC/ReBAC: как принимается решение доступа, канонические схемы, сравнение trade-offs и границы применимости.

    Primary

    Zanzibar: Google's Consistent, Global Authorization System

    Канонический источник про ReBAC на глобальном масштабе и tuple-модель отношений.

    Открыть доклад
    ACLRBACABACReBAC

    Модель авторизации определяет, как именно система принимает решение доступа. На практике команды комбинируют несколько подходов: RBAC как базовый слой, ABAC для контекста и исключений, ReBAC для graph-shaped collaboration, ACL как локальный механизм на уровне объекта.

    Каноническая визуализация моделей

    ACL

    Права хранятся рядом с ресурсом как список субъектов и разрешений.

    Requesteruser:aliceTarget resource/docs/spec-v3ACL attached to resourcealice → read, commentteam:security → read, writebob → readservice:ci-bot → writedefault → denyinherit parent ACL = falseif (subject ∈ ACL)allow actionpermit/deny

    Сравнение моделей

    КритерийACLRBACABACReBAC
    Единица политикиЗапись per resourceРольПравилоОтношение в графе
    ГранулярностьОчень точная, но локальнаяСредняяВысокаяВысокая на графе
    Изменения доступаДорого на больших наборахДёшево через role mappingЧерез политику/атрибутыЧерез новые relation tuples
    ОбъяснимостьВысокаяВысокаяСредняяСредняя, нужен explain API
    Сложность платформыНизкаяНизкая-средняяСредняя-высокаяВысокая
    Типичный масштабЛокальные системыEnterprise/B2BRegulated domainsCollaboration at scale

    ABAC

    NIST SP 800-162

    Практические рекомендации по policy model и атрибутам для ABAC.

    Открыть документ

    Границы применимости

    ACL

    Когда подходит: Object storage, файловые системы, небольшие изолированные домены с явным owner-правилом.

    Где начинает болеть: Большие multi-tenant системы: слишком дорогие массовые изменения прав.

    Граница: Используйте как edge-модель рядом с ресурсом, но не как единую глобальную политику для всей компании.

    RBAC

    Когда подходит: Внутренние платформы, B2B SaaS, зрелые org-структуры с понятными job functions.

    Где начинает болеть: Контекстные решения (гео/время/риск) и объектные исключения per item.

    Граница: Базовая модель для большинства систем. Усиливайте ABAC-предикатами или ACL-exceptions.

    ABAC

    Когда подходит: Домены с комплаенсом: финансы, healthcare, govtech, где важны контекст и классификация данных.

    Где начинает болеть: Команды без governance для атрибутов и без тестируемого policy lifecycle.

    Граница: Нужны строгий словарь атрибутов, audit policy changes и инструменты explain/trace решений.

    ReBAC (Zanzibar)

    Когда подходит: Коллаборативные продукты: документы, репозитории, рабочие пространства, сложные shared-графы.

    Где начинает болеть: Малые системы, где граф отношений не окупает инфраструктурную сложность.

    Граница: Оправдан при большом числе relationship checks и необходимости консистентного глобального AuthZ-сервиса.

    В 2026 типичный production-подход: RBAC как каркас, ABAC как контекстные условия, ReBAC для shared-объектов, ACL как локальный override на ресурсе.

    Типичные антипаттерны

    Делать один 'god-role admin' и пытаться закрыть им все сценарии доступа.

    Смешивать бизнес-атрибуты и security-атрибуты без owner и без data contract.

    Строить ReBAC без explainability: пользователи не понимают, почему доступ есть или нет.

    Оставлять права после org-изменений (offboarding/role change) без автоматического revoke.

    Связанные главы

    References