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.
# 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
}# 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
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
Estado de Terraform Expuesto
criticalTu archivo terraform.tfstate está commiteado en tu repositorio o almacenado en un lugar sin cifrar y públicamente accesible — contiene cada secreto e ID de recurso en tu infraestructura.
Contenedor Kubernetes Privilegiado
highTu pod de Kubernetes corre con securityContext.privileged: true, dándole al contenedor acceso completo al kernel del host y efectivamente evitando el aislamiento del contenedor.
Cuenta de Servicio Predeterminada en Kubernetes
mediumLos pods que corren con la cuenta de servicio predeterminada heredan permisos RBAC a nivel de cluster que generalmente son mucho mas amplios de lo que el workload necesita, permitiendo movimiento lateral si el pod es comprometido.
Secretos en values.yaml de Helm Charts
highContrasenas, API keys y otros secretos estan hardcodeados directamente en archivos values.yaml de Helm, que se commitean al control de versiones y quedan expuestos a cualquiera con acceso al repositorio.