Gestion des codes secrets d'application

Cette page décrit les bonnes pratiques à suivre pour gérer les secrets des applications que vous déployez sur GKE à l'aide de Google Cloud Deploy.

L'injection de secrets d'applications dans des artefacts de déploiement entraîne des risques de sécurité. Évitez donc de gérer les secrets depuis les pipelines Google 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 Google 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 vos clusters, séparément des pods. Les secrets sont semblables aux ConfigMaps, mais sont destinés à contenir des données confidentielles.

Les secrets Kubernetes ne sont pas sécurisés par défaut, sans chiffrement. Les approches décrites dans ce document ne les utilisent donc pas.

Gérer les secrets à utiliser avec Google Cloud Deploy

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

Voici deux approches pour la gestion des secrets dans GKE:

Secret Manager de Google

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

Vous pouvez accéder aux secrets de Secret Manager à partir du cluster GKE à l'aide de l'authentification via la bibliothèque cliente et Workload Identity, ou à l'aide des commandes Pilote CSI de 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 secret à partir du code de votre 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 d'un secret ou l'environnement d'application (développement, préproduction ou 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 GKE avec Secret Manager, consultez la page Utiliser Secret Manager avec d'autres produits.

HashiCorp Vault

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

Vous pouvez configurer Vault dans votre cluster Kubernetes comme suit:

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

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

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

Étape suivante