Questa pagina descrive alcune best practice per la gestione dei segreti per le applicazioni che distribuisci nei cluster Google Kubernetes Engine o GKE Enterprise utilizzando Cloud Deploy.
Poiché l'inserimento di secret delle applicazioni negli elementi 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 fanno riferimento a dati sensibili come credenziali di 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, separatamente 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.
Gestione dei secret per l'utilizzo 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 GKE Enterprise:
Google Secret Manager
Secret Manager è un servizio multiregione Google Cloud completamente gestito che archivia in modo sicuro chiavi API, password e altri dati sensibili.
Puoi accedere ai secret di Secret Manager dal cluster utilizzando l'autenticazione della libreria client e di Workload Identity o il driver CSI Secrets Store.
Per utilizzare Secret Manager per la tua applicazione:
Fai riferimento al segreto dal codice dell'applicazione utilizzando l'SDK.
Puoi specificare metadati aggiuntivi per il secret utilizzando le variabili di ambiente, ad esempio la versione del secret o l'ambiente dell'applicazione (ad esempio dev, staging, prod).
Se la procedura di deployment di una funzionalità specifica include il provisioning dell'infrastruttura, crea o aggiorna il secret utilizzando Secret Manager nell'ambito della procedura di provisioning prima di eseguire il deployment dell'applicazione.
Per ulteriori informazioni sulla gestione dei secret di Kubernetes con Secret Manager, consulta Utilizzo di Secret Manager con altri prodotti .
Hashicorp Vault
Hashicorp Vault è uno strumento open source molto popolare e ampiamente utilizzato per la gestione dei secret. Google Cloud offre un'ampia gamma di integrazioni e supporto per Vault, oltre ad altri strumenti Hashicorp come Terraform.
Puoi configurare Vault all'interno del tuo cluster Kubernetes come segue:
Accedi ai secret di Vault tramite l'API e autenticati utilizzando Workload Identity.
Invia i secret nei pod Kubernetes utilizzando i contenitori Vault Agent.
Utilizza il provider CSI Vault per consumere questi secret.
Passaggi successivi
Scopri di più sulle best practice di Secret Manager.
Leggi un post del blog sulle best practice per la sicurezza con HashiCorp Vault e Terraform su Google Cloud.
Scopri di più sulla configurazione di Vault su Google Cloud.