Chiavi di crittografia gestite dal cliente

Configurazione

Per impostazione predefinita, Cloud Storage cripta i contenuti dei clienti inattivi. 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 servizi integrati con CMEK, tra cui Cloud Storage. L'utilizzo delle chiavi Cloud KMS ti consente di controllare il livello di protezione, la posizione, la pianificazione della rotazione, l'utilizzo e le autorizzazioni di accesso e i limiti crittografici. L'utilizzo di Cloud KMS consente anche di monitorare l'utilizzo delle chiavi, visualizzare i log di controllo e controllare i cicli di vita delle chiavi. Anziché essere di proprietà di Google e gestite da Google, le chiavi di crittografia delle chiavi (KEK) simmetriche che proteggono i tuoi dati sono controllate e gestite da te in Cloud KMS.

Dopo aver configurato le risorse con le chiavi 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 chiavi CMEK create manualmente per proteggere le risorse Cloud Storage, consulta Utilizzare le chiavi di crittografia gestite dal cliente.

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

CMEK con Autokey di Cloud KMS

Puoi creare CMEK manualmente per proteggere i bucket Cloud Storage e gli oggetti al loro interno oppure utilizzare Cloud KMS Autokey. Con Autokey, le chiavi automatizzate e le chiavi vengono generate on demand durante la creazione o l'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 le chiavi CMEK create da Cloud KMS Autokey per proteggere i bucket Cloud Storage e gli oggetti al loro interno, consulta Utilizzo di 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 lato server standard per criptare i metadati rimanenti dell'oggetto, incluso il nome. Pertanto, se disponi dell'autorizzazione sufficiente, 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 distrutto la chiave 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 chiavi CMEK. Una volta che concedi l'accesso all'agente di servizio a una chiave di crittografia, questo cripta:

Quando aggiungi o riscrivi un oggetto in Cloud Storage, se hai sia un insieme di chiavi predefinito nel 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, accede semplicemente all'oggetto come farebbe normalmente. Durante una richiesta di questo tipo, l'agente del servizio decripta automaticamente l'oggetto richiesto, a condizione che:

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

Se una di queste condizioni non viene soddisfatta, l'agente del servizio 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 aggiornandone i metadati. Includi la chiave come parte della riscrittura dell'oggetto.

    • gcloud storage utilizza il comando objects update per impostare le chiavi di crittografia sugli oggetti, ma il comando riscrive 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 portachiavi utilizzato per criptare gli oggetti in quel bucket deve essere creato anche in US-EAST1.

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

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

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

    • Se appropriato, alcuni strumenti, come gcloud storage, eseguono una richiesta di metadati GET 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 Cloud KMS e Cloud Storage

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

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

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

Per ulteriori informazioni, consulta Quote di Cloud KMS.

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 modo per controllare la crittografia dei dati. Puoi criptare oggetti diversi in un singolo bucket con metodi di criptaggio 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 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 fare quando si ruotano le chiavi, si sostituiscono le chiavi e si disattivano o eliminano le versioni delle chiavi.

Rotazione chiave

Cloud KMS supporta la rotazione delle chiavi sia automatica che manuale a una nuova versione. Dopo la rotazione di una chiave, Cloud Storage utilizza la nuova versione per tutte le operazioni di crittografia che utilizzano 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 di oggetti che utilizzano in modo specifico 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

Segui queste linee guida quando sostituisci la chiave che utilizzi 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. Ispeziona 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 crittografare nuovamente ogni oggetto con la nuova chiave.

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

Disabilitazione 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 disabilitare o eliminare una versione della chiave, devi identificare tutti gli oggetti, in tutti i bucket, 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 disabiliti 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 principale:

    • Non puoi specificare la chiave come parte del caricamento, della copia o della riscrittura di un oggetto.

    • Non puoi caricare, copiare o riscrivere oggetti in un bucket che ha la chiave impostata come chiave di crittografia predefinita a meno che tu non specifichi una chiave diversa e valida come parte dell'operazione.

    Una volta che hai una versione principale della 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 interrompere l'utilizzo come versione primaria. Puoi farlo:

Versioni delle chiavi e oggetti bloccati

Se una versione della chiave cripta un oggetto bloccato, perché è archiviato 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 eliminata solo se vengono soddisfatte le seguenti condizioni:

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

Una volta che tutti gli oggetti pertinenti hanno soddisfatto 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