Ruotare le chiavi di crittografia del disco di avvio di etcd e del control plane


.

Questa pagina mostra come ruotare le chiavi di crittografia del disco di avvio di etcd e del piano di controllo che hai configurato per l'autorità del piano di controllo GKE. Questa pagina è rivolta agli amministratori dei cluster e agli ingegneri della sicurezza.

Prima di leggere questa pagina, acquisisci familiarità con i seguenti concetti dell'autorità del control plane GKE:

Pianificare le rotazioni delle chiavi

Questa pagina mostra come ruotare i seguenti componenti delle credenziali nel tuo control plane:

  • La chiave di crittografia per etcd e i dischi di avvio del control plane.
  • La chiave di crittografia per il backup interno di etcd che Google Cloud utilizza per il ripristino di emergenza.

Puoi anche ruotare le autorità di certificazione (CA) gestite dal cliente e le chiavi di firma del account di servizio che configuri con l'autorità del control plane GKE. Per maggiori informazioni, consulta Ruotare le CA e le chiavi di firma del control plane gestito dal cliente.

Le chiavi in Cloud Key Management Service (Cloud KMS) non scadono. Se la tua organizzazione ha un requisito di sicurezza perrotazione della chiavei, ruotale manualmente. Per ridurre al minimo le interruzioni dei carichi di lavoro in esecuzione, non configurare la rotazione automatica delle chiavi per queste chiavi.

Quando ruoti le chiavi di crittografia per i dischi di avvio del piano di controllo e per etcd, GKE crea un nuovo disco criptato utilizzando la nuova chiave. Per i cluster regionali, questa operazione non comporta tempi di inattività a causa del control plane replicato. Per i cluster zonali, il control plane non è disponibile finché non è disponibile il nuovo disco.

Prima di iniziare

Prima di iniziare, assicurati di aver eseguito le seguenti operazioni:

  • Attiva l'API Google Kubernetes Engine.
  • Attiva l'API Google Kubernetes Engine
  • Se vuoi utilizzare Google Cloud CLI per questa attività, installala e poi inizializza gcloud CLI. Se hai già installato gcloud CLI, scarica l'ultima versione eseguendo gcloud components update.
  • Avere un cluster esistente che utilizza la crittografia del disco di avvio del control plane e di etcd

  • Identifica gli ID progetto dei seguenti Google Cloud progetti:

    • Progetto chiave: il progetto che contiene le risorse Cloud KMS.
    • Progetto cluster: il progetto che contiene il cluster GKE.
  • Per eseguire le attività di convalida in questa pagina, verifica che l'audit log di accesso ai dati DATA_READ sia abilitato per l'API Cloud Key Management Service (KMS). Per ulteriori informazioni, vedi Abilitare gli audit log di accesso ai dati.

Ruoli e autorizzazioni richiesti

Per ottenere le autorizzazioni necessarie per ruotare le chiavi e le CA gestite dal cliente, chiedi all'amministratore di concederti i seguenti ruoli IAM:

Per ulteriori informazioni sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Limitazioni

Puoi aggiornare i cluster alle nuove versioni delle chiavi esistenti, ma non puoi aggiornare i cluster in modo che utilizzino chiavi completamente nuove per queste operazioni di crittografia.

Concedi ruoli IAM all'agente di servizio GKE

Per ruotare le chiavi di crittografia per i dischi di avvio ed etcd, concedi il ruolo Utente chiave di crittografia KMS di Kubernetes Engine (roles/container.cloudKmsKeyUser) per le chiavi di crittografia nel progetto delle chiavi all'agente di servizio GKE nel progetto del cluster:

gcloud kms keys add-iam-policy-binding KCP_DISK_KEY_NAME \
    --keyring=KEYRING_NAME \
    --location=LOCATION \
    --member="serviceAccount:service-CLUSTER_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com" \
    --role=roles/container.cloudKmsKeyUser \
    --project=KEY_PROJECT_ID

Sostituisci quanto segue:

  • KCP_DISK_KEY_NAME: il nome della chiave di crittografia per i dischi di avvio del control plane e i dischi etcd.
  • KEYRING_NAME: il nome delle chiavi automatizzate che contengono la chiave.
  • LOCATION: la Google Cloud posizione delle chiavi automatizzate. Deve corrispondere alla località del cluster. Per un elenco delle regioni, filtra per "Regione" nella tabella delle località Cloud KMS.
  • CLUSTER_PROJECT_NUMBER: il numero di progetto numerico del progetto cluster.
  • KEY_PROJECT_ID: l'ID progetto del tuo progetto chiave.

Ruota la chiave per i dischi di avvio di etcd e del control plane

  1. Crea una nuova versione della chiave primaria per il disco di avvio e la chiave di crittografia etcd:

    gcloud kms keys versions create \
        --key=KCP_DISK_KEY_NAME \
        --keyring=KEYRING_NAME \
        --location=LOCATION \
        --project=KEY_PROJECT_ID \
        --primary
    

    Potrebbero essere necessari fino a 10 minuti per la propagazione delle modifiche nel progetto.

  2. Trova la versione patch corrente del control plane del cluster:

    gcloud container clusters describe CLUSTER_NAME \
        --location=LOCATION \
        --format='value(currentMasterVersion)'
    

    Sostituisci quanto segue:

    • CLUSTER_NAME: il nome del tuo cluster GKE.
    • LOCATION: la posizione del control plane del cluster GKE, ad esempio us-central1.
  3. Esegui l'upgrade del control plane del cluster alla stessa versione già in uso.

    gcloud container clusters upgrade CLUSTER_NAME \
        --master \
        --location=LOCATION \
        --cluster-version=CONTROL_PLANE_VERSION \
        --project=CLUSTER_PROJECT_ID
    

    Sostituisci quanto segue:

    • CONTROL_PLANE_VERSION: la versione del control plane del cluster dall'output del passaggio precedente.
    • CLUSTER_PROJECT_ID: l'ID progetto del tuo progetto cluster.

Al termine dell'operazione di upgrade del control plane, il cluster utilizza la nuova versione della chiave per criptare i dischi di avvio del control plane e tutti i dischi etcd.

Ruotare la chiave di crittografia del backup interno di etcd

Questa sezione mostra come ruotare la chiave di crittografia per il backup interno di etcd, che Google Cloud viene utilizzato per scopi di ripristino di emergenza. Puoi configurare la rotazione automatica per questa chiave, ma ti consigliamo di eseguire la rotazione manuale. Dopo la rotazione della chiave, il cluster utilizza la nuova versione della chiave per criptare i nuovi backup interni di etcd.

I backup interni di etcd utilizzano la versione chiave primaria e vengono eseguiti ai seguenti intervalli:

  • Ogni 30 minuti per i cluster di zona.
  • Ogni 10 minuti per i cluster Autopilot e i cluster Standard regionali.

Dopo aver ruotato la chiave, non disattivare o eliminare immediatamente la versione precedente. Attendi che sia trascorso un tempo sufficiente per consentire a GKE di creare nuovi backup interni di etcd che utilizzano la nuova versione della chiave.

  • Crea una nuova versione della chiave primaria per la chiave di crittografia del backup interno di etcd:

    gcloud kms keys versions create \
        --key=ETCD_BACKUP_KEY_NAME \
        --keyring=KEYRING_NAME \
        --location=LOCATION \
        --project=KEY_PROJECT_ID \
        --primary
    

    Sostituisci quanto segue:

    • ETCD_BACKUP_KEY_NAME: il nome della chiave di crittografia del backup interno di etcd.
    • KEYRING_NAME: il nome delle chiavi automatizzate che contengono la chiave.
    • LOCATION: la Google Cloud posizione delle chiavi automatizzate. Deve corrispondere alla località del cluster. Per un elenco delle regioni, filtra per "Regione" nella tabella delle località Cloud KMS.
    • KEY_PROJECT_ID: l'ID progetto del tuo progetto chiave.

Passaggi successivi