Chiavi di crittografia gestite dal cliente

Configurazione

Per impostazione predefinita, Cloud Storage cripta i contenuti inattivi dei clienti. Cloud Storage gestisce la crittografia per te senza ulteriori azioni da parte tua. Questa opzione è chiamata 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 servizi integrati con CMEK, incluso Cloud Storage. L'utilizzo delle chiavi Cloud KMS ti consente di controllare il livello di protezione , la località, la pianificazione della rotazione, le autorizzazioni di utilizzo e di accesso e i limiti crittografici. Con Cloud KMS puoi inoltre monitorare l'utilizzo delle chiavi, visualizzare gli audit log e controllare i cicli di vita delle chiavi. Invece di Google, sei tu ad avere la proprietà e la gestione delle chiavi di crittografia della chiave (KEK) simmetriche che proteggono i tuoi dati. Puoi controllare e gestire queste chiavi in Cloud KMS.

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

Per saperne di più sulle altre opzioni di crittografia quando utilizzi Cloud Storage, consulta Opzioni di crittografia dei dati.

CMEK con Autokey di Cloud KMS

Puoi creare le CMEK manualmente per proteggere i bucket Cloud Storage e gli oggetti al loro interno oppure utilizzare Cloud KMS Autokey. Con Autokey, le chiavi e le chiavi automatizzate vengono generate on demand per supportare la creazione o l'aggiornamento delle risorse in Cloud Storage. Vengono creati gli agenti di servizio che utilizzano le chiavi per le operazioni di crittografia e decrittografia, se non esistono già, e ricevono i ruoli IAM (Identity and Access Management) richiesti. Per saperne di più, 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 dalla chiave predefinita del bucket, puoi creare manualmente una CMEK e utilizzarla durante la creazione dell'oggetto.

Per scoprire come utilizzare le CMEK create 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 CMEK a un oggetto, Cloud Storage utilizza la chiave durante la crittografia:

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

Cloud Storage utilizza le chiavi standard lato server per criptare i metadati rimanenti dell'oggetto, incluso il nome dell'oggetto. Pertanto, se disponi delle autorizzazioni sufficienti, puoi eseguire azioni come la lettura della maggior parte dei metadati, l'elenco degli oggetti e l'eliminazione degli oggetti anche dopo aver disattivato o eliminato la CMEK associata.

Agenti di servizio

Ogni progetto ha un account di servizio Cloud Storage speciale chiamato service agent che esegue la crittografia e la decrittografia con le CMEK. Una volta che hai concesso all'agente di servizio l'accesso a una chiave di crittografia, questo agente di servizio cripta:

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

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

  • Il service agent abbia ancora l'autorizzazione per decriptare utilizzando la chiave.
  • Non hai disattivato o eliminato la chiave.

Se una di queste condizioni non è soddisfatta, il service agent non decripta i dati e la richiesta non va a buon fine.

Limitazioni

Quando utilizzi le CMEK, si applicano le seguenti limitazioni:

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

    • gcloud storage utilizza il comando objects update per impostare le chiavi di crittografia sugli oggetti, ma il comando riscrive l'oggetto come parte della richiesta.
  • Devi creare il keyring Cloud KMS nella stessa località dei dati che intendi criptare. Ad esempio, se il bucket si trova in US-EAST1, anche qualsiasi keyring utilizzato per criptare gli oggetti in quel bucket deve essere creato in US-EAST1.

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

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

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

    • Quando appropriato, alcuni strumenti, come gcloud storage, eseguono una richiesta GET di metadati aggiuntiva su ogni oggetto criptato con una CMEK per recuperare le informazioni CRC32C e MD5. Queste richieste aggiuntive possono rendere l'elenco notevolmente più lento rispetto all'elenco degli oggetti criptati con la crittografia standard di Cloud Storage.
  • Solo le chiavi di crittografia simmetriche possono essere utilizzate come CMEK.

Quote di Cloud KMS e Cloud Storage

Quando utilizzi CMEK in Cloud Storage, i tuoi progetti possono consumare le quote delle richieste di crittografia di Cloud KMS.

Le operazioni di crittografia e decrittografia che utilizzano le chiavi CMEK influiscono sulle quote di Cloud KMS nei seguenti modi:

  • Per le chiavi CMEK software generate in Cloud KMS, non alcuna quota di Cloud KMS viene consumata.
  • Per le chiavi CMEK hardware, a volte chiamate chiavi Cloud HSM le operazioni di crittografia e decrittografia vengono conteggiate rispetto alle quote di Cloud HSM nel progetto che contiene la chiave.
  • Per le chiavi CMEK esterne, a volte chiamate chiavi Cloud EKM chiavi, le operazioni di crittografia e decrittografia vengono conteggiate rispetto alle quote di Cloud EKM nel progetto che contiene la chiave.

Per saperne di più, consulta Quote di Cloud KMS.

Relazione con le chiavi di crittografia fornite dal cliente

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

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

  • Se hai impostato una CMEK predefinita per il 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 relative alla rotazione, alla sostituzione e alla disattivazione o all'eliminazione delle versioni delle chiavi.

Rotazione della chiave

Cloud KMS supporta la rotazione automatica e manuale delle chiavi a una nuova versione. Dopo la rotazione di una chiave, Cloud Storage utilizza la nuova versione per tutte le operazioni che criptano utilizzando la chiave, ad esempio:

  • Caricamenti di oggetti 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, quindi Cloud Storage può comunque decriptare gli oggetti esistenti che sono stati criptati in precedenza utilizzando queste versioni.

Sostituzione della chiave

Utilizza le seguenti linee guida quando sostituisci 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. Esamina 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 gli oggetti, in tutti i bucket, criptati con la vecchia chiave. Utilizza il metodo Rewrite Object per criptare nuovamente ogni oggetto con la nuova chiave. Per criptare nuovamente milioni o miliardi di oggetti in blocco con un singolo job, utilizza le operazioni batch di archiviazione.

  4. Disattiva tutte le versioni della vecchia chiave. Dopo aver disattivato le versioni precedenti della chiave, monitora i log dei client e dei servizi per le operazioni che non vanno a buon fine perché una versione non è più disponibile.

Disattivazione o eliminazione della versione di una chiave

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

    Ad esempio, non puoi scaricare, copiare o riscrivere l'oggetto e, se tenti di farlo, si verifica un errore.

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

    • Se elimini 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 specifica della chiave. Una volta identificati, utilizza il metodo Rewrite Object per criptare nuovamente ogni oggetto utilizzando una nuova versione della chiave, una chiave completamente nuova o le chiavi lato server.

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

    • Non puoi specificare la chiave come parte di un caricamento, una copia o una 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 diversa e valida come parte dell'operazione.

    Una volta che hai una versione primaria per la chiave, le operazioni che utilizzano la chiave per criptare gli oggetti vanno a buon fine.

    Prima di disattivare o eliminare una versione della chiave che è la versione primaria della chiave, devi prima smettere di utilizzarla come versione primaria. Puoi farlo in due modi:

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

Versioni delle chiavi e oggetti bloccati

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

  • Il tempo di scadenza della conservazione dell'oggetto criptato deve essere nel passato.
  • L'oggetto criptato non deve avere blocchi oggetto.

Una volta che tutti gli oggetti pertinenti soddisfano queste condizioni, è possibile eliminare la versione della chiave, anche senza eliminare gli oggetti. In questo caso, i dati degli oggetti interessati diventano inaccessibili in modo permanente.

Passaggi successivi