Ruotare una chiave radice

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

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:

  1. Elenca le risorse AEADKey nel tuo progetto:

    kubectl get AEADKey -n PROJECT
    

    Sostituisci PROJECT con il nome dello spazio dei nomi del progetto.

    Dall'output, prendi nota del nome di qualsiasi AEADKey.

  2. Recupera la risorsa ROOT_KEY_RESOURCE_NAME dalla risorsa AEADKey. Il seguente comando estrae e riformatta l'identificatore della chiave root necessario per la risorsa RotationJob:

    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 qualsiasi AEADKey nel progetto
    • PROJECT: il nome dello spazio dei nomi del progetto

    L'output potrebbe essere simile al seguente:

    namespaces/kms-system/secrets/kms-key-local-root
    
  3. Crea un file YAML e aggiungi la risorsa RotationJob e i seguenti contenuti:

    apiVersion: "kms.gdc.goog/v1"
    kind: RotationJob
    metadata:
      name: ROTATION_NAME
    spec:
      rootKeyResourceName: ROOT_KEY_RESOURCE_NAME
    

    Sostituisci quanto segue:

    • ROTATION_NAME: un nome per il job di rotazione, ad esempio rotate-job1.
    • ROOT_KEY_RESOURCE_NAME: l'output ottenuto nel passaggio precedente
  4. Applica i contenuti del file YAML al KMS:

    kubectl apply -f FILENAME.yaml
    

    Sostituisci 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.

  5. Per verificare che la rotazione della chiave root sia stata completata, esegui questo comando:

    kubectl get rotationjobs ROTATION_NAME
    

    Sostituisci 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.