Skip to main content

Access Flows — El Motor de Apono

En artículos anteriores, vimos cómo el Inventory cataloga los recursos, cómo los Scopes segmentan lo que cada flujo puede alcanzar y cómo funcionan los permisos internamente. Ahora llegamos a la pieza que conecta todo: el Access Flow.

El Access Flow es donde defines quién puede solicitar acceso, a qué, con qué aprobación, por cuánto tiempo y con qué permisos. Es el motor de Apono — sin él, el inventario es solo un catálogo de lectura y los Scopes son filtros sin propósito.

Anatomía de un Access Flow

Todo Access Flow se compone de cinco elementos fundamentales:

Cada uno de estos elementos es una decisión de seguridad. Detallemos cada uno.

1. Quién Solicita (Requesters)

Define qué usuarios o grupos pueden solicitar acceso a través de este flow. La configuración se realiza apuntando a grupos del Identity Provider (IdP) — como Entra ID, Okta o Google Workspace.

Buenas prácticas:

  • Usa grupos del IdP, no usuarios individuales. Si un ingeniero sale del equipo, basta con eliminarlo del grupo en el IdP y pierde automáticamente el acceso a todos los flows asociados.
  • Granulariza por función. En lugar de un grupo genérico "Ingeniería", usa grupos como "Backend", "Data", "SRE". Esto permite crear flows diferentes con permisos adecuados para cada función.
  • Evita el grupo "Todos". Un flow disponible para toda la organización es casi siempre excesivo. Incluso en ambientes de desarrollo, restringe por equipo.

En la configuración de los requesters, Apono permite elegir entre grupos propios de Apono o grupos del Identity Provider (IdP). Siempre que sea posible, prefiere grupos del IdP — ya reflejan la estructura organizacional, son gestionados por el equipo de identidad y se actualizan automáticamente cuando alguien entra o sale de un equipo. Los grupos internos de Apono pueden ser útiles para casos puntuales, pero crear una estructura paralela de grupos genera duplicidad y riesgo de divergencia.

2. A Qué Puede Acceder (Scope + Permisos)

Aquí entran los dos elementos que definen la superficie de acceso:

  • Scope — qué recursos están disponibles para este flow (definido en el artículo anterior)
  • Permisos — qué nivel de acceso se concederá sobre esos recursos

Los permisos varían por tipo de recurso. Algunos ejemplos:

RecursoPermisos ComunesCuándo Usar
EC2SSM Session (shell)Troubleshooting, debugging
RDSSELECT onlyConsulta de datos, investigación
RDSFull Access (CRUD)Migraciones, correcciones puntuales
S3ReadOnlyDescarga de logs, análisis
S3ReadWriteSubida de archivos, correcciones
IAMViewOnlyAuditoría, investigación

La combinación de Scope + Permisos es lo que determina el blast radius real del flow. Un Scope amplio con permisos restringidos (ej: todos los RDS de dev, solo SELECT) puede ser aceptable. Un Scope restringido con permisos amplios (ej: un RDS específico, Full Access) también. El peligro está en Scope amplio con permisos amplios.

3. Cómo se Aprueba (Approval Policy)

La política de aprobación define qué sucede cuando alguien solicita acceso por este flow. Apono ofrece diferentes modelos:

Auto-aprobación

El acceso se concede automáticamente, sin intervención humana. El solicitante hace clic, espera unos segundos y ya tiene acceso.

Cuándo usar:

  • Ambientes de desarrollo y sandbox
  • Recursos de bajo riesgo con permisos restringidos
  • Escenarios donde la velocidad importa más que el control individual

Cuándo evitar:

  • Cualquier recurso de producción
  • Recursos con datos sensibles, independientemente del ambiente

Aprobación por gestor o responsable

Una o más personas necesitan aprobar la solicitud antes de que se conceda el acceso. El aprobador recibe una notificación (email, Slack o Teams) con los detalles de la solicitud.

Cuándo usar:

  • Ambientes de staging y producción
  • Recursos con datos internos o de baja criticidad en producción

Buenas prácticas para aprobadores:

  • Cuando hay un único aprobador, generalmente es el manager directo del equipo — el responsable que conoce el contexto del trabajo y sabe si la solicitud tiene sentido.
  • Define más de un aprobador para evitar bloqueos cuando el manager está ausente (vacaciones, licencia, zona horaria diferente). Un respaldo evita que el equipo quede parado esperando aprobación.
  • Elige aprobadores con contexto técnico sobre los recursos — un gestor de producto aprobando acceso a una base de datos es un control frágil
  • Para recursos críticos, considera incluir a alguien del equipo de security o compliance/GRC como aprobador adicional

Múltiples aprobadores para recursos críticos

Para recursos de alta criticidad, la estrategia es configurar múltiples aprobadores en el mismo flow — por ejemplo, el gestor del equipo, el DBA y alguien de compliance. Apono notifica a todos y cualquiera de ellos puede aprobar o denegar.

Cuándo usar:

  • Acceso a datos PII en producción
  • Modificaciones en IAM Roles o políticas de seguridad
  • Ambientes regulados (PCI-DSS, HIPAA, SOC 2)
  • Cualquier escenario donde el equipo de GRC exige trazabilidad formal

La idea es que cuanto más crítico el recurso, más personas deben tener visibilidad sobre la solicitud. Incluso si solo un aprobador es necesario para conceder el acceso, el hecho de que múltiples personas sean notificadas aumenta la probabilidad de que alguien cuestione una solicitud indebida.

Punto de atención: actualmente, cuando un flow tiene múltiples aprobadores, todos reciben la notificación de aprobación al mismo tiempo. En la práctica, esto genera un broadcast innecesario — especialmente cuando el primer aprobador ya resolvió la solicitud en segundos y los demás reciben una notificación que ya no tiene utilidad. Lo ideal sería una lógica de escalamiento: notificar al aprobador primario primero y, si no responde dentro de un tiempo configurable, escalar a los demás. Esto reduciría el ruido y evitaría la fatiga de notificación que, con el tiempo, hace que los aprobadores ignoren las alertas.

Cómo Funciona la Estructura de Aprobadores

Apono permite configurar la aprobación en capas con lógica flexible. Cada flow puede tener múltiples grupos de aprobadores, y cada grupo puede contener una o más personas (o un grupo completo del IdP). La lógica de aprobación funciona en dos niveles:

Dentro de cada grupo de aprobadores:

  • Cualquiera (OR) — basta con que una persona del grupo apruebe para que el grupo se considere aprobado. Útil para grupos donde cualquier miembro tiene autoridad equivalente (ej: cualquier SRE del equipo).
  • Todos ellos (AND) — todas las personas del grupo necesitan aprobar. Útil cuando cada miembro aporta una perspectiva diferente que debe considerarse (ej: el DBA y el responsable de la aplicación).

Entre los grupos de aprobadores:

La misma lógica se aplica entre los grupos. Si el flow tiene Aprobador 1 (gestor) y Aprobador 2 (security):

  • Cualquiera (OR) — basta con que un grupo apruebe
  • Todos ellos (AND) — ambos grupos necesitan aprobar

Ejemplo práctico:

Flow: Acceso RDS Producción PII

Aprobador 1: Equipo de Data (cualquiera)
- María (DBA)
- Juan (DBA)

Aprobador 2: Security (cualquiera)
- Ana (Security Engineer)
- Carlos (Security Lead)

Lógica entre grupos: Todos ellos (AND)

En este ejemplo, cualquier DBA puede aprobar por el grupo 1, y cualquier persona de security puede aprobar por el grupo 2 — pero los dos grupos necesitan aprobar para que el acceso sea concedido. Esto combina agilidad (no depende de una persona específica) con rigor (dos áreas diferentes validan).

4. Por Cuánto Tiempo (Duration)

La duración define por cuánto tiempo el acceso permanece activo tras la aprobación. Cuando el tiempo expira, Apono revoca automáticamente los permisos — sin depender de acción manual.

Aunque Apono es una herramienta de Just-in-Time Access, hay que ser pragmático con la duración. En un mundo ideal, todo acceso sería lo más corto posible. En la práctica, si el manager necesita aprobar el mismo acceso 5 veces al día para la misma persona en los mismos recursos, el control se convierte en burocracia — y el aprobador comienza a aprobar automáticamente, lo que derrota el propósito de la herramienta.

La regla es simple: la duración debe ser proporcional al riesgo del recurso. Recursos de uso diario en ambientes de bajo riesgo deben tener duraciones más largas para evitar fricción. Recursos críticos de producción deben tener duraciones cortas, aunque generen más solicitudes — porque en esos casos, cada solicitud merece ser evaluada.

EscenarioDuración SugeridaJustificación
Dev / Sandbox (uso diario)1-7 díasEl ingeniero usa los mismos recursos durante toda la semana. Duraciones de una semana con posibilidad de extensión evitan solicitudes repetitivas sin ganancia de seguridad
Staging (uso frecuente)4-8 horasAmbiente intermedio — menos sensible que producción, pero el acceso no necesita ser permanente
Troubleshooting en producción2-6 horasAmbiente crítico, acceso puntual. La duración corta se justifica por el riesgo
Consulta de datos PII30 min - 1 horaDatos sensibles exigen ventana mínima, independientemente del ambiente
Deploy o migración2-4 horasOperación planificada con inicio y fin definidos
Break-glass (incidente)30 min - 1 horaEmergencia — el mínimo para contener y diagnosticar

La fricción excesiva es enemiga de la seguridad. Cuando el proceso es demasiado pesado para tareas rutinarias, las personas buscan atajos — piden credenciales a colegas, mantienen sesiones abiertas o presionan para obtener accesos permanentes. Un flow con duración generosa en dev y auto-aprobación es más seguro que un flow restrictivo que nadie quiere usar.

Para recursos críticos de producción y datos sensibles, las duraciones cortas son innegociables. En esos casos, el costo de la fricción compensa: cada solicitud genera un registro de auditoría, y el aprobador tiene la responsabilidad real de evaluar si ese acceso tiene sentido.

El ingeniero también puede finalizar el acceso manualmente antes de que expire el tiempo, si termina la tarea antes. Esta es una buena práctica que el equipo de seguridad puede incentivar — y que refuerza la cultura de privilegio mínimo sin depender solo de temporizadores automáticos.

Los valores anteriores son sugerencias, no reglas absolutas. La duración ideal depende mucho del momento que la empresa está viviendo. Organizaciones con equipos de seguridad maduros y aprobadores dedicados pueden trabajar con ventanas más cortas. Pero empresas menores o en fase de adopción de Apono pueden necesitar duraciones mucho más largas — hasta 1 mes en algunos casos — simplemente porque no hay suficientes personas para evaluar solicitudes con frecuencia. Si nadie aprueba, las personas quedan bloqueadas y no pueden trabajar — y eso es peor que un acceso con mayor duración.

El equilibrio correcto se encuentra con el tiempo. Comienza con duraciones más generosas, monitorea el uso y ajusta conforme la madurez del proceso de aprobación aumenta.

5. Dónde Solicitar (Portal / Slack / Teams)

El Access Flow es accesible por todos los canales configurados en Apono:

  • Portal Web — el dashboard de Apono, interfaz completa con todos los detalles
  • Slack — vía ChatOps, solicitud y aprobación directamente en el chat
  • Microsoft Teams — misma experiencia que Slack para organizaciones que usan Teams

Independientemente del canal, el flow es el mismo. La diferencia es dónde interactúa el solicitante — lo que importa es reducir la fricción para que el desarrollador use Apono en lugar de buscar atajos.

Estructurando Flows en la Práctica

La estructura de los flows debe reflejar la realidad de la organización. No existe un modelo único, pero existen patrones que funcionan bien.

Patrón 1: Un Flow por Combinación de Equipo + Ambiente + Recurso

Es el modelo más granular y seguro. Cada flow tiene un propósito claro:

FlowRequestersScopeAprobaciónDuraciónPermisos
Backend → EC2 DevBackendec2-devAuto8hSSM Session
Backend → EC2 ProdBackendec2-prodGestor + SRE2hSSM Session
Data → RDS DevDatards-devAuto4hFull Access
Data → RDS Prod (PII)Datards-prod-piiGestor + DBA + Compliance1hSELECT
SRE → EC2 ProdSREec2-prodGestor4hSSM Session
Data → S3 Prod (sensible)Datas3-prod-sensitiveGestor + Security1hReadOnly

Ventaja: Control total sobre cada combinación. Cada flow es auditable individualmente.

Desventaja: El número de flows crece con la combinación de equipos × ambientes × recursos. En organizaciones grandes, puede llegar a decenas de flows.

Patrón 2: Flows Agrupados por Caso de Uso

Agrupa flows por escenario de negocio en lugar de por recurso individual:

FlowRequestersScopes IncluidosAprobaciónDuración
Troubleshooting DevBackend + Dataec2-dev, rds-dev, s3-devAuto4h
Troubleshooting ProdBackend + SREec2-prod, rds-prod-internalGestor + SRE2h
Análisis de DatosDatards-prod-pii, s3-prod-sensitiveGestor + Compliance1h
AuditoríaSecurity + ComplianceTodos los scopes ReadOnlyAuto2h

Ventaja: Menos flows que gestionar. Refleja cómo los equipos realmente trabajan.

Desventaja: Menos granularidad. Un flow de "Troubleshooting Prod" puede incluir recursos que no siempre son necesarios para la tarea específica.

¿Qué Patrón Elegir?

En la práctica, la mayoría de las organizaciones usa una combinación de ambos:

  • Patrón 1 para recursos críticos (producción, PII, IAM) — control granular donde importa
  • Patrón 2 para ambientes de bajo riesgo (dev, sandbox) — simplicidad donde el riesgo es menor

Lo importante es que la estructura sea revisada periódicamente. Los equipos cambian, los recursos se crean y eliminan, y la organización puede necesitar nuevos flows o ajustar los existentes.

Break-Glass: Acceso de Emergencia

No todo acceso sigue el flujo estándar. En incidentes críticos — como una caída de producción a las 3 de la mañana — esperar una cadena de aprobación no es viable. Para estos escenarios, Apono permite configurar flows de break-glass.

Un flow break-glass tiene características específicas:

  • Auto-aprobación o aprobación mínima — el acceso se concede inmediatamente o con un único aprobador
  • Duración corta — 30 minutos a 1 hora, el mínimo para contener el incidente
  • Scope restringido — solo los recursos necesarios para diagnóstico y mitigación
  • Notificación amplia — el equipo de security, gestores y compliance son notificados inmediatamente de que un acceso break-glass fue utilizado
  • Auditoría reforzada — toda acción durante el acceso se registra para revisión posterior

El break-glass no es un atajo para evitar el proceso de aprobación. Es un flow formal, auditado y monitorizado. La diferencia es que la verificación sucede después del acceso, no antes. Cualquier uso de break-glass debe generar una revisión post-incidente documentada.

Justificación en la Solicitud

Una característica importante de los Access Flows es la posibilidad de exigir que el solicitante proporcione una justificación al pedir acceso. Esta justificación queda registrada en la auditoría y ayuda al aprobador a tomar una decisión más informada.

Buenas prácticas:

  • Exige justificación en todos los flows de producción. Incluso si el aprobador no las lee todas, el registro existe para auditoría.
  • Vincula a tickets o incidentes. Incentiva a los solicitantes a incluir el número del ticket (Jira, ServiceNow, PagerDuty) en la justificación. Esto crea trazabilidad entre el acceso y el motivo de negocio.
  • En flows de auto-aprobación en dev, la justificación puede ser opcional para reducir fricción.

Errores Comunes

1. Un flow para todo

Crear un único Access Flow genérico que sirve para todos los equipos y todos los recursos. En la práctica, esto equivale a no tener segmentación — y toda la seguridad depende exclusivamente del aprobador.

2. Mismo aprobador para todo

Usar el mismo gestor como aprobador de todos los flows. Además de crear un cuello de botella (si está ausente, nadie es aprobado), el aprobador sufre de fatiga de aprobación — aprueba todo sin evaluar porque el volumen es demasiado alto.

3. No usar Scopes

Crear flows apuntando directamente a la integración sin Scope. Ya detallamos este problema en el artículo sobre Scopes — sin Scope, el solicitante ve todos los recursos y el blast radius de una aprobación es toda la integración.

4. Ignorar el break-glass

No tener un flow de emergencia hace que, en incidentes, las personas busquen atajos — como usar credenciales compartidas, pedir acceso permanente a un administrador o eludir Apono por completo. Un flow break-glass formal es más seguro que la improvisación.

5. No revisar flows periódicamente

Flows creados hace meses pueden estar desactualizados: equipos cambiaron, recursos fueron decomisionados, aprobadores dejaron la empresa. Una revisión trimestral de los flows es el mínimo recomendado — y el equipo de GRC o compliance debe estar involucrado en esta revisión.

Ciclo de Vida de una Solicitud

Para cerrar, acompañemos el ciclo completo de una solicitud de acceso por un Access Flow:

Cada etapa de este ciclo genera un registro de auditoría en Apono — quién solicitó, cuándo, por qué, quién aprobó, cuánto tiempo duró y cuándo fue revocado. Esta pista de auditoría es fundamental para compliance e investigaciones de seguridad.