Utilizzo delle chiavi di crittografia gestite dal cliente

Per impostazione predefinita, Google Cloud cripta automaticamente i dati inattivi utilizzando chiavi di crittografia gestite da Google. Se hai requisiti specifici di conformità o normativi relativi alle chiavi che proteggono i dati, puoi utilizzare le chiavi di crittografia gestite dal cliente (CMEK) per i repository Dataform.

Questa guida descrive l'utilizzo di CMEK per Dataform e illustra come abilitare la crittografia CMEK dei repository Dataform.

Per saperne di più su CMEK in generale, inclusi quando e perché abilitarla, consulta la documentazione di CMEK.

Crittografia CMEK dei dati del repository

Quando applichi la crittografia CMEK a un repository Dataform, tutti i dati dei clienti gestiti da Dataform nel repository vengono criptati at-rest utilizzando il set di chiavi di protezione CMEK per il repository. Questi dati includono quanto segue:

  • Contenuti del repository Git del repository Dataform e delle sue aree di lavoro
  • Query SQL compilate ed errori di compilazione
  • Query SQL archiviate delle azioni del flusso di lavoro
  • Dettagli errore delle azioni del flusso di lavoro eseguite

Dataform utilizza chiavi di protezione CMEK nei seguenti scenari:

  • Durante ogni operazione che richiede la decrittografia dei dati dei clienti archiviati at-rest. Queste operazioni includono, a titolo esemplificativo:
  • Durante ogni operazione che richiede l'archiviazione dei dati at-rest dei clienti. Queste operazioni includono, a titolo esemplificativo:

Dataform gestisce la crittografia dei dati dei clienti associati solo alle risorse Dataform. Dataform non gestisce la crittografia dei dati dei clienti creati in BigQuery tramite l'esecuzione dei flussi di lavoro Dataform. Per criptare i dati creati e archiviati in BigQuery, configura CMEK per BigQuery.

Chiavi supportate

Dataform supporta i seguenti tipi di chiavi CMEK:

La disponibilità delle chiavi varia in base al tipo di chiave e alla regione. Per saperne di più sulla disponibilità geografica delle chiavi CMEK, vedi Località di Cloud KMS.

Limitazioni

Dataform supporta CMEK con le seguenti limitazioni:

  • Non puoi applicare una chiave di protezione CMEK a un repository dopo la creazione del repository. Puoi applicare la crittografia CMEK solo durante la creazione del repository.
  • Non puoi rimuovere una chiave di protezione CMEK da un repository.
  • Non puoi modificare una chiave di protezione CMEK per un repository.
  • I criteri dell'organizzazione CMEK non sono disponibili.
  • L'utilizzo delle chiavi Cloud HSM è soggetto a disponibilità. Per ulteriori informazioni sulla disponibilità delle chiavi in tutte le località, consulta le località di Cloud KMS.

Quote di Cloud KMS e Dataform

Puoi utilizzare le chiavi Cloud HSM con Dataform. Quando utilizzi CMEK in Dataform, i tuoi progetti possono consumare quote per le richieste crittografiche di Cloud KMS. Ad esempio, i repository Dataform criptati con CMEK possono consumare queste quote per ogni modifica ai contenuti del repository. Le operazioni di crittografia e decriptazione mediante chiavi CMEK influiscono sulle quote di Cloud KMS solo se utilizzi chiavi hardware (Cloud HSM) o esterne (Cloud EKM). Per ulteriori informazioni, consulta Quote di Cloud KMS.

Gestione delle chiavi

Utilizzare Cloud KMS per tutte le operazioni di gestione delle chiavi. Dataform non può rilevare o intervenire su modifiche alle chiavi finché non vengono propagate da Cloud KMS. Alcune operazioni, come la disattivazione o l'eliminazione di una chiave, possono richiedere fino a tre ore per la propagazione. Le modifiche alle autorizzazioni di solito si propagano molto più velocemente.

Dopo la creazione del repository, Dataform chiama Cloud KMS per assicurarsi che la chiave sia ancora valida durante ogni operazione sui dati del repository criptati.

Se Dataform rileva che la chiave Cloud KMS è stata disabilitata o eliminata, tutti i dati archiviati nel repository corrispondente diventano inaccessibili.

Se le chiamate da Dataform a Cloud KMS rilevano che una chiave precedentemente disabilitata è stata riattivata, Dataform ripristina automaticamente l'accesso.

Come viene gestito uno stato di una chiave non disponibile

In rari casi, ad esempio in periodi in cui Cloud KMS non è disponibile, Dataform potrebbe non essere in grado di recuperare lo stato della chiave da Cloud KMS.

Se il repository Dataform è protetto da una chiave abilitata nel momento in cui Dataform non è in grado di comunicare con Cloud KMS, i dati del repository criptati diventano inaccessibili.

I dati del repository criptati rimangono inaccessibili finché Dataform non riesce a riconnettersi con Cloud KMS e Cloud KMS risponde che la chiave è attiva.

Al contrario, se il repository Dataform è protetto da una chiave disabilitata nel momento in cui Dataform non riesce a comunicare per la prima volta con Cloud KMS, i dati del repository criptati rimangono inaccessibili fino a quando non sarà in grado di riconnettersi a Cloud KMS e non avrai riabilitato la chiave.

Logging

Puoi controllare le richieste che Dataform invia a Cloud KMS per tuo conto in Cloud Logging, se hai abilitato l'audit logging per l'API Cloud KMS nel tuo progetto. Queste voci di log di Cloud KMS sono visibili in Cloud Logging. Per ulteriori informazioni, consulta Visualizzare i log.

Prima di iniziare

  • Decidi se eseguire Dataform e Cloud KMS in progetti diversi o nello stesso progetto. Ti consigliamo di utilizzare progetti separati per un maggiore controllo sulle autorizzazioni. Per informazioni sugli ID e sui numeri di progetto di Google Cloud, consulta Identificazione dei progetti.

  • Per il progetto Google Cloud che esegue Cloud KMS:

    1. Abilita l'API Cloud Key Management Service.
    2. Crea un keyring e una chiave come descritto nella sezione Creazione di keyring e chiavi. Crea il keyring in una località che corrisponda alla località del tuo repository Dataform:
      • I repository devono utilizzare chiavi a livello di regione corrispondenti. Ad esempio, un repository nella regione asia-northeast3 deve essere protetto con una chiave di un keyring situato in asia-northeast3.
      • La regione global non può essere utilizzata con Dataform.
      Per ulteriori informazioni sulle località supportate per Dataform e Cloud KMS, consulta Località cloud.

Attivare CMEK

Dataform può accedere alla chiave per tuo conto dopo che avrai concesso il ruolo Autore crittografia/decrittografia CryptoKey (roles/cloudkms.cryptoKeyEncrypterDecrypter) di Cloud KMS all'account di servizio Dataform predefinito.

Il tuo ID account di servizio Dataform predefinito è nel seguente formato:

service-YOUR_PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com

Per concedere il ruolo Autore crittografia/decrittografia CryptoKey all'account di servizio Dataform predefinito, segui questi passaggi:

Console

  1. Apri la pagina Gestione delle chiavi nella console Google Cloud.

    Apri la pagina Gestione delle chiavi

  2. Fai clic sul nome del keyring che contiene la chiave.

  3. Fai clic sulla casella di controllo della chiave di crittografia a cui vuoi aggiungere il ruolo. Si apre la scheda Autorizzazioni.

  4. Fai clic su Aggiungi membro.

  5. Inserisci l'indirizzo email dell'account di servizio

    • Se l'account di servizio è già presente nell'elenco dei membri, significa che dispone di ruoli esistenti. Fai clic sull'elenco a discesa del ruolo attuale per l'account di servizio.
  6. Fai clic sull'elenco a discesa per Seleziona un ruolo, fai clic su Cloud KMS e poi sul ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS.

  7. Fai clic su Salva per applicare il ruolo all'account di servizio.

gcloud

Puoi utilizzare Google Cloud CLI per assegnare il ruolo:

gcloud kms keys add-iam-policy-binding \
    --project=KMS_PROJECT_ID \
    --member serviceAccount:SERVICE_ACCOUNT \
    --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
    --location=KMS_KEY_LOCATION \
    --keyring=KMS_KEY_RING \
    KMS_KEY

Sostituisci quanto segue:

  • KMS_PROJECT_ID: l'ID del progetto Google Cloud che esegue Cloud KMS
  • SERVICE_ACCOUNT: l'indirizzo email del tuo account di servizio Dataform predefinito
  • KMS_KEY_LOCATION: nome della località della chiave Cloud KMS
  • KMS_KEY_RING: nome del keyring della chiave Cloud KMS
  • KMS_KEY: nome della chiave Cloud KMS

Applica CMEK a un repository

Puoi applicare la protezione CMEK a un repository Dataform durante la creazione.

Per applicare la crittografia CMEK a un repository Dataform, specifica una chiave Cloud KMS quando crei il repository. Per le istruzioni, vedi Creare un repository.

Non puoi modificare il meccanismo di crittografia di un repository Dataform dopo la creazione del repository.

Per ulteriori informazioni, consulta la sezione Restrizioni.

Passaggi successivi