Rotazione chiavi
La rotazione delle chiavi è l'atto di modificare il materiale di crittografia sottostante contenuto in una chiave di crittografia della chiave (KEK). Può essere attivata automaticamente nell'ambito di una rotazione pianificata o manualmente, in genere dopo un incidente di sicurezza in cui le chiavi potrebbero essere state compromesse. La rotazione delle chiavi sostituisce solo il singolo campo della chiave che contiene i dati della chiave di crittografia/decrittografia non elaborati.
Rotazione automatica delle chiavi
AWS Key Management Service (KMS) supporta la rotazione automatica delle chiavi KMS. Se abilitata, AWS genera automaticamente nuovo materiale della chiave di crittografia per la chiave una volta all'anno. Non sono richieste azioni manuali.
Dopo la rotazione della chiave, GKE su AWS cripta ogni nuovo secret con la nuova chiave. Qualsiasi secret creato in precedenza viene comunque decriptato con la chiave originale. Per questo motivo, AWS mantiene il materiale della chiave precedente della CMK a tempo indeterminato, consentendo la decrittografia delle DEK precedenti quando vengono letti i secret precedenti.
Puoi verificare se la rotazione automatica di una chiave KMS è abilitata o meno con il seguente comando:
aws kms get-key-rotation --key-id KMS_KEY_ID
Sostituisci KMS_KEY_ID con l'ID della chiave AWS KMS.
Puoi abilitare la rotazione automatica della chiave eseguendo questo comando:
aws kms enable-key-rotation --key-id KMS_KEY_ID
Rotazione manuale delle chiavi
Questa sezione spiega come ruotare manualmente le chiavi di configurazione del control plane o del pool di nodi.
Chiave di configurazione del control plane
Per ruotare manualmente la chiave di configurazione del control plane:
Crea una nuova chiave di Cloud Key Management Service. Salva il valore dell'ARN della chiave KMS. Lo utilizzerai in un secondo momento.
Assicurati che il ruolo IAM associato al cluster disponga delle autorizzazioni per criptare e decriptare utilizzando la nuova chiave.
Utilizza il
gcloud container aws clusters updatecomando 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_ARNSostituisci quanto segue:
CLUSTER_NAME: il nome del clusterGOOGLE_CLOUD_LOCATION: la regione supportata che gestisce il cluster, ad esempious-west1Google CloudCONFIG_ENCRYPTION_KMS_KEY_ARN: il nuovo ARN della chiave KMS
Volume di root del control plane
Per ruotare manualmente la chiave del volume di root del control plane:
Crea una nuova chiave di Cloud Key Management Service. Salva il valore dell'ARN della chiave KMS. Lo utilizzerai in un secondo momento.
Assicurati che il ruolo IAM associato al cluster disponga delle autorizzazioni per criptare e decriptare utilizzando la nuova chiave.
Utilizza il
gcloud container aws clusters updatecomando 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_ARNSostituisci quanto segue:
CLUSTER_NAME: il nome del clusterGOOGLE_CLOUD_LOCATION: la regione supportata che gestisce il cluster, ad esempious-west1Google CloudROOT_VOLUME_KMS_KEY_ARN: Amazon Resource Name (ARN) della chiave AWS KMS per criptare il volume di root
Chiave di configurazione del node pool
Per ruotare manualmente la chiave di configurazione del node pool:
Assicurati che il ruolo IAM associato al cluster disponga delle autorizzazioni 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_ARNSostituisci quanto segue:
KEY_ALIAS: l'alias della chiave esistenteCONFIG_ENCRYPTION_KMS_KEY_ARN: il nuovo ARN della chiave KMS
Forza il cluster a ricriptare tutti i secret del 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 AWS KMS. Per ulteriori informazioni, vedi Abilitare e disabilitare le chiavi.
Volumi di root del node pool
Per ruotare manualmente la chiave del volume di root del node pool:
Assicurati che il ruolo IAM associato al cluster disponga delle autorizzazioni 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_ARNSostituisci quanto segue:
KEY_ALIAS: l'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_ARNSostituisci quanto segue:
NODE_POOL_NAME: il nome del pool di nodiROOT_VOLUME_KMS_KEY_ARN: Amazon Resource Name (ARN) della chiave AWS KMS per criptare il volume di root
Disabilita la vecchia chiave AWS KMS. Per ulteriori informazioni, vedi Abilitare e disabilitare le chiavi.