Questa pagina descrive alcune best practice per la gestione dei secret per le applicazioni di cui esegui il deployment nei cluster Google Kubernetes Engine o GKE Enterprise mediante Cloud Deploy.
Poiché l'inserimento di secret dell'applicazione negli artefatti di deployment comporta rischi per la sicurezza, evita di gestire i secret dalle pipeline di Cloud Deploy.
I secret utilizzati in questo modo dovrebbero essere generati, gestiti e ruotati al di fuori dell'ambito di Cloud Deploy.
I secret, in questo contesto, fanno riferimento a dati sensibili come credenziali del database, chiavi API, certificati o password.
Secret Kubernetes
I secret di Kubernetes sono oggetti sicuri in cui sono archiviati dati sensibili, come password, token OAuth e chiavi SSH nei cluster, separati dai pod. I volumi Secret sono simili ai volumi 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 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 GKE Enterprise:
Google Secret Manager
Secret Manager è un servizio Google Cloud multiregionale e completamente gestito che archivia in modo sicuro chiavi API, password e altri dati sensibili.
È possibile accedere ai secret di Secret Manager dal cluster utilizzando l'autenticazione della libreria client e di Workload Identity oppure utilizzando il driver CSI dell'archivio secret.
Per utilizzare Secret Manager per la tua applicazione:
Fai riferimento al secret del 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 di applicazione (ad es. sviluppo, gestione temporanea e produzione).
Se il processo di deployment per una funzionalità specifica include il provisioning dell'infrastruttura, crea o aggiorna il secret utilizzando Secret Manager come parte del processo di provisioning, prima di eseguire il deployment dell'applicazione.
Per ulteriori informazioni 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 offre integrazioni e assistenza complete 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 ed esegui l'autenticazione utilizzando Workload Identity.
Inserisci i secret nei tuoi pod Kubernetes utilizzando i container agente Vault.
Utilizza il provider CSI di Vault per utilizzare i secret.
Passaggi successivi
Scopri di più sulle best practice di Secret Manager.
Leggi un post del blog sulle best practice per la sicurezza con l'utilizzo di HashiCorp Vault e Terraform su Google Cloud.