Gérer les codes secrets d'une application

Cette page décrit certaines bonnes pratiques en matière de gestion des secrets pour les applications que vous déployez sur des clusters Google Kubernetes Engine ou GKE Enterprise à l'aide de Cloud Deploy.

L'injection de codes secrets d'application dans les artefacts de déploiement introduit un risque pour la sécurité. Par conséquent, évitez de gérer les secrets depuis les pipelines Cloud Deploy.

Les secrets utilisés de cette manière doivent être générés, gérés et alternés en dehors du champ d'application de Cloud Deploy.

Dans ce contexte, les secrets font référence à des données sensibles telles que les identifiants de base de données, les clés API, les certificats ou les mots de passe.

Secrets Kubernetes

Les secrets Kubernetes sont des objets sécurisés qui stockent des données sensibles, telles que les mots de passe, les jetons OAuth et les clés SSH dans les clusters, séparément des pods. Les secrets et les ConfigMaps sont similaires, mais ils sont destinés à contenir des données confidentielles.

Étant donné que les secrets Kubernetes ne sont pas sécurisés par défaut, sans chiffrement, les approches décrites dans ce document ne les utilisent pas.

Gérer les secrets à utiliser avec Cloud Deploy

Cette section explique comment gérer les secrets des applications que vous déployez à l'aide de Cloud Deploy.

Voici deux approches de la gestion des secrets avec GKE ou GKE Enterprise:

Google Secret Manager

Secret Manager est un service Google Cloud multirégional et entièrement géré qui stocke de manière sécurisée les clés API, les mots de passe et d'autres données sensibles.

Les secrets de Secret Manager sont accessibles depuis le cluster à l'aide de la bibliothèque cliente et de l'authentification Workload Identity, ou à l'aide du pilote CSI Secrets Store.

Pour utiliser Secret Manager pour votre application, procédez comme suit:

  1. Créez un secret à l'aide de Secret Manager.

  2. Référencez le code secret de votre code d'application à l'aide du SDK.

Vous pouvez spécifier des métadonnées supplémentaires pour le secret à l'aide de variables d'environnement, telles que la version du secret ou l'environnement d'application (par exemple, développement, préproduction et production).

Si le processus de déploiement d'une fonctionnalité spécifique inclut le provisionnement de l'infrastructure, créez ou mettez à jour le secret à l'aide de Secret Manager dans le cadre du processus de provisionnement, avant de déployer l'application.

Pour en savoir plus sur la gestion des secrets Kubernetes avec Secret Manager, consultez la page Utiliser Secret Manager avec d'autres produits .

HashiCorp Vault

Hashicorp Vault est un outil Open Source populaire et largement utilisé pour gérer les secrets. Google Cloud offre des intégrations et une compatibilité étendues pour Vault, ainsi que pour d'autres outils Hashicorp tels que Terraform.

Vous pouvez configurer Vault dans votre cluster Kubernetes comme suit:

  1. Accédez aux codes secrets Vault via l'API et authentifiez-vous à l'aide de Workload Identity.

  2. Injecter des secrets dans vos pods Kubernetes à l'aide de conteneurs d'agent Vault

  3. Utilisez le fournisseur CSI Vault pour utiliser ces secrets.

Étapes suivantes