Gestire le risorse di crittografia

Questa pagina mostra come gestire i bucket di archiviazione criptati di Google Distributed Cloud (GDC) con air gap.

Prima di iniziare

I bucket di archiviazione sono risorse con ambito limitato a un progetto specifico. Il progetto funge da container, raggruppando i bucket e consentendone la gestione tramite il server dell'API di gestione. Prima di poter eseguire le operazioni in questa pagina, devi creare un nuovo progetto o selezionarne uno esistente per cui disponi di autorizzazioni sufficienti.

Ruoli IAM richiesti

Contatta l'amministratore del progetto IAM per richiedere i seguenti ruoli nello spazio dei nomi del progetto:

  • Bucket Project Admin (project-bucket-admin): crea, aggiorna ed elimina i bucket di archiviazione.
  • Bucket Object Project Viewer (project-bucket-object-viewer): visualizza e controlla i dettagli dei bucket e degli oggetti di archiviazione.

Per saperne di più, consulta Concedi l'accesso al bucket.

prepara l'ambiente

Per eseguire comandi sul server API di gestione o sul server API globale, segui questi passaggi:

  1. Accedi e genera il file kubeconfig per il server API di gestione a livello di zona, se non ne hai uno.
  2. Per i bucket a due zone, segui questi passaggi:
    • Verifica con l'operatore dell'infrastruttura (IO) che la risorsa personalizzata BucketLocationConfig sia stata creata per le zone accoppiate.
    • Genera il file kubeconfig per il server API globale.

Gestisci le risorse di crittografia

I bucket con crittografia v2 avranno un secret kekRef e diverse AEADKey create, in cui kekRef viene utilizzato per fare riferimento alle AEADKey predefinite attive in uso e le AEADKey includono quelle attive e di archiviazione appartenenti al bucket.

Aggiorna le chiavi AEAD predefinite attive per un bucket

Come best practice, aggiorna le chiavi AEAD predefinite del bucket dopo circa 42 miliardi di scritture di oggetti. Questo passaggio proattivo migliora la sicurezza e impedisce l'esaurimento delle chiavi. Il processo di aggiornamento creerà un nuovo kekRef e disattiverà le chiavi AEADKeys precedenti. Per avviare il processo di aggiornamento, elimina il secret kekRef associato al bucket.

Il kekRef precedente può essere recuperato eseguendo il seguente comando:

kubectl get secrets -n NAMESPACE_NAME -l  object.gdc.goog/bucket-name=BUCKET_NAME

Puoi quindi eseguire il comando seguente per eliminare il kekRef esistente:

kubectl delete secrets OLD_KEKREF_NAME -n  NAMESPACE_NAME

Dopo l'eliminazione, puoi eseguire il comando seguente per confermare che è stato creato un nuovo kekRef basato su AGE:

kubectl get secrets -n NAMESPACE_NAME -l  object.gdc.goog/bucket-name=BUCKET_NAME

Verifica che siano state create nuove chiavi AEADKeys predefinite in base a AGE:

kubectl get aeadkeys -n NAMESPACE_NAME -l  cmek.security.gdc.goog/resource-name=BUCKET_NAME

Ruota le chiavi AEAD predefinite per un bucket

Se una chiave AEADKey per il tuo bucket viene compromessa, devi ruotare manualmente le chiavi di crittografia delle chiavi associate al bucket.

Per avviare la procedura, devi prima aggiornare le chiavi predefinite attive. In questo modo vengono create nuove chiavi AEADKey predefinite attive e le chiavi di crittografia delle chiavi precedenti vengono contrassegnate come disattivate. Dopo l'aggiornamento delle chiavi predefinite, i caricamenti successivi degli oggetti utilizzano le nuove chiavi AEADKeys come chiavi di crittografia delle chiavi. Le chiavi AEADKeys precedenti non vengono eliminate, quindi puoi comunque decriptare gli oggetti esistenti che erano stati criptati in precedenza utilizzando queste chiavi.

Successivamente, segui i passaggi per scaricare e ricaricare gli oggetti nel bucket ed eliminare gli oggetti precedenti.

Dopo aver caricato nuovamente tutti gli oggetti nel bucket, puoi eliminare le chiavi AEADKey inattive e i vecchi oggetti. Identifica le chiavi AEAD disattivate in base a AGE:

kubectl get aeadkeys -n NAMESPACE_NAME -l  cmek.security.gdc.goog/resource-name=BUCKET_NAME

Infine, segui i passaggi per eliminare le chiavi AEAD.