Gestire i secret delle applicazioni

Questa pagina descrive alcune best practice per la gestione dei secret per le applicazioni che esegui il deployment in Google Kubernetes Engine o nei cluster collegati GKE 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 di Cloud Deploy.

I secret utilizzati in questo modo devono essere generati, gestiti e sottoposti a rotazione 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 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 progettati per contenere dati riservati.

Poiché i secret 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 collegati GKE:

Google Secret Manager

Secret Manager è un servizio multiregionale completamente gestito Google Cloud 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:

  1. Crea un secret utilizzando Secret Manager.

  2. Fai riferimento al secret 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 sviluppo, staging, 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 saperne di più sulla gestione dei secret Kubernetes con Secret Manager, consulta Utilizzare Secret Manager con altri prodotti .

Hashicorp Vault

Hashicorp Vault è uno strumento open source popolare e ampiamente utilizzato per la gestione dei secret. Google Cloud Ha integrazioni e supporto estesi per Vault, insieme ad altri strumenti Hashicorp come Terraform.

Puoi configurare Vault all'interno del cluster Kubernetes nel seguente modo:

  1. Accedi ai secret di Vault tramite l'API ed esegui l'autenticazione utilizzando Workload Identity.

  2. Inserisci i secret nei pod Kubernetes utilizzando i container dell'agente Vault.

  3. Utilizza il provider CSI di Vault per utilizzare questi secret.

Passaggi successivi