Acceso Cross-Cuenta Mal Configurado
Tu política de confianza IAM usa un principal wildcard o permite que cuentas AWS desconocidas asuman tus roles, dejando que cuentas externas accedan a tus recursos.
Cómo Funciona
Los roles IAM cross-cuenta permiten que los principales de otra cuenta AWS asuman un rol en tu cuenta. Esto es legítimo para arquitecturas multi-cuenta, pero un Principal wildcard ('*') significa que CUALQUIER cuenta AWS en el mundo puede asumir el rol si conoce su ARN. Incluso un ID de cuenta específico que pertenece a un ex-proveedor o contratista se convierte en una puerta trasera después de que termina la relación comercial.
// MAL: política de confianza con principal wildcard (Terraform)
resource "aws_iam_role" "data_access" {
assume_role_policy = jsonencode({
Statement = [{
Effect = "Allow"
Principal = { AWS = "*" } // CUALQUIER cuenta AWS puede asumir este rol
Action = "sts:AssumeRole"
}]
})
}// BIEN: restringe a IDs de cuentas AWS específicas y de confianza
resource "aws_iam_role" "data_access" {
assume_role_policy = jsonencode({
Statement = [{
Effect = "Allow"
Principal = { AWS = "arn:aws:iam::123456789012:root" } // cuenta específica
Action = "sts:AssumeRole"
Condition = { StringEquals = { "sts:ExternalId" = var.external_id } }
}]
})
}Ejemplo Real
El problema del 'confused deputy' en AWS ocurre cuando una política de confianza wildcard deja que cualquier servicio o cuenta AWS asuma tu rol. Varios clientes de AWS encontraron que integraciones antiguas de proveedores dejaron roles IAM con políticas de confianza amplias — después de que terminó la relación con el proveedor, esos roles permanecieron como puertas traseras persistentes. AWS IAM Access Analyzer ahora detecta específicamente riesgos de acceso cross-cuenta.
Cómo Prevenirlo
- Siempre especifica ARNs exactos de cuentas AWS en Principal — nunca uses '*'
- Agrega una condición ExternalId para prevenir ataques de confused deputy al otorgar acceso cross-cuenta
- Audita todos los roles IAM con políticas de confianza cross-cuenta usando AWS IAM Access Analyzer
- Revisa y revoca el acceso cross-cuenta cuando terminen las relaciones con proveedores o socios
- Usa SCPs de AWS Organizations para forzar que los roles cross-cuenta requieran condiciones ExternalId
Tecnologías Afectadas
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
Bucket S3 con Acceso Público
criticalTu bucket de S3 es públicamente legible debido a un ACL público, configuración de Block Public Access deshabilitada o una política de bucket con wildcard — cualquiera en internet puede listar y descargar tus archivos.
SSRF a Metadata de Cloud
criticalTu app hace fetch de URLs proporcionadas por el usuario sin bloquear endpoints de metadata de cloud como 169.254.169.254, dejando a los atacantes robar tus credenciales cloud vía SSRF.
Credenciales AWS Hardcodeadas
criticalLas claves de acceso de AWS (que empiezan con AKIA) o las claves de acceso secretas están hardcodeadas en tu código fuente, dando a cualquiera que lea el código acceso completo a tu cuenta de AWS.
Política IAM Excesivamente Permisiva
highTu política IAM usa Action: '*' o Resource: '*', otorgando muchos más permisos de los necesarios y convirtiendo cualquier fuga de credenciales en una toma de control completa de la cuenta.