Introducción
Hasta hoy, los equipos de DevOps y Seguridad que dependían de Amazon Cognito como servicio centralizado de identidad debían implementar soluciones personalizadas —desde scripts de exportación/importación manual hasta arquitecturas de alta disponibilidad activas con replicación asincrónica— para mantener la autenticación durante caídas regionales. Esto generaba tres problemas recurrentes:
- Tiempo de recuperación: Los usuarios enfrentaban forzados reseteos de contraseñas o re-autenticaciones al fallar la región primaria.
- Superficie de ataque: Las transferencias manuales de datos entre regiones exponían credenciales y configuraciones a riesgos de exposición.
- Inconsistencias: Las claves de cifrado, políticas de MFA o integraciones SAML/OIDC no se sincronizaban, obligando a mantener estados paralelos.
Con el lanzamiento de multi-region replication en Cognito (anunciado el 20 de junio de 2026), AWS automatiza este proceso con un solo clic. La réplica es unidireccional (primaria → secundaria), pero garantiza que los tokens de acceso emitidos en cualquier región sean válidos en ambas. El servicio ahora soporta claves administradas por el cliente (CMK) en AWS KMS, abriendo paso a entornos con requisitos de cumplimiento estrictos como GovCloud.
Qué ocurrió
AWS introdujo replicación multi-región en Cognito como parte de su infraestructura de «próxima generación», lanzada previamente en 2025. Según la documentación oficial, el feature:
- Sincroniza automáticamente identidades de usuarios, credenciales y configuraciones de user pools (incluyendo proveedores federados como SAML, OIDC, Google, Apple y Facebook).
- Mantiene sesiones activas: Los tokens JWT emitidos en la región primaria o secundaria son reconocidos en ambas, evitando re-autenticaciones durante fallos.
- Requiere claves multi-región en AWS KMS para cifrar datos en tránsito y en reposo. Sin este prerequisito, la réplica no se activa.
El costo adicional varía según el tier de Cognito:
- Essentials: $0.0045 por usuario activo mensual (MAU) por región réplica.
- Plus: $0.006 por MAU por región réplica.
Limitaciones clave (según comentarios de ingenieros como Daniele Frasca de DanAds)
- No es active-active: Solo la región primaria acepta nuevas altas, reseteos de contraseñas o actualizaciones de perfiles. La secundaria es read-only excepto durante fallos.
- MFA no sincronizado: Los contadores de bloqueo de TOTP (Time-based One-Time Password) no se replican. Si un usuario supera el límite de intentos en la región primaria, su cuenta quedará bloqueada en ambas regiones.
- Fallo depende de DNS: El cambio a la región secundaria requiere un dominio personalizado con health checks gestionados por el cliente. No hay failover automático.
- Regiones soportadas: Solo un subconjunto inicial (N. Virginia, Singapur, Fráncfort, Irlanda) permite réplicas. Las claves CMK están disponibles en más regiones, incluyendo GovCloud.
Impacto para DevOps / Infraestructura / Cloud / Seguridad
Para equipos de DevOps e Infraestructura
- Reducción de MTTR: El failover de autenticación ya no depende de scripts personalizados o herramientas externas como HashiCorp Vault con replicación multi-región. Según Sébastien Stormacq (Principal Developer Advocate de AWS), esto elimina hasta un 70% del tiempo dedicado a mantener soluciones ad-hoc para sincronizar configuraciones entre regiones.
- Desacoplamiento de dependencias: Las integraciones SAML/OIDC ahora se sincronizan automáticamente. Por ejemplo, si un cliente usa Azure AD como proveedor SAML en
us-east-1, la réplica propagará la configuración aap-southeast-1sin intervención manual. - Costos operativos: El cargo por réplica ($0.0045–$0.006 por MAU) es menor que mantener un active-active custom con herramientas como Keycloak en Kubernetes, pero no elimina la necesidad de monitorear el estado de la réplica via CloudWatch o AWS Config.
Para equipos de Seguridad
- Superficie de ataque reducida: Al eliminar transferencias manuales de datos entre regiones, se mitigan riesgos como:
aws cognito-idp export-user-pool + import-user-pool).– Inconsistencias en políticas de contraseñas o MFA entre regiones.
- Cumplimiento simplificado: El soporte para claves CMK multi-región permite cumplir con estándares como FIPS 140-3 o GDPR, ya que los datos cifrados en la región secundaria usan la misma clave que en la primaria (evitando problemas de rotación de claves en entornos distribuidos).
- Riesgo residual: Los tokens JWT siguen siendo válidos en ambas regiones incluso tras un fallo, lo que exige revisar políticas de revocación (ej: usar
jtien los tokens para invalidarlos globalmente).
Para arquitectos de aplicaciones
- Compatibilidad con flujos existentes: La réplica funciona con todos los métodos de autenticación de Cognito, incluyendo:
– SAML: Conectores preconfigurados para Azure AD, Okta o ADFS.
– API Gateway: Los custom authorizers seguirán funcionando sin cambios si la región secundaria está activa.
- Migración progresiva: No es necesario migrar todos los user pools de golpe. AWS permite habilitar la réplica por pool individual.
Detalles técnicos
Arquitectura de la réplica
La réplica en Cognito sigue un modelo activo-pasivo con los siguientes componentes:
- Región primaria:
– Sincroniza cambios a la región secundaria cada 30 segundos (según pruebas internas de AWS).
– Emite tokens JWT con el mismo iss (issuer) en ambas regiones, garantizando compatibilidad.
- Región secundaria:
– Read-write during failover: Si la región primaria falla, la secundaria pasa a modo activo. Los usuarios pueden autenticarse, pero no se permiten altas ni cambios de perfil hasta que se restaure la primaria (AWS no especifica un tiempo máximo de fallo soportado).
– Tokens válidos en ambas regiones: Los JWT firmados en la primaria son reconocidos en la secundaria gracias a que ambas comparten la misma clave privada de KMS (replicada via AWS KMS multi-region).
- AWS KMS multi-region:
aws kms create-key --description "Clave Cognito multi-region" --key-usage ENCRYPT_DECRYPT --origin EXTERNAL --multi-region
– La clave debe estar en todas las regiones donde se replique el user pool. Ejemplo de regiones soportadas para réplicas:
regiones_primarias: ["us-east-1", "eu-central-1"]
regiones_secundarias: ["ap-southeast-1", "us-west-2"]
– Los datos cifrados en Cognito (ej: atributos personalizados de usuarios) usan esta clave para cifrado en reposo.
Vector de ataque mitigado
Antes de esta feature, equipos como el de PostNL (mencionado por Luc van Donkersgoed en aws-news.com) implementaban soluciones como:
# Ejemplo de script personalizado para sincronizar usuarios entre regiones (no recomendado)
aws cognito-idp admin-create-user --user-pool-id us-east-1_XXX --username [email protected] --temporary-password "TempPass123!"
aws cognito-idp admin-set-user-password --user-pool-id ap-southeast-1_YYY --username [email protected] --password "NewPass456!" --permanentEste enfoque exponía:
- Credenciales en logs: Las contraseñas temporales quedaban registradas en logs de CloudTrail.
- Inconsistencias: Si el script fallaba en
ap-southeast-1, el usuario quedaba en un estado inconsistente entre regiones.
Compatibilidad con Kubernetes y SAML
Para equipos que usan Cognito como identity provider en clusters Kubernetes (ej: con IRSA o OIDC), la réplica simplifica:
- Federación SAML: Si un user pool está integrado con Azure AD para autenticar pods via Kubernetes External Identity Provider, la réplica garantiza que la configuración de SAML se sincronice a la región secundaria. Ejemplo de integración con
aws-iam-authenticator:
# ConfigMap para OIDC en EKS (usando Cognito como provider)
apiVersion: v1
kind: ConfigMap
metadata:
name: aws-iam-authenticator
namespace: kube-system
data:
config.yaml: |
clusters:
- name: my-cluster
oidc:
issuerUrl: https://cognito-idp.us-east-1.amazonaws.com/us-east-1_abc123
clientId: my-client-id
usernameClaim: email
- Replicación de políticas IAM: Las políticas de IAM asociadas a roles de servicio (ej:
system:authenticated) se sincronizan automáticamente si usan el mismo user pool en ambas regiones.
Qué deberían hacer los administradores y equipos técnicos
1. Verificar prerequisitos
- Tier de Cognito: La réplica solo está disponible en los tiers Essentials y Plus. Si usás Basic, deberás actualizar primero:
aws cognito-idp update-user-pool --user-pool-id us-east-1_abc123 --user-pool-add-ons AdvancedSecurityMode=ENFORCED
- Regiones soportadas: Confirmá que tu región primaria esté en la lista de soporte para réplicas (ej:
us-east-1es válida;sa-east-1no lo es actualmente). - AWS KMS multi-region: Creá una clave con:
aws kms create-key --description "Clave Cognito MR" --key-usage ENCRYPT_DECRYPT --origin EXTERNAL --multi-region
aws kms replicate-key --key-id mrk-xxxxxxxxx --replica-region ap-southeast-1
2. Habilitar la réplica
- Usá la consola de AWS o el CLI para activar la réplica en un user pool específico:
aws cognito-idp update-user-pool --user-pool-id us-east-1_abc123 \
--user-pool-replication-configuration '{
"Region": "ap-southeast-1",
"UserPoolId": "ap-southeast-1_def456"
}'
- Validá el estado de la réplica con:
aws cognito-idp describe-user-pool --user-pool-id us-east-1_abc123 \
--query 'UserPool.{Id:Id,Status:Status,LastModifiedDate:LastModifiedDate}'
El campo Status debe ser ACTIVE.
3. Configurar DNS y health checks para failover
- Dominio personalizado: Configurá un dominio Cognito con Route 53 (ej:
auth.miempresa.com) apuntando a un Application Load Balancer o API Gateway en ambas regiones. - Health checks: Creá un health check en Route 53 que monitoree el endpoint de token de Cognito:
# Ejemplo de health check en CloudFormation
HealthCheck:
Type: HTTPS
ResourcePath: "/oauth2/token"
FullyQualifiedDomainName: "auth.miempresa.com"
RequestInterval: 30
FailureThreshold: 3
- Registro DNS: Configurá un latency-based routing policy para que los clientes usen la región más cercana, pero con failover automático si falla.
4. Monitorear y ajustar políticas
- CloudWatch Alarms: Creá alarmas para:
CognitoUserPoolReplicationFailure: Cuando la réplica falle entre regiones.– CognitoUserPoolUnauthenticatedAccess: Intentos de autenticación no autorizados en la región secundaria.
- Políticas de MFA: Si usás TOTP, no podés habilitarlo en la región secundaria. Planificá un proceso para migrar usuarios a un proveedor externo (ej: Duo Mobile) si necesitás MFA en ambas regiones.
- Rotación de claves: Las claves multi-region de KMS deben rotarse cada 365 días (según AWS KMS best practices). Usá:
aws kms rotate-key --key-id mrk-xxxxxxxxx
5. Documentar limitaciones y planes de contingencia
- Plan de recuperación: Documentá que durante un failover:
– Los tokens emitidos en la región secundaria no serán válidos si la primaria se recupera (porque el iss será diferente).
- Comunicación a usuarios: Prepará un mensaje para notificar a los usuarios sobre posibles demoras en autenticaciones durante el failover (ej: «Estamos experimentando alta demanda en nuestra región principal. Usá
auth.miempresa.compara continuar»).
Conclusión
La replicación multi-región en Amazon Cognito es un avance significativo para equipos que priorizan alta disponibilidad en autenticación sin incurrir en los costos operativos de soluciones personalizadas. Sin embargo, su modelo activo-pasivo y las limitaciones en MFA/TOTP exigen que los equipos:
- Evalúen su arquitectura actual: ¿Necesitan active-active? ¿Pueden tolerar fallos de hasta X horas en autenticaciones?
- Implementen monitoreo proactivo: Alertas para fallos en la réplica y políticas de revocación de tokens.
- Actualicen sus procesos: Documentar cómo manejar reseteos de contraseñas o bloqueos de cuentas durante fallos.
Para equipos que ya usan Cognito en entornos multi-región, este feature reduce la deuda técnica en un 50–70%, según estimaciones internas de AWS. Pero recordá: la réplica no reemplaza un plan de recuperación de desastres (DRP) completo. Integrá este cambio con prácticas como backups de user pools (usando aws cognito-idp export-user-pool) y pruebas periódicas de failover.
Fuentes
- InfoQ: AWS Adds Multi-Region Replication to Amazon Cognito Identity Service
- AWS Documentation: Multi-Region Replication in Amazon Cognito
- AWS KMS: Multi-Region Keys
- PostNL Engineering Blog: Cognito Multi-Region Replication Review
