¿Dónde debe ir la contraseña de una base de datos en Kubernetes?
Opciones
- Dentro de la imagen del contenedor, para que siempre esté disponible
- En un ConfigMap, junto a los demás ajustes de la app
- En un Secret, idealmente de un gestor externo, como variable de entorno o archivo (Opción correcta)
- Escrita en el YAML del Deployment, guardado en git
Respuesta
En un Secret (idealmente respaldado por un gestor de secretos externo), inyectado como variable de entorno o archivo
Por qué
Los ConfigMaps son para ajustes normales; los Secrets, para valores sensibles, que se inyectan en los Pods como variables de entorno o archivos.
Nota: los Secrets de Kubernetes solo están codificados en base64 por defecto (no cifrados), así que activa el cifrado en reposo y restringe quién puede leerlos, o sincronízalos desde un gestor de secretos real (Vault, AWS Secrets Manager).
Nunca pongas contraseñas en la imagen ni en YAML subido a git.
Recuerda
Contraseñas → Secret, no ConfigMap, nunca en git.