Gestire le risorse di crittografia

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

Prima di iniziare

I bucket di archiviazione sono risorse con ambito ristretto a un progetto specifico. Il progetto funge da container, raggruppando i bucket e consentendone la gestione tramite il server API di gestione. Prima di poter eseguire le operazioni descritte in questa pagina, devi creare un nuovo progetto o selezionarne uno esistente in 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:

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

Per ulteriori informazioni, vedi Concedere l'accesso ai bucket.

Prepara l'ambiente

Per eseguire comandi sul server API di gestione o sul server API globale:

  1. Accedi e genera il file kubeconfig per il server API di gestione zonale, se non ne hai uno.
  2. Per i bucket a doppia zona:
    • 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.

Gestire 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 archivio appartenenti al bucket.

Aggiornare le AEADKey predefinite attive per un bucket

Come best practice, aggiorna le AEADKey predefinite del bucket dopo circa 42 miliardi di scritture di oggetti. Questo passaggio proattivo migliora la sicurezza ed evita l'esaurimento delle chiavi. La procedura di aggiornamento creerà un nuovo kekRef e disattiverà le AEADKey precedenti. Per avviare la procedura 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

Dopodiché puoi 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 verificare che sia stato creato un nuovo kekRef in base a AGE:

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

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

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

Ruotare le AEADKey predefinite per un bucket

Se una 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 AEADKey predefinite attive e le chiavi di crittografia delle chiavi precedenti vengono contrassegnate come disattivate. Dopo l'aggiornamento delle chiavi predefinite, i caricamenti di oggetti successivi utilizzano le nuove AEADKey come chiavi di crittografia delle chiavi. Le AEADKey precedenti non vengono eliminate, quindi puoi comunque decriptare gli oggetti esistenti che sono stati criptati in precedenza utilizzando queste chiavi.

Poi, segui i passaggi per scaricare e ricaricare gli oggetti nel bucket ed eliminare quelli vecchi.

Dopo aver ricaricato tutti gli oggetti nel bucket, puoi liberare spazio dalle AEADKey inattive e dagli oggetti precedenti. Identifica le AEADKey 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 AEADKey.