Rotazione chiavi
La rotazione della chiave è l'atto di modificare il materiale crittografico sottostante contenuto in una chiave di crittografia della chiave (KEK). Può essere attivato automaticamente come parte di una rotazione pianificata o manualmente, di solito dopo un incidente di sicurezza in cui le chiavi potrebbero essere state compromesse. La rotazione della chiave sostituisce solo il singolo campo nella chiave che contiene i dati non elaborati della chiave di crittografia/decrittografia.
Rotazione automatica dei tasti
AWS Key Management Service (KMS) supporta la rotazione automatica delle chiavi KMS. Se questa opzione è abilitata, AWS genera automaticamente un nuovo materiale della chiave di crittografia per la tua chiave una volta all'anno. Non sono necessarie azioni manuali.
Dopo una rotazione della chiave, GKE su AWS cripta ogni nuovo secret con la nuova chiave. Qualsiasi secret creato in precedenza viene ancora decriptato con la chiave originale. Per questo motivo, AWS conserva perpetuamente il materiale delle chiavi meno recente di CMK, consentendo la decrittografia delle vecchie DEK quando vengono letti i vecchi secret.
Usa il seguente comando per vedere se per una chiave KMS è abilitata o meno la rotazione automatica:
aws kms get-key-rotation --key-id KMS_KEY_ID
Sostituisci KMS_KEY_ID
con l'ID della chiave KMS di AWS.
Puoi attivare la rotazione automatica della chiave eseguendo questo comando:
aws kms enable-key-rotation --key-id KMS_KEY_ID
Rotazione manuale dei tasti
Questa sezione spiega come ruotare manualmente le chiavi di configurazione del piano di controllo o del pool di nodi.
Chiave di configurazione del piano di controllo
Per ruotare manualmente la chiave di configurazione del piano di controllo, segui questi passaggi:
Crea una nuova chiave Cloud Key Management Service. Salva il valore dell'ARN della chiave KMS. Lo utilizzerai in seguito.
Assicurati che il ruolo IAM associato al cluster disponga delle autorizzazioni necessarie per criptare e decriptare utilizzando la nuova chiave.
Utilizza il comando
gcloud container aws clusters update
per aggiornare la chiave di crittografia.gcloud container aws clusters update CLUSTER_NAME \ --location=GOOGLE_CLOUD_LOCATION \ --config-encryption-kms-key-arn=CONFIG_ENCRYPTION_KMS_KEY_ARN
Sostituisci quanto segue:
CLUSTER_NAME
: nome del clusterGOOGLE_CLOUD_LOCATION
: la regione Google Cloud supportata che gestisce il cluster, ad esempious-west1
CONFIG_ENCRYPTION_KMS_KEY_ARN
: il nuovo ARN della chiave KMS
Volume della radice del piano di controllo
Per ruotare manualmente la chiave del volume principale del piano di controllo, segui questi passaggi:
Crea una nuova chiave Cloud Key Management Service. Salva il valore dell'ARN della chiave KMS. Lo utilizzerai in seguito.
Assicurati che il ruolo IAM associato al cluster disponga delle autorizzazioni necessarie per criptare e decriptare utilizzando la nuova chiave.
Utilizza il comando
gcloud container aws clusters update
per aggiornare la chiave di crittografia.gcloud container aws clusters update CLUSTER_NAME \ --location=GOOGLE_CLOUD_LOCATION \ --root-volume-kms-key-arn=ROOT_VOLUME_KMS_KEY_ARN
Sostituisci quanto segue:
CLUSTER_NAME
: nome del clusterGOOGLE_CLOUD_LOCATION
: la regione Google Cloud supportata che gestisce il cluster, ad esempious-west1
ROOT_VOLUME_KMS_KEY_ARN
: Amazon Resource Name (ARN) della chiave AWS KMS per criptare il volume root
Chiave di configurazione del pool di nodi
Per ruotare manualmente la chiave di configurazione del pool di nodi, segui questi passaggi:
Assicurati che il ruolo IAM associato al cluster disponga delle autorizzazioni necessarie per criptare e decriptare utilizzando la nuova chiave.
Aggiorna l'alias KMS in uso:
aws kms update-alias --alias-name KEY_ALIAS \ --target-key-id CONFIG_ENCRYPTION_KMS_KEY_ARN
Sostituisci quanto segue:
KEY_ALIAS
: alias della chiave esistenteCONFIG_ENCRYPTION_KMS_KEY_ARN
: il nuovo ARN della chiave KMS
Forza la nuova crittografia di tutti i secret del cluster al cluster utilizzando la nuova chiave di crittografia:
kubectl get secrets --all-namespaces -o json | \ kubectl annotate --overwrite -f - encryption-key-rotation-time=`date +"%Y%m%d-%H%M%S"`
Disabilita la vecchia chiave KMS di AWS. Per maggiori informazioni, consulta Attivazione e disattivazione delle chiavi.
Volumi radice del pool di nodi
Per ruotare manualmente la chiave del volume della radice del pool di nodi, segui questi passaggi:
Assicurati che il ruolo IAM associato al cluster disponga delle autorizzazioni necessarie per criptare e decriptare utilizzando la nuova chiave.
Aggiorna l'alias KMS in uso:
aws kms update-alias --alias-name KEY_ALIAS \ --target-key-id ROOT_VOLUME_KMS_KEY_ARN
Sostituisci quanto segue:
KEY_ALIAS
: alias della chiave esistenteROOT_ENCRYPTION_KMS_KEY_ARN
: il nuovo ARN della chiave KMS
Aggiorna il pool di nodi:
gcloud container aws node-pools update NODE_POOL_NAME \ --root-volume-kms-key-arn=ROOT_VOLUME_KMS_KEY_ARN
Sostituisci quanto segue:
NODE_POOL_NAME
: nome del pool di nodiROOT_VOLUME_KMS_KEY_ARN
: Amazon Resource Name (ARN) della chiave AWS KMS per criptare il volume root
Disabilita la vecchia chiave KMS di AWS. Per maggiori informazioni, consulta Attivazione e disattivazione delle chiavi.