highCWE-269OWASP A01:2021

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.

Código Vulnerable
// 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"
    }]
  })
}
Código Seguro
// 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

Node.jsPython

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas