Cette page décrit quelques bonnes pratiques pour gérer les secrets des applications que vous déployez sur des clusters Google Kubernetes Engine ou GKE Entreprise à l'aide de Cloud Deploy.
Étant donné que l'injection de secrets d'application dans les artefacts de déploiement présente des risques de sécurité, évitez de gérer les secrets à partir des pipelines Cloud Deploy.
Les secrets consommés de cette manière doivent être générés, gérés et remplacés en dehors du champ d'application de Cloud Deploy.
Dans ce contexte, les secrets désignent 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 des mots de passe, des jetons OAuth et des 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.
É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 Cloudentièrement géré et multirégional 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 à 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:
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, par exemple la version du secret ou l'environnement de l'application (par exemple, "dev", "staging" ou "prod").
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 la gestion des secrets. Google Cloud propose de nombreuses intégrations et prend en charge Vault, ainsi que d'autres outils Hashicorp tels que Terraform.
Vous pouvez configurer Vault dans votre cluster Kubernetes comme suit:
Accédez aux secrets Vault via l'API et authentifiez-vous à l'aide de Workload Identity.
Injectez des secrets dans vos pods Kubernetes à l'aide de conteneurs Agent Vault.
Utilisez le fournisseur CSI Vault pour consommer ces secrets.
Étape suivante
Découvrez les bonnes pratiques de Secret Manager.
Lisez un article de blog sur les bonnes pratiques de sécurité à suivre avec HashiCorp Vault et Terraform sur Google Cloud.