Принцип минимально необходимых прав
1) Цель и определение
Цель: допускать пользователя/сервис только к тем ресурсам, которые строго необходимы для выполнения конкретной задачи, на минимально достаточный срок и в минимальном объеме.
Определение: «минимум по широте (ресурсы), глубине (операции), времени (TTL), контексту (гео/устройство/смена), чувствительности (PII/финансы)».
2) Базовые принципы реализации
1. Need-to-Know: каждое право связано с конкретным purpose (основанием).
2. Time-Bound: повышенные права предоставляются с TTL (JIT); постоянные права — только read/masked.
3. Scope-Bound: доступ ограничен по аренде/региону/бренду/проекту (tenant/region scoping).
4. Data-Minimization: PII по умолчанию маскирована; de-mask — только при явном основании.
5. Traceability: любой доступ → журнал + `purpose`/`ticket_id`.
6. Revocability: быстрый отзыв (offboarding ≤ 15 минут, JIT — автоотзыв).
3) Связь с другими контролями
RBAC: задает кто в принципе может (базовая роль).
ABAC: уточняет в каких условиях (гео, устройство/MDM, время, уровень KYC, риск).
SoD: запрещает опасные комбинации ролей, требует 4-eyes для чувствительных действий.
Сегментация: сетевые/логические периметры (платежный, KYC, DWH, секреты).
PAM/JIT/break-glass: безопасная выдача временных привилегий и их запись.
4) Классификация ресурсов и операций
Операции: `READ`, `MASKED_READ` (по умолчанию для PII), `WRITE` (scoped), `APPROVE_` (4-eyes), `EXPORT` (только через витрины, подпись/журнал).
5) Инженерия прав «от задачи к доступу»
1. User Story → Purpose: «Аналитику нужно построить отчет конверсии по ЕС без PII».
2. Перечень ресурсов: витрина `agg_conversions_eu`.
3. Операции: `READ` (без PII), запрет `EXPORT_RAW`.
4. Контекст ABAC: рабочие часы, корп-VPN/MDM, регион=EU.
5. TTL: постоянный masked-read; JIT для разового демаскирования (если требуется).
6. Журналы: `READ`/`EXPORT` с `purpose` и `fields_scope`.
6) Маскирование и выборочная демаскировка
Маскирование e-mail/телефона/IBAN/PAN по умолчанию;
Немаскированный доступ (`pii_unmask`) — только JIT + `purpose` + подтверждение владельца домена/Compliance;
В отчетах — агрегаты/к-анонимность, запрет «малых выборок» (privacy thresholds).
7) Временные привилегии: JIT и break-glass
JIT: 15–120 минут, под тикет, автоотзыв, полный аудит.
Break-glass: аварийный доступ (MFA + второе подтверждение, запись сессии, пост-ревью Security+DPO).
PAM: сейф секретов, сессионный прокси, ротация привилегий.
8) Процессы (SOP)
8.1 Выдача доступа (IDM/ITSM)
1. Заявка с `purpose`, ресурсами, TTL/постоянством.
2. Автопроверка SoD/юрисдикции/класса данных/контекстов.
3. Одобрение владельца домена; для Restricted+ — Security/Compliance.
4. Выдача минимального скоупа (часто masked-read).
5. Запись в реестр прав: дата пересмотра, SLA отзыва.
8.2 Ре-сертификация (quarterly)
Владелец домена подтверждает каждую роль/группу; неиспользуемые права (>30/60 дней) — автоотзыв.
8.3 Экспорт данных
Только через одобренные витрины; белые списки форматов; подпись/хэш; журнал выгрузок; PII — по умолчанию обезличена.
9) Контроль вендоров/субпроцессоров
Минимальные скопы API, отдельные ключи per интеграция, allow-list IP, окна времени.
DPA/SLA: роли, журналы доступов, ретеншн, география, инциденты, субпроцессоры.
Оффбординг: отзыв ключей, подтверждение удаления, акт закрытия.
10) Аудит и мониторинг
Журналы: `ROLE_ASSIGN/REVOKE`, `JIT_GRANT`, `READ_PII`, `EXPORT_DATA`, `PAYMENT_APPROVE`, `BREAK_GLASS`.
SIEM/SOAR: алерты на доступ без `purpose`, аномальные объемы, выход за окно времени/гео, нарушение SoD.
WORM: неизменяемая копия журналов + хэш-цепи/подписи.
11) Метрики зрелости (KPI/KRI)
Coverage: % критичных систем под RBAC/ABAC ≥ 95%.
Masked Reads Ratio: ≥ 95% обращений к PII — маскированы.
JIT Rate: ≥ 80% повышений прав идут как JIT.
Offboarding TTR: отзыв прав ≤ 15 мин.
Exports Signed: 100% экспортов подписаны и зажурналены.
SoD Violations: = 0; попытки — авто-блок/тикет.
Dormant Access Cleanup: ≥ 98% «висячих» прав удаляются в течение 24 ч.
12) Типовые сценарии
A) Разовый просмотр KYC для VIP-клиента
Базово: masked-read у VIP-менеджера.
Действие: JIT-доступ `pii_unmask` на 30 мин по тикету, запись полей/скрин-лог, пост-ревью.
B) Инженеру нужен доступ к prod-БД
Только через PAM + JIT ≤ 60 мин, записанная сессия, запрет `SELECT ` по PII, пост-ревью и CAPA при нарушениях.
C) BI-отчет с разрезом по стране
Доступ к агрегатам без PII; фильтр ABAC: `region in [EEA]`, корп-VPN/MDM, время 08:00–21:00.
13) Анти-паттерны и как их избегать
«Суперроли»/наследование без границ → дробить на доменные роли, включать ABAC.
Постоянные привилегии «на всякий случай» → JIT + автоотзыв.
Копирование prod-данных в dev/stage → псевдонимизация/синтетика.
Экспорт PII вне витрин → белые списки, подпись, журнал, маскирование.
Отсутствие `purpose` → жесткий блок и авто-тикет.
14) RACI (укрупненно)
15) Чек-листы
15.1 Перед выдачей доступа
- Указан `purpose` и TTL
- Проверка SoD/юрисдикций пройдена
- Маскирование по умолчанию, минимальный скоуп
- Условия ABAC: сеть/устройство/время/регион
- Журналирование и дата пересмотра настроены
15.2 Ежеквартально
- Ревизия ролей/групп, автоотзыв «висячих» прав
- Проверка аномальных экспортов и break-glass
- Подтвержденное обучение по приватности/безопасности
16) Дорожная карта внедрения
Недели 1–2: инвентаризация данных/систем, классификация, базовая матрица ролей, включение маскирования по умолчанию.
Недели 3–4: ABAC (среда/гео/MDM/время), JIT и PAM, белые списки экспортов, журналы `purpose`.
Месяц 2: автоматизация offboarding, SOAR-алерты (без `purpose`/аномалии), квартальная ре-сертификация.
Месяц 3+: расширение атрибутов (уровень KYC/риск устройства), privacy thresholds, регулярные tabletop-учения.
TL;DR
Least Privilege = минимальный скоуп + маскирование PII + контекст ABAC + JIT/PAM + жесткий аудит и быстрый отзыв. Делает доступ управляемым, снижает риск утечек/мошенничества и ускоряет прохождение аудитов.