Questa pagina descrive alcune best practice per la gestione dei secret per le applicazioni che esegui il deployment su Google Kubernetes Engine o sui cluster GKE collegati utilizzando Cloud Deploy.
Poiché l'inserimento di secret dell'applicazione negli artefatti di deployment introduce rischi per la sicurezza, evita di gestire i secret dalle pipeline Cloud Deploy.
I secret utilizzati in questo modo devono essere generati, gestiti e ruotati al di fuori dell'ambito di Cloud Deploy.
In questo contesto, i secret si riferiscono a dati sensibili come credenziali del database, chiavi API, certificati o password.
Secret Kubernetes
I secret di Kubernetes sono oggetti sicuri che archiviano dati sensibili, come password, token OAuth e chiavi SSH nei cluster, separati dai pod. I secret sono simili ai ConfigMap, ma sono destinati a contenere dati riservati.
Poiché i secret di Kubernetes non sono sicuri per impostazione predefinita, senza crittografia, gli approcci descritti in questo documento non li utilizzano.
Gestire i secret da utilizzare con Cloud Deploy
Questa sezione descrive come gestire i secret per le applicazioni di cui esegui il deployment utilizzando Cloud Deploy.
Di seguito sono riportati due approcci alla gestione dei secret con GKE o cluster GKE allegati:
Google Secret Manager
Secret Manager è un servizio multiregionale Google Cloudcompletamente gestito che archivia in modo sicuro chiavi API, password e altri dati sensibili.
È possibile accedere ai secret di Secret Manager dal cluster utilizzando la libreria client e l'autenticazione Workload Identity oppure utilizzando il driver CSI Secrets Store.
Per utilizzare Secret Manager per la tua applicazione:
Fai riferimento al secret dal codice dell'applicazione utilizzando l'SDK.
Puoi specificare metadati aggiuntivi per il secret utilizzando variabili di ambiente, ad esempio la versione del secret o l'ambiente dell'applicazione (ad esempio dev, staging, prod).
Se il processo di deployment per una funzionalità specifica include il provisioning dell'infrastruttura, crea o aggiorna il secret utilizzando Secret Manager nell'ambito del processo di provisioning, prima di eseguire il deployment dell'applicazione.
Per saperne di più sulla gestione dei secret Kubernetes con Secret Manager, consulta Utilizzo di Secret Manager con altri prodotti .
Hashicorp Vault
Hashicorp Vault è uno strumento open source popolare e ampiamente utilizzato per la gestione dei secret. Google Cloud Dispone di ampie integrazioni e supporto per Vault, insieme ad altri strumenti Hashicorp come Terraform.
Puoi configurare Vault all'interno del tuo cluster Kubernetes nel seguente modo:
Accedi ai secret di Vault tramite l'API ed esegui l'autenticazione utilizzando Workload Identity.
Inserisci i secret nei pod Kubernetes utilizzando i container Vault Agent.
Utilizza il provider CSI Vault per utilizzare questi secret.
Passaggi successivi
Scopri di più sulle best practice di Secret Manager.
Leggi un post del blog sulle best practice per la sicurezza che utilizzano HashiCorp Vault e Terraform su Google Cloud.
Scopri di più sulla configurazione di Vault su Google Cloud.