Administra los secretos de la aplicación

En esta página, se describen algunas prácticas recomendadas para administrar secretos de aplicaciones que implementas en Google Kubernetes Engine o clústeres de GKE Enterprise con Cloud Deploy.

Debido a que inyectar secretos de aplicación en los artefactos de implementación ingresa riesgos de seguridad, evita administrar secretos desde las canalizaciones de Cloud Deploy.

Los secretos consumidos 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 secretos 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 contener 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 usarlos 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 para la administración de secretos con GKE o GKE Enterprise:

Google Secret Manager

Secret Manager es un servicio Google Cloud multirregional y completamente administrado que almacena de forma segura claves de API, contraseñas y otros datos sensibles.

Se puede acceder a los secretos desde Secret Manager desde el clúster mediante la autenticación de la biblioteca cliente y Workload Identity, o mediante el comando Controlador de CSI de Secrets Store.

Si deseas usar Secret Manager para tu aplicación, haz lo siguiente:

  1. Crea un secreto mediante Secret Manager.

  2. 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, 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.

Si deseas obtener más información para administrar secretos 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:

  1. Accede a los secretos de Vault a través de la API y autentícate con Workload Identity.

  2. Incorpora secretos en los Pods de Kubernetes con los contenedores del agente de Vault.

  3. Usa el Proveedor de CSI de Vault para consumir esos secretos.

¿Qué sigue?