criticalCWE-798OWASP A02:2021

Credenciales de Proveedor Terraform Hardcodeadas

Las credenciales de AWS, GCP o Azure están hardcodeadas en tus archivos .tf en lugar de usar variables de entorno o roles de instancia, commiteando claves de acceso cloud al control de versiones.

Cómo Funciona

Las configuraciones de proveedor de Terraform necesitan credenciales cloud para crear infraestructura. La manera incorrecta — hardcodear access_key y secret_key directamente en el bloque del proveedor — commitea esas credenciales a tu repo. La manera correcta es usar variables de entorno (AWS_ACCESS_KEY_ID, etc.) que el proveedor recoge automáticamente, manteniendo las credenciales completamente fuera de tu código.

Código Vulnerable
# MAL: credenciales cloud hardcodeadas en la config del proveedor de Terraform
provider "aws" {
  region     = "us-east-1"
  access_key = "AKIAIOSFODNN7EXAMPLE"          # hardcodeado — nunca hagas esto
  secret_key = "wJalrXUtnFEMI/K7MDENG/bPxRfi"  # visible en el historial de git para siempre
}
Código Seguro
# BIEN: el proveedor usa variables de entorno automáticamente
provider "aws" {
  region = "us-east-1"
  # Sin credenciales aquí — configura AWS_ACCESS_KEY_ID y AWS_SECRET_ACCESS_KEY
  # en tu entorno, secretos de CI, o usa un rol de instancia IAM
}

Ejemplo Real

Este es la versión específica de Terraform del mismo error que los desarrolladores cometen con el código de aplicación. El escaneo de secretos de GitHub ahora alerta sobre cadenas con prefijo AKIA en archivos .tf, pero la alerta llega después del push — después de que las credenciales ya están en el historial de git y potencialmente en los logs.

Cómo Prevenirlo

  • Nunca agregues access_key o secret_key a los bloques de proveedor — usa variables de entorno en su lugar
  • En CI/CD, almacena las credenciales cloud como secretos cifrados del pipeline (GitHub Actions Secrets, etc.)
  • Para AWS, usa federación OIDC para dejar que GitHub Actions asuma un rol IAM sin credenciales estáticas del todo
  • Agrega archivos *.tfvars que puedan contener credenciales a .gitignore
  • Escanea tus archivos .tf con tfsec o Checkov como parte de tu pipeline de CI para capturar esto antes de mergear

Tecnologías Afectadas

Node.jsPython

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas