Questo documento descrive come ruotare una chiave root. Se la chiave root viene compromessa o se scegli di ruotare periodicamente le chiavi root per migliorare la sicurezza, puoi ruotare le chiavi in una nuova chiave root utilizzando la risorsa RotationJob.
La rotazione di una chiave root crea una nuova chiave root, che diventa la chiave primaria e esegue il wrapping di tutte le chiavi non root. Non puoi eliminare una chiave root; la rotazione è l'unico modo per sostituirla. Per saperne di più sulle chiavi root, consulta Tipi di chiavi root.
Per informazioni dettagliate sull'API KMS, consulta la panoramica dell'API KMS e l'API KRM Key Management Service per visualizzare la definizione completa dell'API.
Prima di iniziare
Prima di ruotare una chiave root, devi disporre delle autorizzazioni necessarie e preparare l'ambiente.
Richiedi ruoli IAM
Per ruotare le chiavi, contatta l'amministratore dell'organizzazione IAM per richiedere il ruolo KMS Rotation Job Admin (kms-rotationjob-admin).
prepara l'ambiente
Scarica e installa l'interfaccia a riga di comando gdcloud, se non l'hai ancora fatto.
Genera un file kubeconfig per configurare l'accesso a
kubectl.
Ruota una chiave root
Per ruotare una chiave root, devi prima identificare il nome risorsa della chiave root in uso. Puoi trovare queste informazioni esaminando qualsiasi risorsa AEADKey all'interno del tuo progetto, poiché tutte queste chiavi sono protette dalla stessa chiave root.
Crea una nuova chiave root ed esegui la rotazione delle chiavi:
Elenca le risorse
AEADKeynel tuo progetto:kubectl get AEADKey -n PROJECTSostituisci
PROJECTcon il nome dello spazio dei nomi del progetto.Dall'output, prendi nota del nome di qualsiasi
AEADKey.Recupera la risorsa
ROOT_KEY_RESOURCE_NAMEdalla risorsaAEADKey. Il seguente comando estrae e riformatta l'identificatore della chiave root necessario per la risorsaRotationJob:kubectl describe aeadkey KEY_NAME -n PROJECT | grep "Root Key ID:" | awk '{print $4}' | awk -F/ '{print "namespaces/" $1 "/secrets/" $2}'Sostituisci quanto segue:
KEY_NAME: il nome di qualsiasiAEADKeynel progettoPROJECT: il nome dello spazio dei nomi del progetto
L'output potrebbe essere simile al seguente:
namespaces/kms-system/secrets/kms-key-local-rootCrea un file YAML e aggiungi la risorsa
RotationJobe i seguenti contenuti:apiVersion: "kms.gdc.goog/v1" kind: RotationJob metadata: name: ROTATION_NAME spec: rootKeyResourceName: ROOT_KEY_RESOURCE_NAMESostituisci quanto segue:
ROTATION_NAME: un nome per il job di rotazione, ad esempiorotate-job1.ROOT_KEY_RESOURCE_NAME: l'output ottenuto nel passaggio precedente
Applica i contenuti del file YAML al KMS:
kubectl apply -f FILENAME.yamlSostituisci FILENAME con il nome del file YAML.
Dopo aver eseguito il comando, KMS crea una nuova chiave root e ruota ogni chiave con la nuova chiave root.
Per verificare che la rotazione della chiave root sia stata completata, esegui questo comando:
kubectl get rotationjobs ROTATION_NAMESostituisci ROTATION_NAME con il nome del job di rotazione.
Dopo aver eseguito il comando, se l'operazione è andata a buon fine, lo stato del job di rotazione è
Completed.