En Kubernetes, ¿cuál es la diferencia entre un ConfigMap y un Secret?
Opciones
- No hay diferencia entre ellos, aparte del nombre
- ConfigMap guarda configuración simple; Secret, valores sensibles (base64) (Opción correcta)
- ConfigMap guarda imágenes; Secret guarda los logs de los pods
- Un Secret se lee más rápido porque siempre está en memoria
Respuesta
ConfigMap guarda configuración no sensible; Secret guarda valores sensibles (contraseñas, tokens) con un tratamiento extra, pero solo está codificado en base64 salvo que actives el cifrado en reposo
Por qué
Ambos inyectan ajustes en los Pods como variables de entorno o archivos montados, para no fijarlos en la imagen.
- ConfigMap: ajustes simples (URLs, interruptores de funciones, nivel de log).
- Secret: contraseñas, API keys, certificados. El acceso se puede restringir con RBAC.
Importante: los Secrets solo están codificados en base64 por defecto, lo que no es cifrado. Activa el cifrado en reposo o usa un gestor externo (AWS Secrets Manager, Azure Key Vault) con un driver CSI o External Secrets.
Recuerda
ConfigMap = configuración. Secret = configuración sensible (aun así, protégela).