Utilizzo della crittografia dei secret sempre attiva

Google Distributed Cloud versione 1.10 supporta la crittografia dei secret senza la necessità di un KMS (Key Management Service) esterno o di altre dipendenze.

Tieni presente la seguente limitazione relativa ai cluster avanzati:

  • Versione 1.31: la crittografia dei secret sempre attiva non è supportata nei cluster avanzati.
  • Versione 1.32 e successive: la crittografia sempre attiva è supportata nei cluster avanzati.

Abilita la crittografia dei secret sempre attiva

La crittografia dei secret sempre attiva funziona generando automaticamente una chiave di crittografia utilizzata per criptare i secret prima che vengano archiviati nel database etcd per quel cluster. I secret vengono criptati utilizzando una chiave di crittografia dei dati (DEK) generata per ogni scrittura di secret. Questa DEK viene utilizzata in modalità AES-GCM per criptare l'oggetto Secret. La DEK è a sua volta criptata con una chiave di crittografia della chiave (KEK). L'algoritmo di crittografia è A256GCM (AES GCM con chiave a 256 bit).

La versione della chiave è un numero di versione che indica la chiave attualmente in uso.

Puoi abilitare la crittografia dei secret dopo la creazione di un cluster.

  • Per il cluster di amministrazione:

    1. Modifica il file di configurazione del cluster di amministrazione per aggiungere la sezione secretsEncryption.

    2. Esegui il comando gkectl update.

      gkectl update admin --config ADMIN_CLUSTER_CONFIG_FILE --kubeconfig ADMIN_CLUSTER_KUBECONFIG
  • Per un cluster utente:

    1. Modifica il file di configurazione del cluster utente per aggiungere la sezione secretsEncryption.

    2. Esegui il comando gkectl update.

      gkectl update cluster --config USER_CONFIG_FILE --kubeconfig ADMIN_CLUSTER_KUBECONFIG

Sostituisci quanto segue:

  • ADMIN_KUBECONFIG con il percorso del file kubeconfig del cluster di amministrazione.
  • ADMIN_CLUSTER_CONFIG con il percorso del file di configurazione del cluster di amministrazione.
  • USER_CLUSTER_CONFIG con il percorso del file di configurazione del cluster utente.

I comandi gkectl update forniti in questa sezione possono essere utilizzati anche per altri aggiornamenti al cluster corrispondente.

Archiviazione delle chiavi

Le chiavi di crittografia per il cluster di amministrazione sono archiviate sul disco dati del cluster di amministrazione. Questo disco è montato sulla macchina master amministratore in /opt/data e le chiavi di crittografia si trovano in /opt/data/gke-k8s-kms-plugin/generatedkeys/. Queste chiavi devono essere sottoposte a backup per mantenere l'accesso ai secret criptati utilizzati dalla chiave. Devi attivare la crittografia di VM/archiviazione nell'hypervisor o misure simili per garantire che i dischi delle VM del control plane siano protetti.

Rotazione chiave

Per ruotare una chiave di crittografia esistente per un cluster, incrementa keyVersion nel file di configurazione del cluster di amministrazione o nel file di configurazione del cluster utente corrispondente ed esegui il comando gkectl update appropriato. Viene creata una nuova chiave corrispondente al nuovo numero di versione, ogni secret viene nuovamente criptato e quello precedente viene cancellato in modo sicuro. Tutti i nuovi secret successivi vengono criptati utilizzando la nuova chiave di crittografia.

Disabilita la crittografia dei secret sempre attiva

Per disabilitare la crittografia dei secret in un cluster esistente, aggiungi un campo disabled: true. Quindi, esegui il comando gkectl update corrispondente. Questo aggiornamento decripta ogni secret esistente e lo memorizza in testo normale. Tutti i nuovi secret successivi vengono archiviati in testo normale.

secretsEncryption:
  mode: GeneratedKey
  generatedKey:
    keyVersion: KEY_VERSION
    disabled: true