RBAC: administración de roles y permisos
1) Objetivos y principios del RBAC
Objetivo: Hacer que el acceso sea manejable, verificable y de alcance mínimo para proteger el dinero/PII y el cumplimiento (GDPR/AML/PCI/ISO).
Principios: Privilegio Least· Need-to-Know· Separación de Duties (SoD)· Confianza Cero· Revocabilidad (revisión rápida)· Audiencia (probabilidad).
2) Taxonomía de derechos y roles
Tipos de derechos (permissions):- Datos: 'READ', 'WRITE', 'NAT', 'DELETE', 'MASKED _ READ' (por defecto para PII).
- Операции: `APPROVE_WITHDRAWAL`, `CHANGE_FRM_RULE`, `KYC_DECISION`, `SANCTIONS_OVERRIDE`.
- Админ: `ROLE_UPDATE`, `USER_PROVISION`, `SECRET_ROTATE`, `BREAK_GLASS`.
- Integraciones: 'API _ CALL:', 'WEBHOOK _ SIGN', 'SERVICE _ CONFIG _ UPDATE'.
- Core (сквозные): `employee_basic`, `viewer_internal`, `auditor_privacy`.
- Доменные: `support_agent`, `vip_manager`, `payments_ops`, `aml_officer`, `kyc_operator`, `fraud_analyst`, `rg_specialist`, `bi_analyst`.
- Sistemas/esos: 'devops _ admin', 'dba _ admin', 'service _ account _', 'read _ only _ prod'.
- Privilegiados (vía PAM/JIT): 'break _ glass _ admin', 'prod _ db _ jit _ editor'.
3) Diseño de roles (role engineering)
1. Inventario de recursos: sistemas/tablas/endpoints, clases de datos (Public/Internal/Confidential/Restricted/Highly Restricted).
2. Historias de usuario por funciones: quién hace qué y por qué (purpose).
3. Mapping tareas → permissions: conjunto mínimo para cada función.
4. Agrupar en un rol: un rol = un dominio de responsabilidad; evitar los «superroles».
5. Pruebas de SoD: comprobación de incompatibilidades (por ejemplo, 'payments _ ops' ≠ 'fraud _ rule _ admin').
6. Piloto y medición: emitimos a un grupo limitado temporalmente, recogemos el rastro de auditoría.
7. Versioning: Cada cambio de rol es a través de la AMB con changelog.
4) Interacción RBAC ↔ ABAC ↔ SoD
RBAC responde «quien en principio puede», ABAC - «en qué condiciones» (medio, geo, dispositivo/MDM, tiempo, nivel KYC, 'purpose').
SoD prohíbe las combinaciones peligrosas de roles y requiere 4 eyes para acciones críticas.
Práctica: los roles predeterminados dan MASKED_READ a PII; el acceso no enmascarado requiere el atributo 'purpose' + JIT y una decisión positiva de la política ABAC.
5) Multiarrendamiento y geo-contexto
Tenant-scope: los roles están vinculados al arrendamiento/marca/jurisdicción ('role: payments _ ops @ EEA').
Geo-keys: claves de cifrado individuales y segmentos de acceso por región (EC/UK/...).
Granularidad: filtrar por la columna 'region _ code' (RLS) y por la jurisdicción del jugador.
6) Fila/Columna-Nivel Seguridad y enmascaramiento
Estrategia:- RLS (strings): sólo accede a los registros de tu país/marca/equipo.
- CLS (columnas): los campos sensibles están disponibles enmascarados; sin enmascarar - sólo con el privilegio 'pii _ unmask' + 'purpose'.
sql
CREATE POLICY rls_tx
ON dwh. transactions
USING (region_code = current_setting('app. region'));
SELECT
CASE WHEN has_priv('pii_unmask') THEN email ELSE mask_email(email) END AS email_view
FROM dwh. users;
7) JIT, break-glass и PAM в RBAC
JIT: papel privilegiado temporal (15-120 min) bajo ticket; autocontrol; auditoría completa.
Break-glass: acceso de emergencia con MFA + segunda confirmación y registro de sesión; post-rugido con Security + DPO.
PAM: almacén de secretos, proxy de sesión, rotación de contraseñas/claves.
8) Ciclo de vida de roles (SOP)
SOP-1: Crear o modificar un rol
1. La interpelación del propietario del dominio → la lista de las tareas → mapping permissions → el SoD-cheque → el piloto → CAB → la puesta en venta + la documentación.
SOP-2: Solicitud y emisión de acceso
1. Solicitud (IDM/ITSM) con 'purpose' y período de → auto-verificación de SoD/jurisdicción → aprobación del propietario de datos + Seguridad (para Restringido +) → emisión (a menudo JIT) → entrada en el registro.
SOP-3: Revisión/offboarding
Desencadenantes: despido, cambio de rol, inactividad> 30/60 días, JIT caducado.
Revocación automática y registro.
SOP-4: Re-certificación
Trimestralmente, los propietarios confirman que los roles de usuario siguen siendo necesarios; el sistema quita los derechos «colgantes».
9) Ejemplo de matriz de roles (fragmento)
10) Herramientas e implementación (patrones)
Directorio de roles como código: YAML/JSON en repositorio + validadores CI, changelog.
IdP/SSO Central: SCIM-providening, mappings grupales 'group → role'.
Punto de decisión de política: motor de políticas (ABAC) con atributos de contexto.
Secrets/KMS: aislamiento de claves por entorno/región/tenant.
Gateway de datos: una sola capa de enmascaramiento/auditoría para DWH/BI/exportaciones.
SIEM/SOAR: correlación 'ROLE _ UPDATE '/' READ _ PII '/' NAT _ DATA', tickets automáticos.
11) Auditoría y registro
Обязательные события: `ROLE_ASSIGN`, `ROLE_REVOKE`, `ROLE_UPDATE`, `BREAK_GLASS`, `JIT_GRANT`, `READ_PII`, `EXPORT_DATA`, `PAYMENT_APPROVE`, `KYC_DECISION`.
Requisitos: copia WORM, hash chain, firma de paquetes, 'purpose '/' ticket _ id' en cada evento, sincronización de tiempo.
12) Métricas y KPI/KRI
Cobertura:% de los sistemas bajo RBAC ≥ 95%.
SoD violations: = 0; intentos de asignar roles incompatibles - auto-bloque.
Tasa JIT: ≥ 80% de los aumentos van como JIT.
Offboarding TTR: revocación de derechos ≤ 15 min.
Masked reads ratio: ≥ 95% de los accesos a PII están enmascarados.
Recuperación: 100% de los roles se confirman trimestralmente.
Exports signed: 100% de las exportaciones con firma/registro.
13) RACI (ampliado)
14) Hojas de cheques
Antes de crear un rol
- Descripted user-stories y 'purpose'
- Lista de recursos y clases de datos
- Mapping permissions mínimos
- SoD-validación/conflictos
- Política de enmascaramiento y RLS/CLS
- Plan de re-certificación y propietarios
Antes de emitir el acceso
- Fixan 'purpose' y fecha límite
- SoD/jurisdicción/MDM/MFA cumplidos
- Enmascaramiento predeterminado, JIT cuando se eleva
- El diario y la fecha de la revisión están incluidos
15) Errores frecuentes y anti-patrones
«Superroly» con derechos amplios en lugar de dominios pequeños.
Acceso directo a PII sin enmascaramiento y 'purpose'.
Falta de SoD/cuarto ojo para 'PAYMENT _ APPROVE '/' KYC _ APPROVE'.
Extensión de los derechos temporales «para siempre».
Copia los datos de prod en dev/stage.
Exportaciones opacas sin firma ni registro.
16) Hoja de ruta para la implementación
Semanas 1 a 2: inventario de recursos/clasificación de datos; matriz de roles en negrita; Tabla SoD.
Semanas 3-4: RBAC como código (repositorio), grupos IdP/SCIM, motor ABAC (atributos básicos: entorno/geo/MDM/tiempo), JIT/PAM, capa de enmascaramiento para DWH/BI.
Mes 2: re-certificación, automatización offboarding, SOAR-alerta para infracciones RBAC/SoD/ABAC, registros de exportación/WORM.
Mes 3 +: extensión de atributos (riesgo del dispositivo, nivel KYC), auditorías de acceso bias, optimización de costos y ejercicios regulares de tabletop.
TL; DR
RBAC fuerte = pequeños roles de dominio + condiciones de atributos (ABAC) + SoD y JIT/PAM + enmascaramiento y RLS/CLS + auditoría dura y re-certificación. Esto reduce el riesgo de fugas/abusos, acelera la auditoría y mantiene la plataforma dentro de los límites de los requisitos de privacidad y cumplimiento.