Chiavi di crittografia gestite dal cliente

Configurazione

Per impostazione predefinita, Cloud Storage cripta i contenuti inattivi dei clienti. Cloud Storage gestisce la crittografia per conto tuo senza che tu debba fare altro. Questa opzione è denominata Crittografia predefinita di Google.

Se vuoi controllare le tue chiavi di crittografia, puoi utilizzare le chiavi di crittografia gestite dal cliente (CMEK) in Cloud KMS con i servizi integrati con CMEK, tra cui Cloud Storage. L'utilizzo delle chiavi Cloud KMS ti consente di controllare il loro livello di protezione, la posizione, la pianificazione della rotazione, le autorizzazioni di utilizzo e di accesso e i confini di crittografia. L'utilizzo di Cloud KMS ti consente inoltre di monitorare l'utilizzo delle chiavi, visualizzare i log di controllo e controllare i cicli di vita delle chiavi. Invece che essere di proprietà e gestite da Google, le chiavi di crittografia della chiave (KEK) simmetriche che proteggono i tuoi dati sono sotto il tuo controllo e vengono gestite in Cloud KMS.

Dopo aver configurato le risorse con i CMEK, l'esperienza di accesso alle risorse Cloud Storage è simile all'utilizzo della crittografia predefinita di Google. Per ulteriori informazioni sulle chiavi CMEK, consulta Chiavi di crittografia gestite dal cliente (CMEK). Per scoprire come utilizzare le chiavi CMEK create manualmente per proteggere le risorse Cloud Storage, consulta Utilizzare le chiavi di crittografia gestite dal cliente.

Per ulteriori informazioni su altre opzioni di crittografia quando utilizzi Cloud Storage, consulta Opzioni di crittografia dei dati.

CMEK con Autokey di Cloud KMS

Puoi creare chiavi CMEK manualmente per proteggere i bucket Cloud Storage e gli oggetti al loro interno oppure utilizzare Autokey di Cloud KMS. Con Autokey, le chiavi e i keyring vengono generati on demand nell'ambito della creazione o dell'aggiornamento delle risorse in Cloud Storage. Gli agenti di servizio che utilizzano le chiavi per le operazioni di crittografia e decrittografia vengono creati se non esistono già e vengono concessi i ruoli IAM (Identity and Access Management) richiesti. Per ulteriori informazioni, consulta la panoramica di Autokey.

Autokey non crea chiavi per gli oggetti. Per impostazione predefinita, gli oggetti in un bucket utilizzano la chiave predefinita del bucket. Se vuoi criptare un oggetto utilizzando una chiave diversa da quella predefinita del bucket, puoi creare manualmente una CMEK e utilizzarla durante la creazione dell'oggetto.

Per scoprire come utilizzare i CMEK creati da Cloud KMS Autokey per proteggere i bucket Cloud Storage e gli oggetti al loro interno, consulta Utilizzare Autokey con le risorse Cloud Storage.

Quando viene utilizzata la chiave?

Quando applichi una chiave CMEK a un oggetto, Cloud Storage la utilizza per la crittografia di:

  • I dati dell'oggetto.
  • Il checksum CRC32C dell'oggetto.
  • L'hash MD5 dell'oggetto.

Cloud Storage utilizza chiavi lato server standard per criptare i rimanenti metadati dell'oggetto, incluso il nome. Pertanto, se disponi dell'autorizzazione sufficiente, puoi eseguire azioni come leggere la maggior parte dei metadati, elencare gli oggetti ed eliminarli anche dopo aver disattivato o distrutto il CMEK associato.

Agenti di servizio

Ogni progetto ha un account di servizio Cloud Storage speciale chiamato agente di servizio che esegue la crittografia e la decrittografia con le chiavi CMEK. Dopo aver accordato all'agente di servizio l'accesso a una chiave di crittografia, l'agente di servizio cripta:

Quando aggiungi o riscrivi un oggetto in Cloud Storage, se hai impostato sia una chiave predefinita sul bucket sia una chiave specifica inclusa nella richiesta, Cloud Storage utilizza la chiave specifica per criptare l'oggetto.

Quando un richiedente vuole leggere un oggetto criptato con una CMEK, deve semplicemente accedere all'oggetto come farebbe normalmente. Durante una richiesta di questo tipo, l'agente di servizio decripta automaticamente l'oggetto richiesto a condizione che:

  • L'agente di servizio dispone ancora dell'autorizzazione per decriptare utilizzando la chiave.
  • Non hai disattivato o eliminato la chiave.

Se una di queste condizioni non viene soddisfatta, l'agente di servizio non decripta i dati e la richiesta non va a buon fine.

Limitazioni

Quando utilizzi i token CMEK, si applicano le seguenti limitazioni:

  • Non puoi criptare un oggetto con un CMEK aggiornando i metadati dell'oggetto. Includi la chiave nell'ambito di una riscrittura dell'oggetto.

    • gcloud storage utilizza il comando objects update per impostare le chiavi di crittografia sugli oggetti, ma il comando riscrivi l'oggetto nell'ambito della richiesta.
  • Devi creare il keyring Cloud KMS nella stessa posizione dei dati che intendi criptare. Ad esempio, se il bucket si trova in US-EAST1, qualsiasi mazzo di chiavi utilizzato per criptare gli oggetti al suo interno deve essere creato anche in US-EAST1.

    • Per le regioni con due zone, la posizione del keyring Cloud KMS deve corrispondere al codice posizione della regione con due zone. Ad esempio, se il bucket si trova nella coppia di regioni doppie configurabile US-EAST1, US-WEST1, qualsiasi mazzo di chiavi utilizzato per criptare gli oggetti in quel bucket deve essere creato nella regione multipla US, che corrisponde al codice posizione del bucket. Se il tuo bucket si trova nella regione doppia predefinita NAM4, devi creare il portachiavi nella stessa regione doppia predefinita, NAM4.

      Per le località Cloud KMS disponibili, consulta Località Cloud KMS.

  • Le tariffe di crittografia e decrittografia di Cloud KMS sono soggette a una quota.

  • Il checksum CRC32C e l'hash MD5 degli oggetti criptati con le CMEK non vengono restituito quando elenchi gli oggetti con l'API JSON.

    • Se opportuno, alcuni strumenti, come gcloud storage, eseguono un'ulteriore richiesta GET di metadati su ogni oggetto criptato con un CMK per recuperare le informazioni CRC32C e MD5. Queste richieste aggiuntive possono rendere la pubblicazione notevolmente più lenta rispetto alla pubblicazione di oggetti criptati con la crittografia standard di Cloud Storage.
  • Come CMEK possono essere utilizzate solo chiavi di crittografia simmetrica.

Relazione con le chiavi di crittografia fornite dal cliente

Oltre alla crittografia gestita dal cliente, Cloud Storage offre le chiavi di crittografia fornite dal cliente come metodo per controllare la crittografia dei dati. Puoi criptare oggetti diversi in un unico bucket con metodi di crittografia diversi, ma tieni presente che:

  • Un singolo oggetto può essere criptato con uno solo di questi metodi alla volta.

  • Se hai impostato una CMEK predefinita per il tuo bucket e specifichi una chiave fornita dal cliente in una richiesta, Cloud Storage utilizza la chiave fornita dal cliente per criptare l'oggetto.

Gestione delle chiavi

Questa sezione illustra le considerazioni da tenere presenti quando ruoti le chiavi, le sostituisci e disattivi o distruggi le versioni delle chiavi.

Rotazione chiave

Cloud KMS supporta la rotazione delle chiavi sia automatica che manuale a una nuova versione. Dopo aver ruotato una chiave, Cloud Storage utilizza la nuova versione per tutte le operazioni di crittografia che utilizzano la chiave, ad esempio:

  • Gli oggetti vengono caricati quando il bucket di destinazione utilizza la chiave come chiave di crittografia predefinita.

  • Operazioni di caricamento, copia e riscrittura degli oggetti che utilizzano specificamente la chiave nell'operazione.

Le versioni precedenti della chiave non vengono disattivate o eliminate, pertanto Cloud Storage può comunque decriptare gli oggetti esistenti che sono stati precedentemente criptati utilizzando queste versioni.

Sostituzione chiavi

Segui le linee guida riportate di seguito per sostituire la chiave utilizzata per criptare gli oggetti Cloud Storage con una nuova chiave:

  1. Controlla i bucket per vedere quali utilizzano la chiave come chiave di crittografia predefinita. Per questi bucket, sostituisci la vecchia chiave con una nuova.

    In questo modo, tutti gli oggetti scritti nel bucket utilizzeranno la nuova chiave in futuro.

  2. Controlla il codice sorgente per capire quali richieste utilizzano la chiave nelle operazioni in corso, ad esempio l'impostazione delle configurazioni dei bucket e il caricamento, la copia o la riscrittura degli oggetti. Aggiorna queste istanze in modo che utilizzino la nuova chiave.

  3. Controlla la presenza di oggetti, in tutti i tuoi bucket, criptati con la vecchia chiave. Utilizza il metodo Rewrite Object per criptare di nuovo ogni oggetto con la nuova chiave.

  4. Disattiva tutte le versioni della vecchia chiave. Dopo aver disattivato le versioni precedenti delle chiavi, monitora i log del client e del servizio per rilevare le operazioni che non vanno a buon fine a causa della mancata disponibilità di una versione.

Disabilitazione o distruzione della versione di una chiave

  • Quando disattivi o distruggi una versione della chiave specifica, non puoi decriptare alcun oggetto attualmente criptato con quella versione della chiave.

    Ad esempio, non puoi scaricare, copiare o riscrivere l'oggetto e il tentativo di farlo genera un errore.

    • Se disattivi una versione della chiave, puoi riattivarla. Una volta riattivata, puoi accedere agli oggetti criptati da quella versione della chiave.

    • Se distruggi una versione della chiave, i download degli oggetti criptati con quella versione non saranno più possibili.

    Prima di disattivare o eliminare una versione della chiave, devi identificare tutti gli oggetti, in tutti i bucket, che sono stati criptati utilizzando la versione della chiave specifica. Una volta identificati, utilizza il metodo Rewrite Object per criptare nuovamente ogni oggetto utilizzando una nuova versione della chiave, una chiave completamente nuova o chiavi lato server.

  • Quando disattivi o elimini la versione principale di una chiave, non puoi utilizzare la chiave per la crittografia finché non hai una nuova versione principale. Ad esempio, senza una versione principale:

    • Non puoi specificare la chiave durante il caricamento, la copia o la riscrittura di un oggetto.

    • Non puoi caricare, copiare o riscrivere oggetti in un bucket in cui la chiave è impostata come chiave di crittografia predefinita a meno che non specifichi una chiave valida diversa nell'ambito dell'operazione.

    Una volta creata una versione principale per la chiave, le operazioni che utilizzano la chiave per la crittografia degli oggetti vanno a buon fine.

    Prima di disattivare o distruggere una versione della chiave che è la versione principale della chiave, devi prima smettere di utilizzarla come versione principale. Puoi farlo:

    • Sostituendola con una nuova versione principale, in genere tramite una rotazione della chiave.
    • Rimuovere le istanze in cui utilizzi la chiave per la crittografia. In questo caso, Cloud Storage utilizza chiavi lato server per la crittografia.

Versioni delle chiavi e oggetti bloccati

Se una versione della chiave cripta un oggetto bloccato, perché l'oggetto è memorizzato in un bucket con un criterio di conservazione bloccato o perché l'oggetto ha una propria configurazione di conservazione bloccata, la versione della chiave può essere distrutta solo se sono soddisfatte le seguenti condizioni:

  • L'ora di scadenza della conservazione dell'oggetto criptato deve essere nel passato.
  • All'oggetto criptato non devono essere applicati blocchi degli oggetti.

Una volta che tutti gli oggetti pertinenti hanno soddisfatto queste condizioni, è possibile distruggere la versione della chiave anche senza eliminare gli oggetti. In questo caso, i dati degli oggetti interessati non saranno più accessibili.

Passaggi successivi