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 configurate per GKE control plane authority. Questo documento è rivolto agli amministratori dei cluster e agli ingegneri della sicurezza.

Prima di leggere questo documento, acquisisci familiarità con i seguenti concetti di GKE control plane authority:

Pianificare le rotazioni delle chiavi

Questo documento mostra come ruotare i seguenti componenti delle credenziali nel piano di controllo:

  • La chiave di crittografia per etcd e i dischi di avvio del piano di controllo.
  • 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 dell'account di servizio che configuri con GKE control plane authority. Per saperne di più, consulta Ruotare le CA e le chiavi di firma del piano di controllo gestite dal cliente.

Le chiavi in Cloud Key Management Service (Cloud KMS) non scadono. Se la tua organizzazione ha un requisito di sicurezza per rotazione della chiave, ruota manualmente le chiavi. 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 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 piano di controllo replicato. Per i cluster zonali, il piano di controllo diventa non disponibile finché il nuovo disco non è disponibile.

Prima di iniziare

Prima di iniziare, assicurati di aver eseguito le seguenti attività:

  • Abilita l'API Google Kubernetes Engine.
  • Abilita 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 il gcloud components update comando. Le versioni precedenti di gcloud CLI potrebbero non supportare l'esecuzione dei comandi in questo documento.
  • Avere un cluster esistente che utilizza la crittografia del disco di avvio del piano di controllo e di etcd ed esegue GKE versione 1.35.2-gke.1842000 o successive.

  • Identifica gli ID progetto dei seguenti Google Cloud progetti:

    • Progetto chiave: il progetto che contiene le risorse Cloud KMS risorse.
    • Progetto cluster: il progetto che contiene il tuo cluster GKE.
  • Per eseguire le attività di convalida descritte in questo documento, verifica che il log di controllo dell'accesso ai dati DATA_READ sia abilitato per l'API Cloud Key Management Service (KMS). Per saperne di più, consulta Abilitare i log di controllo dell'accesso ai dati.

Ruoli e autorizzazioni richiesti

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

Per saperne di più 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 aggiornarli in modo che utilizzino chiavi completamente nuove per queste operazioni di crittografia.

Concedere i ruoli IAM al service agent GKE

Per ruotare le chiavi di crittografia per i dischi di avvio e etcd, concedi il ruolo Utente chiave di crittografia KMS di Kubernetes Engine (roles/container.cloudKmsKeyUser) sulle chiavi di crittografia nel progetto chiave al service agent 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 piano di controllo e i dischi etcd.
  • KEYRING_NAME: il nome delle chiavi automatizzate che contiene la chiave.
  • LOCATION: la Google Cloud località 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 del cluster.
  • KEY_PROJECT_ID: l'ID progetto del progetto chiave.

Ruotare la chiave per i dischi di avvio di etcd e del piano di controllo

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

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

    La propagazione delle modifiche nel progetto potrebbe richiedere fino a 10 minuti.

  2. Trova la versione della patch corrente del piano di controllo del cluster:

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

    Sostituisci quanto segue:

    • CLUSTER_NAME: il nome del cluster GKE.
    • LOCATION: la località del piano di controllo del cluster GKE, ad esempio us-central1.
  3. Esegui l'upgrade del piano di controllo del cluster alla stessa versione che utilizza già.

    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 piano di controllo del cluster dall'output del passaggio precedente.
    • CLUSTER_PROJECT_ID: l'ID progetto del progetto del cluster.

Al termine dell'operazione di upgrade del piano di controllo, il cluster utilizza la nuova versione della chiave per criptare i dischi di avvio del piano di controllo 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 utilizza per il ripristino di emergenza. Puoi configurare la rotazione automatica per questa chiave, ma ti consigliamo di eseguire invece la rotazione manuale. Dopo aver ruotato la 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 della chiave primaria e vengono eseguiti ai seguenti intervalli:

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

Dopo aver ruotato la chiave, non disabilitare o eliminare immediatamente la versione precedente della chiave. 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 contiene la chiave.
    • LOCATION: la Google Cloud località 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 progetto chiave.

Passaggi successivi