Informazioni sulle chiavi di crittografia gestite dal cliente (CMEK)

Per impostazione predefinita, Cloud SQL per PostgreSQL cripta i contenuti inattivi dei clienti. Cloud SQL per PostgreSQL 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 SQL per PostgreSQL. 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 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 SQL per PostgreSQL è simile all'utilizzo della crittografia predefinita di Google. Per saperne di più sulle opzioni di crittografia, consulta Chiavi di crittografia gestite dal cliente (CMEK).

Crittografia gestita da Google e crittografia gestita dal cliente

I diagrammi di seguito 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. Le chiavi di crittografia dei dati vengono aggregate utilizzando una chiave di crittografia della chiave. Con la crittografia predefinita di Google, la chiave di crittografia della chiave viene recuperata dal Keystore interno di Google. I blocchi criptati e le chiavi di crittografia con wrapping vengono 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. Le chiavi di crittografia dei dati vengono aggregate 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 vengono distribuiti nell'infrastruttura di archiviazione di Google.

Quando decripta i dati criptati 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 di decrittografia della DEK viene inviata allo spazio di archiviazione di KMS, che archivia la KEK non esportabile. KMS Storage restituisce la DEK un-wrapped.

Se attivi la cache dei dati su un'istanza della versione Cloud SQL Enterprise Plus abilitata per CMEK, Cloud SQL cripta anche l'SSD locale utilizzato per la cache dei dati.

Quando Cloud SQL interagisce con le chiavi CMEK?

Operazione Note
Creazione dell'istanza Durante la creazione dell'istanza, configurala in modo da utilizzare le chiavi di crittografia gestite dal cliente.
Creazione del backup Durante i backup di 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. Per i backup avanzati, il servizio di Backup e DR utilizza la CMEK ereditata dall'istanza, non quella configurata nel vault di backup.
Ripristino dell'istanza Durante i ripristini di un'istanza abilitata per CMEK, Cloud SQL utilizza la chiave per accedere ai dati nell'istanza di backup in fase di ripristino. Quando esegui il ripristino in un'altra istanza, l'istanza target può utilizzare una chiave diversa per la crittografia.
Creazione di repliche Quando crei una replica di lettura di un'istanza Cloud SQL nella stessa regione, questa eredita la CMEK dall'istanza principale. Se crei una replica di lettura in una regione diversa, devi selezionare una CMEK dall'altra regione. Ogni regione utilizza il proprio set di chiavi.
Creazione del clone I cloni di 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 di un'istanza abilitata per CMEK, Cloud SQL controlla la chiave CMEK.

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

La chiave CMEK è disponibile in tutte le località delle istanze 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 disporre di un account di servizio e concedere l'accesso alla chiave di crittografia gestita dal cliente al account di servizio. Il account di servizio deve esistere all'interno del progetto. Il account di servizio è visibile in tutte le regioni.

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

Informazioni sulle chiavi

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

Devi conoscere l'ID e la regione della chiave quando crei nuove istanze Cloud SQL che utilizzano chiavi di crittografia gestite dal cliente. Devi inserire le 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 che per le istanze Cloud SQL oppure progetti diversi per ciascuna.

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

projects/[KMS_PROJECT_ID]/locations/[LOCATION]/keyRings/[KEY_RING]/cryptoKeys/[KEY_NAME]

Se Cloud SQL non riesce ad accedere alla chiave (ad esempio se disattivi la versione della chiave), Cloud SQL sospende l'istanza. Una volta che la chiave diventa nuovamente accessibile, Cloud SQL riprende automaticamente l'istanza. Tuttavia, questa operazione può richiedere fino a 10 minuti a causa del processo di convalida interno associato.

Quando ruoti le chiavi, le istanze criptate con quella chiave non vengono criptate di nuovo automaticamente con la nuova versione della chiave primaria. Puoi criptare nuovamente qualsiasi istanza o replica principale CMEK esistente con la nuova versione della chiave primaria. Per la maggior parte delle istanze, la nuova crittografia non causa tempi di inattività. Per ulteriori informazioni su come criptare nuovamente un'istanza o una replica Cloud SQL dopo una rotazione delle chiavi, consulta Cripta nuovamente un'istanza o una replica abilitata per CMEK esistente.

Gestori di chiavi esterni

Puoi utilizzare le chiavi archiviate nei gestori di chiavi esterni supportati come chiavi di crittografia gestite dal cliente. Per scoprire come utilizzare le chiavi esterne con Cloud KMS e per visualizzare un elenco di EKM compatibili, consulta Cloud External Key Manager.

Key Access Justifications

Puoi utilizzare Key Access Justifications nell'ambito di Cloud EKM. Key Access Justifications ti consente di visualizzare il motivo di ogni richiesta di Cloud EKM. Inoltre, in base alla giustificazione fornita, puoi approvare o rifiutare automaticamente una richiesta. Per saperne di più, consulta la panoramica di Key Access Justifications.

Pertanto, Key Access Justifications offre un controllo aggiuntivo sui tuoi dati fornendo una giustificazione per ogni tentativo di decriptarli.

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 definitivamente inaccessibili i dati criptati con CMEK?

Potresti trovarti in situazioni in cui vuoi distruggere definitivamente i dati criptati con CMEK. Per farlo, devi distruggere la versione della chiave di crittografia gestita dal cliente. Puoi eliminare singole versioni della chiave o tutte le versioni di una chiave.

Revoca dell'accesso alle chiavi per i backup avanzati criptati con CMEK

Per eseguire il backup e il ripristino dei backup avanzati abilitati per CMEK, devi mantenere l'accesso alla CMEK utilizzata dall'istanza sia dal service agent di Cloud SQL sia dal service agent del servizio di Backup e DR. Questa sezione spiega in che modo la revoca dell'accesso alle chiavi influisce sulla funzionalità di backup e ripristino.

  • Revoca l'accesso all'agente di servizio Cloud SQL: se l'agente di servizio Cloud SQL perde l'accesso alla CMEK, l'istanza viene sospesa e non è possibile creare nuovi backup. Tuttavia, poiché l'agente di servizio di Backup e RE ha il proprio accesso alla CMEK, i backup avanzati esistenti possono comunque essere ripristinati.

  • Revoca l'accesso dall'agente di servizio di Backup e DR: se l'agente di servizio di Backup e RE perde l'accesso alla CMEK, l'istanza rimane utilizzabile, ma non è possibile creare nuovi backup avanzati e non è possibile ripristinare i backup avanzati esistenti finché non viene ripristinato l'accesso alla chiave per il account di servizio di Backup e RE.

  • Disattiva la versione della chiave: se la versione della chiave utilizzata per criptare un backup avanzato è disattivata, il backup non può essere ripristinato a meno che la chiave non venga riattivata. I backup avanzati criptati utilizzando una versione della chiave che è stata eliminata diventano definitivamente non ripristinabili. Tuttavia, se la chiave contiene una versione della chiave primaria attiva, l'istanza può continuare a creare nuovi backup.

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

Se vuoi che i tuoi dati rimangano criptati con una chiave gestita dal cliente durante un'esportazione o un'importazione, devi impostare una chiave di crittografia gestita dal cliente sul bucket Cloud Storage prima di esportare i dati. Non esistono requisiti o restrizioni particolari per l'importazione di dati in una nuova istanza quando i dati erano precedentemente archiviati in un'istanza abilitata con una chiave di crittografia gestita dal cliente.

Limitazioni

Quando utilizzi le 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 la regione della replica.
  • Non puoi assegnare una chiave diversa a un clone.
  • Non puoi utilizzare le chiavi di crittografia gestite dal cliente per criptare:
    • Server esterni (istanze principali 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, come le query e le risposte degli utenti.
  • Dopo aver creato un'istanza Cloud SQL, non puoi modificare il tipo di chiave di crittografia. Non puoi passare da unaGoogle-owned and Google-managed encryption key a una chiave Cloud Key Management Service (Cloud KMS) o viceversa.

Passaggi successivi