Chiavi di crittografia gestite dal cliente

Configurazione

Questa pagina illustra le chiavi di crittografia gestite dal cliente e il loro utilizzo in Cloud Storage. Per altre opzioni di crittografia, consulta l'argomento Opzioni di crittografia dei dati.

Panoramica

Se hai bisogno di un maggiore controllo sulle operazioni delle chiavi rispetto a quello consentito dalla crittografia standard di Cloud Storage, puoi utilizzare le chiavi di crittografia gestite dal cliente. Queste chiavi vengono create e gestite utilizzando Cloud Key Management Service (Cloud KMS) e le chiavi vengono archiviate come chiavi software, in un cluster HSM o esternamente. Puoi utilizzare chiavi di crittografia gestite dal cliente su singoli oggetti o configurare il bucket in modo che utilizzi una chiave per impostazione predefinita su tutti i nuovi oggetti aggiunti a un bucket.

Quando utilizzi una chiave di crittografia gestita dal cliente, un oggetto viene criptato con la chiave da Cloud Storage nel momento in cui viene archiviato in un bucket e l'oggetto viene decriptato automaticamente da Cloud Storage quando l'oggetto viene pubblicato per i richiedenti.

Quando viene utilizzata la chiave?

Quando applichi una chiave di crittografia gestita dal cliente a un oggetto, Cloud Storage la utilizza durante 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 metadati rimanenti dell'oggetto, incluso il nome dell'oggetto. Pertanto, se disponi di un'autorizzazione sufficiente, puoi eseguire azioni come la lettura della maggior parte dei metadati, l'elenco degli oggetti e l'eliminazione di oggetti anche dopo aver disabilitato o eliminato la chiave di crittografia gestita dal cliente associata.

Agenti di servizio

Ogni progetto ha uno speciale account di servizio Cloud Storage denominato agente di servizio che esegue la crittografia e la decriptazione con chiavi di crittografia gestite dal cliente. Dopo aver conceduto 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 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 chiave di crittografia gestita dal cliente, accede semplicemente all'oggetto come fa normalmente. Durante una richiesta di questo tipo, l'agente di servizio decripta automaticamente l'oggetto richiesto se:

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

Se una di queste condizioni non è soddisfatta, l'agente di servizio non decripta i dati e la richiesta non riesce.

Limitazioni

Quando si utilizzano chiavi di crittografia gestite dal cliente si applicano le seguenti restrizioni:

  • Non puoi criptare un oggetto con una chiave di crittografia gestita dal cliente aggiornando i metadati dell'oggetto. Includi la chiave come parte di una riscrittura dell'oggetto.

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

    • Per la maggior parte delle due regioni, devi creare il keyring Cloud KMS nella località multiregionale associata. Ad esempio, se il bucket si trova nella coppia US-EAST1, US-WEST1, qualsiasi keyring utilizzato per la crittografia degli oggetti in quel bucket deve essere creato nella multiregione US.

    • Per le due regioni predefinite ASIA1, EUR4 e NAM4, devi creare il keyring nella stessa regione doppia predefinita.

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

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

  • Il checksum CRC32C e l'hash MD5 degli oggetti criptati con chiavi di crittografia gestite dal cliente non vengono restituiti quando vengono elencati gli oggetti con l'API JSON.

    • Ove appropriato, alcuni strumenti, come gcloud storage, eseguono una richiesta GET di metadati aggiuntivi su ogni oggetto criptato con una chiave di crittografia gestita dal cliente per recuperare le informazioni CRC32C e MD5. Queste richieste aggiuntive possono rendere l'elenco dei dati notevolmente più lento rispetto a quello degli oggetti criptati con la crittografia standard di Cloud Storage.
  • Cloud Storage non può utilizzare la parte di decrittografia delle chiavi asimmetriche archiviate in Cloud KMS per decriptare automaticamente gli oggetti pertinenti allo stesso modo delle chiavi di crittografia gestite dal cliente.

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 metodo 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 con uno di questi metodi alla volta.

  • Se hai impostato una chiave predefinita gestita dal cliente 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

In questa sezione vengono descritte le considerazioni relative alla rotazione delle chiavi, alla sostituzione delle chiavi e alla disattivazione o eliminazione delle versioni delle chiavi.

Rotazione chiave

Cloud KMS supporta la rotazione delle chiavi automatica e manuale verso una nuova versione. Dopo la rotazione di una chiave, Cloud Storage utilizza la nuova versione per tutte le operazioni che criptano mediante 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 di oggetti che utilizzano in modo specifico la chiave nell'operazione.

Le versioni precedenti della chiave non vengono disabilitate o eliminate, quindi Cloud Storage può comunque decriptare gli oggetti esistenti criptati in precedenza con queste versioni.

Sostituzione di chiavi

Attieniti alle linee guida seguenti quando sostituisci la chiave che utilizzi per criptare gli oggetti Cloud Storage con una nuova chiave:

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

    Ciò garantisce che tutti gli oggetti scritti nel bucket utilizzino la nuova chiave in futuro.

  2. Esamina il codice sorgente per capire quali richieste utilizzano la chiave nelle operazioni in corso, ad esempio per impostare le configurazioni dei bucket e caricare, copiare o riscrivere gli oggetti. Aggiorna queste istanze per utilizzare la nuova chiave.

  3. Cerca oggetti in tutti i tuoi bucket, criptati con la chiave precedente. Utilizza il metodo Riscrittura oggetto per ricriptare ogni oggetto con la nuova chiave.

  4. Disabilita tutte le versioni della vecchia chiave. Dopo aver disabilitato le versioni precedenti delle chiavi, monitora i log del client e del servizio per rilevare eventuali operazioni non riuscite a causa di una versione che diventa non disponibile.

Disabilitazione o eliminazione di una versione della chiave

  • Quando disabiliti o destroy una versione specifica della chiave, non puoi decriptare gli oggetti attualmente criptati con quella versione della chiave.

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

    • Se disabiliti una versione della chiave, puoi riattivarla. Una volta riattivati, potrai accedere agli oggetti criptati dalla versione della chiave.

    • Se elimini la versione di una 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 con la versione della chiave specifica. Una volta identificati, utilizza il metodo di riscrittura oggetto per ricriptare ogni oggetto utilizzando una nuova versione della chiave, una chiave completamente nuova o chiavi lato server.

  • Se disabiliti o elimini la versione principale di una chiave, non potrai utilizzare la chiave per la crittografia finché non ne avrai una nuova. Ad esempio, senza una versione primaria:

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

    • Non puoi caricare, copiare o riscrivere gli oggetti in un bucket con il set di chiavi come chiave di crittografia predefinita, a meno che non specifichi una chiave valida diversa nell'operazione.

    Una volta che hai una versione primaria per la chiave, le operazioni che utilizzano la chiave per criptare gli oggetti hanno esito positivo.

    Prima di disabilitare o eliminare una versione della chiave che è la versione primaria, devi smettere di utilizzarla come versione primaria. Puoi farlo in uno dei seguenti modi:

Versioni delle chiavi e oggetti bloccati

Se una versione della chiave cripta un oggetto bloccato, perché l'oggetto è 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:

  • La scadenza della conservazione dell'oggetto criptato deve essere nel passato.
  • All'oggetto criptato non deve essere applicato alcun blocco degli oggetti.

Una volta che tutti gli oggetti pertinenti soddisfano queste condizioni, è possibile eliminare la versione della chiave, anche senza eliminare gli oggetti. Se lo fai, i dati degli oggetti interessati diventano definitivamente inaccessibili.

Passaggi successivi