En esta página, se describen algunas prácticas recomendadas para administrar secretos en aplicaciones que implementas en clústeres de Google Kubernetes Engine o GKE Enterprise con Cloud Deploy.
Debido a que insertar secretos de aplicaciones en artefactos de implementación presenta riesgos de seguridad, evita administrarlos desde las canalizaciones de Cloud Deploy.
Los Secrets que se consumen de esta manera deben generarse, administrarse y rotarse fuera del alcance de Cloud Deploy.
En este contexto, los secretos hacen referencia a datos sensibles, como credenciales de bases de datos, claves de API, certificados o contraseñas.
Secretos de Kubernetes
Los Secrets de Kubernetes son objetos seguros que almacenan datos sensibles, como contraseñas, tokens de OAuth y claves SSH en tus clústeres, separados de los Pods. Los Secrets son similares a los ConfigMaps, pero están diseñados para mantener datos confidenciales.
Debido a que los Secrets de Kubernetes no son seguros de forma predeterminada, sin encriptación, los enfoques que se describen en este documento no los usan.
Administra secretos para usar con Cloud Deploy
En esta sección, se describe cómo administrar los secretos de las aplicaciones que implementas con Cloud Deploy.
Los siguientes son dos enfoques de la administración de secretos con GKE o GKE Enterprise:
Google Secret Manager
Secret Manager es un servicio multirregional y completamente administrado de Google Cloud 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 con la biblioteca cliente y la autenticación de Workload Identity, o mediante el controlador CSI de Secret Store.
Si deseas usar Secret Manager para tu aplicación, haz lo siguiente:
Haz referencia al secreto del código de tu aplicación con el SDK.
Puedes especificar metadatos adicionales para el secreto mediante variables de entorno, por ejemplo, la versión del secreto o el entorno de aplicaciones (como desarrollo, etapa de pruebas y producción).
Si el proceso de implementación para una función específica incluye el aprovisionamiento de infraestructura, crea o actualiza el secreto mediante Secret Manager como parte del proceso de aprovisionamiento antes de implementar la aplicación.
Para obtener más información sobre la administración de Secrets de Kubernetes con Secret Manager, consulta Usa Secret Manager con otros productos .
HashiCorp Vault
Hashicorp Vault es una herramienta de código abierto popular y muy usada para administrar secretos. Google Cloud tiene una amplia integración y compatibilidad con Vault, junto con otras herramientas de Hashicorp, como Terraform.
Puedes configurar Vault dentro de 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.
Incorpora secretos en los Pods de Kubernetes con los contenedores del agente de Vault.
Usa el proveedor de CSI de Vault para consumir esos secretos.
¿Qué sigue?
Obtén 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.
Obtén más información sobre la administración de Secrets en GKE.
Obtén más información para configurar Vault en Google Cloud.