Informazioni sulle chiavi di crittografia gestite dal cliente (CMEK)

Questa pagina descrive il funzionamento delle chiavi di crittografia gestite dal cliente con Cloud SQL. Per utilizzare subito questa funzionalità, consulta Utilizzo delle chiavi di crittografia gestite dal cliente (CMEK).

CMEK è la scelta giusta per me?

Le chiavi di crittografia gestite dal cliente sono destinate alle organizzazioni con dati sensibili o regolamentati che richiedono la gestione delle proprie chiavi di crittografia.

Crittografia gestita da Google e crittografia gestita dal cliente

La funzionalità CMEK consente di utilizzare le tue chiavi di crittografia per i dati at-rest in Cloud SQL. Dopo l'aggiunta di chiavi di crittografia gestite dal cliente, ogni volta che viene effettuata una chiamata API, Cloud SQL utilizza la tua chiave per accedere ai dati.

Cloud SQL utilizza le chiavi di crittografia dei dati (DEK) e le chiavi di crittografia della chiave (KEK) gestite da Google per criptare Cloud SQL. Esistono due livelli di crittografia:

  1. La DEK cripta i dati.
  2. La KEK cripta la DEK.

L'istanza Cloud SQL archivia la DEK criptata insieme ai dati criptati sul DP e Google gestisce la KEK di Google. Con le chiavi di crittografia gestite dal cliente, puoi creare una chiave che esegue il wrapping della KEK di Google. Le chiavi di crittografia gestite dal cliente consentono di creare, revocare ed eliminare la KEK.

Le chiavi di crittografia gestite dal cliente, inclusi software, hardware e chiavi esterne, sono tutte gestite tramite l'API Cloud Key Management Service.

I diagrammi seguenti mostrano come funziona la crittografia dei dati at-rest all'interno di un'istanza Cloud SQL quando si utilizza la crittografia predefinita di Google rispetto alle chiavi di crittografia gestite dal cliente.

Senza CMEK

I dati vengono caricati su Google, quindi suddivisi in blocchi e ogni blocco viene criptato con la propria chiave di crittografia dei dati. Il wrapping delle chiavi di crittografia dei dati viene eseguito utilizzando una chiave di crittografia della chiave. Con la crittografia di Google predefinita, la chiave di crittografia della chiave viene recuperata dall'archivio chiavi interno di Google. I blocchi criptati e le chiavi di crittografia con wrapping sono distribuiti nell'infrastruttura di archiviazione di Google.

Con CMEK

I dati vengono caricati su Google, quindi suddivisi in blocchi e ogni blocco viene criptato con la propria chiave di crittografia dei dati. Il wrapping delle chiavi di crittografia dei dati viene eseguito utilizzando una chiave di crittografia della chiave. Con CMEK che utilizza Cloud KMS, la chiave di crittografia della chiave viene recuperata da Cloud KMS. I blocchi criptati e le chiavi di crittografia con wrapping sono distribuiti nell'infrastruttura di archiviazione di Google.

Durante la decriptazione dei dati con wrapping con chiavi di crittografia gestite dal cliente, Cloud SQL utilizza la KEK per decriptare la DEK e la DEK non criptata per decriptare i dati at-rest.

Blocco di dati criptato con DEK e archiviato con DEK con wrapping. Una richiesta per annullare il wrapping della DEK viene inviata allo spazio di archiviazione KMS, che archivia la KEK non esportabile. L'archiviazione KMS restituisce la DEK senza wrapping.

Quando Cloud SQL interagisce con le chiavi CMEK?

Operazione Notes
Creazione dell'istanza Durante la creazione dell'istanza, la configuri in modo da utilizzare chiavi di crittografia gestite dal cliente.
Creazione del backup Durante i backup per un'istanza abilitata per CMEK, le chiavi di crittografia gestite dal cliente criptano i dati utente, ad esempio le query e le risposte degli utenti. I backup di un'istanza abilitata per CMEK ereditano la crittografia con la stessa chiave Cloud KMS dell'istanza di origine.
Ripristino dell'istanza Durante i ripristini per un'istanza abilitata per CMEK, Cloud SQL utilizza la chiave per accedere ai dati dell'istanza di backup in fase di ripristino. Quando si esegue il ripristino in un'istanza diversa, l'istanza di destinazione può utilizzare una chiave diversa per la crittografia.
Creazione della replica Quando crei una replica di lettura di un'istanza Cloud SQL nella stessa regione, questa eredita la CMEK dall'istanza padre. Se crei una replica di lettura in un'altra regione, devi selezionare una CMEK dall'altra regione. Ogni regione utilizza il proprio set di chiavi.
Clona creazione I cloni da un'istanza abilitata per CMEK ereditano la crittografia CMEK con la stessa chiave Cloud KMS dell'istanza di origine.
Aggiornamento dell'istanza Durante gli aggiornamenti a un'istanza abilitata per CMEK, Cloud SQL controlla la chiave CMEK.

Quali località supportano le istanze Cloud SQL abilitate per CMEK?

CMEK è disponibile in tutte le località delle istanze di Cloud SQL.

Informazioni sugli account di servizio

Quando le istanze Cloud SQL hanno CMEK abilitata, devi utilizzare un account di servizio per richiedere l'accesso alla chiave da Cloud KMS.

Per utilizzare una chiave di crittografia gestita dal cliente in un progetto, devi avere un account di servizio e concedere all'account di servizio l'accesso alla chiave di crittografia gestita dal cliente. L'account di servizio deve esistere all'interno del progetto. L'account di servizio è visibile in tutte le regioni.

Se utilizzi la console per creare un'istanza, Cloud SQL crea automaticamente l'account di servizio quando scegli per la prima volta l'opzione Chiave gestita dal cliente (se non esiste già un account di servizio). Non è necessario disporre di autorizzazioni speciali per l'account utente quando Cloud SQL crea automaticamente l'account di servizio.

Informazioni sulle chiavi

In Cloud KMS, è necessario creare un keyring con una chiave di crittografia, impostata con una località. Quando crei una nuova istanza Cloud SQL, selezioni questa chiave per criptarla.

Quando crei nuove istanze Cloud SQL che utilizzano chiavi di crittografia gestite dal cliente, devi conoscere l'ID chiave e la regione della chiave. Devi inserire nuove istanze Cloud SQL nella stessa regione della chiave di crittografia gestita dal cliente associata all'istanza. Puoi creare un progetto sia per le chiavi sia per le istanze Cloud SQL oppure progetti diversi per ciascuna.

Le chiavi di crittografia gestite dal cliente utilizzano il seguente formato:

projects/[CMEK_ENABLED_PROJECT]/locations/[REGION]/keyRings/[RING_NAME]/cryptoKeys/[KEYNAME]

Se Cloud SQL non è in grado di accedere alla chiave (ad esempio se disabiliti la versione della chiave), Cloud SQL sospende l'istanza. Una volta che la chiave diventa nuovamente accessibile, Cloud SQL ripristina automaticamente l'istanza.

Quando ruoti le chiavi, le istanze criptate con quella chiave non vengono criptate automaticamente con la nuova versione della chiave primaria. Puoi criptare nuovamente qualsiasi istanza o replica primaria CMEK esistente con la nuova versione della chiave primaria. Per saperne di più su come criptare nuovamente un'istanza o una replica Cloud SQL dopo una rotazione della chiave, consulta Ricrittografia di un'istanza o una replica abilitata per CMEK esistente.

Gestori chiavi esterni

Puoi utilizzare le chiavi archiviate in gestori di chiavi esterne, come Fortanix, Ionic o Thales, come chiavi di crittografia gestite dal cliente. Per scoprire come utilizzare le chiavi esterne con Cloud KMS, consulta Cloud External Key Manager (Cloud EKM).

Key Access Justifications

Puoi utilizzare Key Access Justifications (KAJ) nell'ambito di Cloud EKM. KAJ consente di visualizzare il motivo di ogni richiesta Cloud EKM. Inoltre, in base alla motivazione fornita, puoi approvare o rifiutare automaticamente una richiesta. Per scoprire di più, consulta la Panoramica.

Pertanto, KAJ fornisce un maggiore controllo sui tuoi dati fornendo una giustificazione per ogni tentativo di decriptazione dei dati.

Per informazioni correlate sull'utilizzo delle chiavi con le istanze Cloud SQL, consulta Creazione di un'istanza Cloud SQL con CMEK.

Come faccio a rendere i dati criptati tramite CMEK definitivamente inaccessibili?

Potrebbero verificarsi delle situazioni in cui vuoi eliminare definitivamente i dati criptati con CMEK. A questo scopo, distruggi la versione della chiave di crittografia gestita dal cliente. Non puoi eliminare il keyring o la chiave, ma puoi eliminare le versioni della chiave.

Come faccio a esportare e importare i dati da e in un'istanza abilitata per CMEK?

Se vuoi che i dati rimangano criptati con una chiave gestita dal cliente durante un'esportazione o un'importazione, devi impostare una chiave di crittografia gestita dal cliente nel bucket Cloud Storage prima di esportarvi i dati. Non sono previsti requisiti o restrizioni speciali per l'importazione dei dati in una nuova istanza quando i dati sono stati precedentemente archiviati in un'istanza abilitata con una chiave di crittografia gestita dal cliente.

Limitazioni

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

  • Non puoi abilitare le chiavi di crittografia gestite dal cliente su un'istanza esistente.
  • Non puoi assegnare una chiave diversa a una replica nella stessa regione dell'istanza principale. Per le repliche tra regioni, devi creare una nuova chiave per l'area geografica di replica.
  • Non puoi assegnare una chiave diversa a un clone.
  • Non puoi utilizzare chiavi di crittografia gestite dal cliente per criptare:
    • Server esterni (istanze primarie esterne e repliche esterne)
    • Metadati dell'istanza, come ID istanza, versione del database, tipo di macchina, flag, pianificazione del backup e così via.
  • Non puoi utilizzare le chiavi di crittografia gestite dal cliente per criptare i dati utente in transito, ad esempio le query e le risposte degli utenti.

Passaggi successivi