Utilizzo delle chiavi di crittografia gestite dal cliente

Per impostazione predefinita, Google Cloud cripta i dati quando sono at-rest mediante chiavi di crittografia gestite da Google. Se hai requisiti di conformità specifici i requisiti normativi relativi alle chiavi che proteggono i tuoi dati, puoi utilizzare le chiavi di crittografia gestite dal cliente (CMEK) per Dataform repository.

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

Per ulteriori informazioni su CMEK in generale, ad esempio 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 in quel repository vengono criptati usando il set di chiavi di protezione CMEK per il repository. Questi dati includono le seguenti:

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

Dataform utilizza chiavi di protezione CMEK nei seguenti scenari:

  • Durante ogni operazione che richiede la decriptazione dei dati inattivi del cliente. 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 a Risorse Dataform. Dataform non gestisce la crittografia di dati dei clienti creati in BigQuery mediante l'esecuzione Flussi di lavoro Dataform. Per criptare i dati creati e archiviati in BigQuery, configurare 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 ulteriori informazioni sulla disponibilità geografica delle chiavi CMEK, consulta Località di Cloud KMS.

Limitazioni

Dataform supporta CMEK con le seguenti limitazioni:

  • Non puoi applicare una chiave di protezione CMEK a un repository dopo che questo è è stata creata. 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'uso delle chiavi Cloud HSM è soggetto a disponibilità. Per ulteriori informazioni sulla disponibilità delle chiavi nelle varie località, consulta Località di Cloud KMS.

Quote di Cloud KMS e Dataform

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

Gestione delle chiavi

Utilizza Cloud KMS per tutte le operazioni di gestione delle chiavi. Dataform non può rilevare o intervenire su modifiche chiave fino a quando e vengono propagate da Cloud KMS. Alcune operazioni, ad esempio disabilitazione o distruggendo una chiave, può fino a tre ore per la propagazione. In genere, le modifiche alle autorizzazioni si propagano molto più velocemente.

Dopo la creazione del repository, Dataform chiama a Cloud KMS di verificare che la chiave sia ancora valida durante ogni operazione sui dati dei repository criptati.

Se Dataform rileva che la chiave Cloud KMS ha disabili o eliminati, tutti i dati archiviati nel repository corrispondente diventa inaccessibile.

Se Dataform chiama Cloud KMS rileva che una chiave precedentemente disabilitata è stata di nuovo abilitato, Dataform ripristina automaticamente l'accesso.

Come viene gestito uno stato di una chiave non disponibile

In rari scenari, ad esempio durante periodi in cui Cloud KMS viene 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 attivata nel momento in cui Dataform non è in grado di comunicano con Cloud KMS, i dati del repository criptato diventa inaccessibile.

I dati del repository criptato rimangono inaccessibili fino a quando Dataform può riconnettersi con Cloud KMS, e Cloud KMS risponde che sia attiva.

Al contrario, se il repository Dataform è protetto da una chiave che viene disabilitato nel momento in cui Dataform viene non riesce a comunicare con Cloud KMS, i dati del repository criptato rimane inaccessibile finché non riesce a riconnettersi a Cloud KMS e hai riattivato la chiave.

Logging

Puoi controllare le richieste che Dataform invia Cloud KMS per tuo conto in Cloud Logging, se hai abilitato i log di controllo per l'API Cloud KMS nel tuo progetto. Questi Le voci di log di Cloud KMS sono visibili in Cloud Logging. Per ulteriori informazioni, vedi Visualizza 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 avere un maggiore controllo sulle autorizzazioni. Per informazioni sugli ID e sui numeri di progetto Google Cloud, consulta Identificazione dei progetti.

  • Per il progetto Google Cloud che esegue Cloud KMS:

    1. Abilitare l'API Cloud Key Management Service.
    2. Crea un keyring e una chiave come descritto in Creazione di keyring e chiavi. Crea il keyring in una località corrispondente a quella del tuo Dataform repository:
      • I repository devono usare chiavi regionali corrispondenti. Ad esempio: un repository nella regione asia-northeast3 deve essere protetto con una chiave da un keyring situato in asia-northeast3.
      • Non è possibile utilizzare la regione global con Dataform.
      Per ulteriori informazioni sulle località supportate per Dataform e Cloud KMS, vedi Località cloud.

Attiva CMEK

Dataform può accedere alla chiave per tuo conto dopo concedi a Cloud KMS Autore crittografia/decrittografia CryptoKey (roles/cloudkms.cryptoKeyEncrypterDecrypter) al ruolo 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 al Dataform predefinito segui questi passaggi:

Console

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

    Aperto alla 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 la chiave 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à nell'elenco dei membri, deve ruoli esistenti. Fai clic sull'elenco a discesa del ruolo corrente per l'account di servizio.
  6. Fai clic sull'elenco a discesa per Seleziona un ruolo, fai clic su Cloud KMS e quindi fai clic sul ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS.

  7. Fai clic su Salva per applicare il ruolo al 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 tuo account Google Cloud che esegue Cloud KMS
  • SERVICE_ACCOUNT: l'indirizzo email predefinito Account di servizio Dataform
  • KMS_KEY_LOCATION: il nome della località Chiave Cloud KMS
  • KMS_KEY_RING: il nome del keyring della tua Chiave Cloud KMS
  • KMS_KEY: il nome della chiave Chiave Cloud KMS

Applica CMEK a un repository

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

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 una volta creato il repository.

Per ulteriori informazioni, consulta la sezione Restrizioni.

Passaggi successivi