Обновлено: 25 марта 2026 г. в 17:46

Access Control for Media App

medium

Классическая задача: RBAC/ABAC/ReBAC, policy decision point, audit trail и cache invalidation.

Авторизация в media-продукте - это не просто проверить токен, а применить entitlement policy к устройству, региону, подписке, времени и типу контента без разрушения latency.

Глава помогает разобрать policy evaluation, signed URLs, cache invalidation, DRM-adjacent controls и authorization decisions на high-traffic read path.

В интервью и design review этот кейс полезен тем, что проверяет понимание policy distribution, critical-path latency и корректности access decisions.

Pipeline Thinking

Критичны ingestion, partitioning, deduplication и задержки между стадиями обработки.

Serving Layer

Решения по индексам, cache locality и query path определяют пользовательскую latency.

Consistency Window

Явно фиксируйте, где допустима eventual consistency и где требуется stronger guarantees.

Cost vs Freshness

Балансируйте скорость обновления данных и стоимость вычислений/хранения.

Access Control for Media App - это кейс про построение отдельного authorization контура, где ключевые цели: predictable decision latency, explainability и безопасность по умолчанию. На интервью важно показать архитектуру PDP/PEP, стратегию revocation и контроль рисков privilege escalation.

Источник

Acing the System Design Interview

Глава 16: Design Access Control for Media App с фокусом на policy model и enforcement loop.

Читать обзор

Где применяется этот паттерн

  • Netflix / Spotify: разграничение доступа к контенту по региону, подписке и правам.
  • YouTube Studio: роли для creator-команд и granular rights на действия с медиа.
  • B2B media SaaS: tenant isolation и audit trail для enterprise клиентов.
  • Internal platform tools: policy-driven доступ сервисов и операторов к sensitive операциям.

Функциональные требования

Core Authorization API

  • POST /authorize - decision allow/deny + reason
  • POST /explain - объяснение применённых policy правил
  • POST /revoke - экстренный revoke access/token scope
  • GET /audit - поиск history по decision_id

Policy функции

  • RBAC как baseline + ABAC/ReBAC для контекстных/графовых сценариев
  • Versioned policy rollout с безопасной инвалидацией decision cache
  • Deny-by-default и fail-closed для критичных media операций
  • Полный audit trail: кто, что, когда и по какому правилу получил доступ

Нефункциональные требования

ТребованиеЦелевое значениеОбоснование
Decision latency (p95)< 20msAuthorization не должен быть bottleneck API path
Availability99.99%Падение authz контура блокирует критичные user actions
Revocation lag< 5 секБыстрое отключение скомпрометированных прав
Audit integrityImmutable logForensics и compliance расследования
Tenant isolationStrict boundaryЗащита от cross-tenant утечек и privilege escalation

High-Level Architecture

Теория

ACL/RBAC/ABAC/ReBAC

Модели контроля доступа и их практическое применение в распределённых системах.

Читать обзор

High-Level Architecture

PEP/PDP + policy store + audit/revocation loop

Схема разделяет decision path, policy control plane и аудит/revocation контур.

Client / Service
access request
API Gateway
entry policy
PEP
enforcement point
PDP
decision engine
Policy Store
versioned rules
Attribute Store
subject/resource
Decision Cache
short-lived
Audit Log
immutable decisions
SIEM / Alerts
anomaly detection
Revocation Service
emergency revoke

Контур авторизации отделяет hot decision path от policy control plane и поддерживает explainability, auditability и быстрый revoke при компрометации аккаунтов.

Write/Read Paths

Write/Read Paths

Как policy-изменения пишутся в control plane и как читается hot decision path.

Write path: policy/revocation изменения проходят в versioned store, затем выполняется cache invalidation и публикуются audit события.

Policy Change

Слой 1

admin/update request

Security/admin сервис отправляет update policy, role grants, revoke-события.

Policy Store

Слой 2

versioned write

Изменение фиксируется как новая policy_version c валидаторами rollout-правил.

Invalidate Cache

Слой 3

PEP/PDP sync

Распространяется invalidation в decision cache и edge enforcement точки.

Audit Stream

Слой 4

immutable events

События policy update и revoke записываются в immutable audit log/SIEM.

Enforcement Ready

Слой 5

new rules active

PEP/PDP работают на новой версии policy и применяют обновлённые решения.

Write path checkpoints

  • Каждое изменение policy должно иметь версию и автора (auditability by default).
  • Cache invalidation обязателен до завершения rollout, иначе появляются stale allow решения.
  • Revocation должен распространяться быстро и блокировать скомпрометированные сессии.

Консистентность policy и отказоустойчивость

Глубже

Identification, Authentication, Authorization

Границы authn/authz, token lifecycle и практические security-паттерны.

Читать обзор

Version-aware decision model

Решение должно всегда быть привязано к версии политики и контексту запроса:

decision = evaluate(subject, resource, action, context, policy_version)
cache_key = request_hash + policy_version
  • Policy version - защищает от stale decision cache
  • Reason code - обязателен для explainability и support
  • Deterministic evaluation - для воспроизводимости в audit

Safety controls

  • Fail-closed: критичные операции блокируются при недоступности PDP.
  • Emergency revoke: мгновенный invalidate active sessions/tokens.
  • Anomaly detection: алерты на всплеск denied/allow паттернов.
  • Policy rollout guards: canary и авто-rollback при росте отказов.

Риски и типовые ошибки

  • Authn/Authz mix-up: размытие границ ведёт к уязвимым bypass-сценариям.
  • Stale cache: долгоживущий decision cache после policy update.
  • No explain path: команда поддержки не может обосновать denied решение.
  • Weak revoke flow: задержка отзыва прав у скомпрометированного аккаунта.
  • Unlogged decisions: отсутствие forensic trail для security-инцидентов.

Что важно проговорить на интервью

  • Какая policy модель выбрана и почему для конкретного media домена (RBAC/ABAC/ReBAC mix).
  • Как обеспечивается консистентность decision cache при обновлении политик.
  • Как устроены fail-closed/fail-open сценарии для разных классов операций.
  • Какие security SLI мониторятся: decision latency, denied spike, revocation lag, audit coverage.

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

  • Identification, authentication, authorization - Базовые границы между AuthN и AuthZ, жизненный цикл токенов и практики построения identity-контура.
  • ACL/RBAC/ABAC/ReBAC - Сравнение моделей контроля доступа и критерии выбора policy-модели под media-домен.
  • API Security Patterns - Практики защиты API-поверхности, enforcement на gateway/service уровне и hardening access path.
  • Zero Trust - Подход least privilege, continuous verification и сегментация доверия в распределённых системах.
  • SRE Book - Надёжность и операционные guardrails для критичных authz-сервисов с жёсткими SLA.
  • Payment System - Сопоставление требований к идемпотентности, audit trail и fail-safe поведению в чувствительных контурах.

Чтобы отмечать прохождение, включи трекинг в Настройки