En esta página se describen algunas prácticas recomendadas para gestionar secretos de aplicaciones que despliegues en clústeres de Google Kubernetes Engine o GKE Enterprise con Cloud Deploy.
Como la inyección de secretos de aplicaciones en artefactos de despliegue conlleva riesgos de seguridad, no gestiones los secretos desde las canalizaciones de Cloud Deploy.
Los secretos que se consuman de esta forma deben generarse, gestionarse y rotarse fuera del ámbito de Cloud Deploy.
En este contexto, los secretos son datos sensibles, como credenciales de bases de datos, claves de API, certificados o contraseñas.
Secretos de Kubernetes
Los secretos de Kubernetes son objetos seguros que almacenan datos sensibles, como contraseñas, tokens de OAuth y claves SSH en tus clústeres, por separado de los pods. Los secretos son similares a los ConfigMaps, pero están diseñados para contener datos confidenciales.
Como los secretos de Kubernetes no son seguros de forma predeterminada, sin cifrado, los métodos descritos en este documento no los usan.
Gestionar secretos para usarlos con Cloud Deploy
En esta sección se describe cómo gestionar los secretos de las aplicaciones que despliegues con Cloud Deploy.
A continuación, se describen dos enfoques para gestionar secretos con GKE o GKE Enterprise:
Secret Manager de Google
Secret Manager es un servicio multirregión Google Cloud totalmente gestionado que almacena de forma segura claves de API, contraseñas y otros datos sensibles.
Se puede acceder a los secretos de Secret Manager desde el clúster mediante la biblioteca de cliente y la autenticación de Workload Identity, o bien mediante el controlador CSI de Secrets Store.
Para usar Secret Manager en tu aplicación, sigue estos pasos:
Haz referencia al secreto desde el código de tu aplicación con el SDK.
Puedes especificar metadatos adicionales para el secreto mediante variables de entorno, como la versión del secreto o el entorno de la aplicación (por ejemplo, desarrollo, preproducción o producción).
Si el proceso de implementación de una función específica incluye el aprovisionamiento de infraestructura, crea o actualiza el secreto con Secret Manager como parte del proceso de aprovisionamiento antes de implementar la aplicación.
Para obtener más información sobre cómo gestionar secretos de Kubernetes con Secret Manager, consulta Usar Secret Manager con otros productos .
HashiCorp Vault
HashiCorp Vault es una herramienta de código abierto popular y muy utilizada para gestionar secretos. Google Cloud tiene numerosas integraciones y ofrece asistencia para Vault, así como para otras herramientas de HashiCorp, como Terraform.
Puedes configurar Vault en tu clúster de Kubernetes de la siguiente manera:
Accede a los secretos de Vault a través de la API y autentícate con Workload Identity.
Inserta secretos en tus pods de Kubernetes mediante contenedores de Vault Agent.
Usa el proveedor de CSI de Vault para consumir esos secretos.
Siguientes pasos
Consulta más información sobre las prácticas recomendadas de Secret Manager.
Lee una entrada de blog sobre las prácticas recomendadas de seguridad con HashiCorp Vault y Terraform en Google Cloud.
Consulta más información sobre la gestión de secretos en GKE.
Consulta información sobre cómo configurar Vault en Google Cloud.