Gérer les codes secrets des applications

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Cette page décrit quelques bonnes pratiques de gestion des secrets pour les applications que vous déployez sur Google Kubernetes Engine ou sur des clusters Anthos à l'aide de Google Cloud Deploy.

L'injection de secrets d'application dans les artefacts de déploiement présente des risques de sécurité. Par conséquent, évitez de gérer les secrets depuis des 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 des identifiants de base de données, des clés API, des certificats ou des 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, indépendamment 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 Google Cloud Deploy

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

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

Google Secret Manager

Secret Manager est un service multirégional et entièrement géré de Google Cloud qui stocke de manière sécurisée les clés API, les 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 Secret Store.

Pour utiliser Secret Manager pour votre application:

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

  2. Référencez le code secret issu 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 de secret ou l'environnement d'application (par exemple, 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 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 une intégration et une compatibilité étendues avec Vault, ainsi que d'autres outils HashiCor, tels que Terraform.

Vous pouvez configurer Vault dans votre cluster Kubernetes comme suit:

  1. accéder aux secrets Vault via l'API et s'authentifier à l'aide de Workload Identity ;

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

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

Étapes suivantes