Utilizzo delle chiavi di crittografia gestite dal cliente (CMEK)

Questa pagina descrive come utilizzare una chiave di crittografia Cloud Key Management Service (Cloud KMS) con Cloud Data Fusion.

Per impostazione predefinita, Cloud Data Fusion cripta i contenuti dei clienti in stato at-rest. Cloud Data Fusion 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 i servizi integrati con CMEK, tra cui Cloud Data Fusion. L'utilizzo delle chiavi Cloud KMS ti consente di controllare il loro livello di protezione, la posizione, la pianificazione della rotazione, le autorizzazioni di utilizzo e di accesso e i confini di crittografia. L'utilizzo di Cloud KMS ti consente inoltre di monitorare l'utilizzo delle chiavi, visualizzare i log di controllo e controllare i cicli di vita delle chiavi. Invece che essere di proprietà e gestite da Google, le chiavi di crittografia della chiave (KEK) simmetriche che proteggono i tuoi dati sono sotto il tuo controllo e vengono gestite in Cloud KMS.

Dopo aver configurato le risorse con le CMEK, l'esperienza di accesso alle risorse Cloud Data Fusion è simile all'utilizzo della crittografia predefinita di Google. Per saperne di più sulle opzioni di crittografia, consulta Chiavi di crittografia gestite dal cliente (CMEK).

Cloud Data Fusion supporta il monitoraggio dell'utilizzo delle chiavi Cloud KMS per la risorsa Instance.

CMEK ti consente di controllare i dati scritti nelle risorse interne di Google nei progetti tenant e i dati scritti dalle pipeline di Cloud Data Fusion, tra cui:

  • Log e metadati della pipeline
  • Metadati del cluster Dataproc
  • Vari sink, azioni e origini di dati Cloud Storage, BigQuery, Pub/Sub e Spanner

Risorse di Cloud Data Fusion

Per un elenco dei plug-in di Cloud Data Fusion che supportano CMEK, consulta i plug-in supportati.

Cloud Data Fusion supporta CMEK per i cluster Dataproc. Cloud Data Fusion crea un cluster Dataproc temporaneo da utilizzare nella pipeline, quindi lo elimina al termine della pipeline. CMEK protegge i metadati del cluster scritti in:

  • Dischi permanenti (PD) collegati alle VM del cluster
  • L'output del driver del job e altri metadati scritti nel bucket di staging Dataproc creato automaticamente o dall'utente

Configurare CMEK

Crea una chiave Cloud KMS

Crea una chiave Cloud KMS nel Google Cloud progetto che contiene l'istanza Cloud Data Fusion o in un progetto utente separato. La posizione del keyring Cloud KMS deve corrispondere alla regione in cui crei l'istanza. Una chiave di regione multiregionale o globale non è consentita a livello di istanza perché Cloud Data Fusion è sempre associata a una determinata regione.

Recupera il nome della risorsa per la chiave

API REST

Ottieni il nome della risorsa della chiave che hai creato con il seguente comando:

projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME

Sostituisci quanto segue:

  • PROJECT_ID: il progetto del cliente che ospita l'istanza Cloud Data Fusion
  • REGION: una regione Google Cloud vicina alla tua posizione, ad esempio us-east1
  • KEY_RING_NAME: il nome della chiave automatizzata che riunisce le chiavi di crittografia
  • KEY_NAME: il nome della chiave Cloud KMS

Console

  1. Vai alla pagina Gestione chiavi.

    Vai a Gestione chiavi

  2. Accanto alla chiave, fai clic su Altro .

  3. Seleziona Copia nome risorsa per copiare il nome della risorsa negli appunti.

Aggiorna gli account di servizio del progetto per utilizzare la chiave

Per configurare gli account di servizio del progetto in modo che utilizzino la chiave:

  1. Obbligatorio: concedi il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS (roles/cloudkms.cryptoKeyEncrypterDecrypter) all'agente di servizio Cloud Data Fusion (consulta Concedere ruoli a un account di servizio per risorse specifiche). Questo account ha il seguente formato:

    service-PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com

    La concessione del ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS all'agente di servizio Cloud Data Fusion consente a Cloud Data Fusion di utilizzare CMEK per criptare i dati dei clienti archiviati nei progetti del tenant.

  2. Obbligatorio: concedi il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS all'agente di servizio Compute Engine (consulta Assegnazione di una chiave Cloud KMS a un account di servizio Cloud Storage). Questo account, a cui per impostazione predefinita viene concesso il ruolo Agente di servizio Compute Engine, ha il seguente formato:

    service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com

    L'assegnazione del ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS all'agente di servizio Compute Engine consente a Cloud Data Fusion di utilizzare CMEK per criptare i metadati del disco persistente (PD) scritti dal cluster Dataproc in esecuzione nella pipeline.

  3. Obbligatorio: concedi il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS all'agente di servizio Cloud Storage (consulta Assegnazione di una chiave Cloud KMS a un agente di servizio Cloud Storage). Questo agente di servizio ha il seguente formato:

    service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com

    L'assegnazione del ruolo di crittografia/decrittografia della chiave CryptoKey di Cloud KMS all'agente di servizio Cloud Storage consente a Cloud Data Fusion di utilizzare CMEK per criptare i dati scritti nel bucket di staging del cluster Dataproc e in qualsiasi altra risorsa Cloud Storage utilizzata dalla pipeline.

  4. Obbligatorio: concedi il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS all'agente di servizio Google Cloud Dataproc. Questo agente di servizio è di tipo:

    service-PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com

  5. Facoltativo: se la pipeline utilizza risorse BigQuery, conceda il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS all'account di servizio BigQuery (consulta Concedere l'autorizzazione di crittografia e decrittografia). Questo account ha il seguente formato:

    bq-PROJECT_NUMBER@bigquery-encryption.iam.gserviceaccount.com

  6. Facoltativo: se la pipeline utilizza risorse Pub/Sub, grant the Cloud KMS CryptoKey Encrypter/Decrypter role all'account di servizio Pub/Sub (consulta Utilizzare le chiavi di crittografia gestite dal cliente). Questo account è del tipo:

    service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com

  7. Facoltativo: se la pipeline utilizza risorse Spanner, concedi il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS all'account di servizio Spanner. Questo account ha il seguente formato:

    service-PROJECT_NUMBER@gcp-sa-spanner.iam.gserviceaccount.com

Creare un'istanza Cloud Data Fusion con CMEK

Le chiavi CMEK sono disponibili in tutte le versioni di Cloud Data Fusion 6.5.0 e successive.

API REST

  1. Per creare un'istanza con una chiave di crittografia gestita dal cliente, imposta le seguenti variabili di ambiente:

    export PROJECT=PROJECT_ID
    export LOCATION=REGION
    export INSTANCE=INSTANCE_ID
    export DATA_FUSION_API_NAME=datafusion.googleapis.com
    export KEY=KEY_NAME
    

    Sostituisci quanto segue:

    • PROJECT_ID: il progetto del cliente che ospita l'istanza Cloud Data Fusion
    • REGION: una Google Cloud regione vicina alla tua posizione, ad esempio us-east1
    • INSTANCE_ID: il nome dell'istanza Cloud Data Fusion
    • KEY_NAME: il nome completo della risorsa della chiave CMEK
  2. Esegui il comando seguente per creare un'istanza Cloud Data Fusion:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://$DATA_FUSION_API_NAME/v1/projects/$PROJECT/locations/$LOCATION/instances?instance_id=INSTANCE -X POST -d '{"description": "CMEK-enabled CDF instance created through REST.", "type": "BASIC", "cryptoKeyConfig": {"key_reference": "$KEY"} }'
    

Console

  1. Vai alla pagina Cloud Data Fusion.

  2. Fai clic su Istanze e poi su Crea un'istanza.

    Vai a Istanze

  3. In Opzioni avanzate, seleziona Utilizza una chiave di crittografia gestita dal cliente (CMEK).

  4. Nel campo Seleziona una chiave gestita dal cliente, seleziona il nome della risorsa per la chiave.

    Seleziona il nome della chiave di crittografia

  5. Dopo aver inserito tutti i dettagli dell'istanza, fai clic su Crea. Quando l'istanza è pronta per l'uso, viene visualizzata nella pagina Istanze.

Verificare se CMEK è attivato in un'istanza

Console

Visualizza i dettagli dell'istanza:

  1. Nella console Google Cloud, vai alla pagina Cloud Data Fusion.

  2. Fai clic su Istanze, quindi sul nome dell'istanza per andare alla pagina Dettagli istanza.

    Vai a Istanze

Se CMEK è attivato, il campo Chiave di crittografia viene visualizzato come Disponibile.

Se la chiave CMEK è disattivata, il campo Chiave di crittografia viene visualizzato come Non disponibile.

Utilizzare CMEK con i plug-in supportati

Quando imposti il nome della chiave di crittografia, utilizza il seguente formato:

projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME

Nomi delle chiavi di crittografia

La tabella seguente descrive il comportamento della chiave nei plug-in Cloud Data Fusion che supportano CMEK.

Plug-in supportati Comportamento del tasto
Destinazioni Cloud Data Fusion
Cloud Storage Crittografa i dati scritti in qualsiasi bucket creato dal plug-in. Se il bucket esiste già, questo valore viene ignorato.
Cloud Storage multifile Crittografa i dati scritti in qualsiasi bucket creato dal plug-in.
BigQuery Autentica i dati scritti in qualsiasi bucket, set di dati o tabella creato dal plug-in.
Multitabelle BigQuery Autentica i dati scritti in qualsiasi bucket, set di dati o tabella creato dal plug-in.
Pub/Sub Cripta i dati scritti in qualsiasi argomento creato dal plug-in. Se l'argomento esiste già, questo valore viene ignorato.
Spanner Cripta i dati scritti in qualsiasi database creato dal plug-in. Se il database esiste già, questo valore viene ignorato.
Azioni Cloud Data Fusion
Cloud Storage Create
Cloud Storage Copy
Cloud Storage Move
Cloud Storage Done File Marker
Crittografa i dati scritti in qualsiasi bucket creato dal plug-in. Se il bucket esiste già, questo valore viene ignorato.
BigQuery Execute Autentica i dati scritti nel set di dati o nella tabella creati dal plug-in per memorizzare i risultati della query. È applicabile solo se memorizzi i risultati della query in una tabella BigQuery.
Origini Cloud Data Fusion
Origine BigQuery Crittografa i dati scritti in qualsiasi bucket creato dal plug-in. Se il bucket esiste già, questo valore viene ignorato.
Motore SQL di Cloud Data Fusion
BigQuery Pushdown Engine Autentica i dati scritti in qualsiasi bucket, set di dati o tabella creato dal plug-in.

Utilizzare CMEK con i metadati del cluster Dataproc

I profili di calcolo predefiniti utilizzano la chiave CMEK fornita durante la creazione dell'istanza per criptare i metadati del disco permanente (PD) e del bucket di staging scritti dal cluster Dataproc in esecuzione nella pipeline. Puoi modificare l'utilizzo di un'altra chiave effettuando una delle seguenti operazioni:

  • Consigliato: crea un nuovo profilo di calcolo Dataproc (solo versione Enterprise).
  • Modifica un profilo di calcolo Dataproc esistente (versioni Developer, Basic o Enterprise).

Console

  1. Apri l'istanza Cloud Data Fusion:

    1. Nella console Google Cloud, vai alla pagina Cloud Data Fusion.

    2. Per aprire l'istanza in Cloud Data Fusion Studio, fai clic su Istanze e poi su Visualizza istanza.

      Vai a Istanze

  2. Fai clic su Amministrazione sistema > Configurazione.

  3. Fai clic sul menu a discesa Profili di calcolo di sistema.

  4. Fai clic su Crea nuovo profilo e seleziona Dataproc.

  5. Inserisci un'Etichetta profilo, un Nome profilo e una Descrizione.

  6. Per impostazione predefinita, Dataproc crea bucket temporanei e di gestione temporanea ogni volta che Cloud Data Fusion crea un cluster temporaneo. Cloud Data Fusion supporta il passaggio del bucket di staging Dataproc come argomento nel profilo di calcolo. Per criptare il bucket di staging, crea un bucket abilitato per CMEK e passalo come argomento a Dataproc nel profilo di calcolo.

  7. Per impostazione predefinita, Cloud Data Fusion crea automaticamente un bucket Cloud Storage per eseguire lo staging delle dipendenze utilizzate da Dataproc. Se preferisci utilizzare un bucket Cloud Storage già esistente nel tuo progetto:

    1. Nella sezione Impostazioni generali, inserisci il bucket Cloud Storage esistente nel campo Bucket Cloud Storage.

    2. Aggiungi la chiave Cloud KMS al bucket Cloud Storage.

  8. Ottieni l'ID risorsa della chiave Cloud KMS. Nella sezione Impostazioni generali, inserisci l'ID risorsa nel campo Nome chiave di crittografia.

  9. Fai clic su Crea.

  10. Se nella sezione Profili di calcolo del sistema della scheda Configurazione è elencato più di un profilo, imposta il nuovo profilo Dataproc come profilo predefinito posizionando il cursore del mouse sul campo del nome del profilo e facendo clic sulla stella visualizzata.

    Seleziona il profilo predefinito.

Utilizzare CMEK con altre risorse

La chiave CMEK fornita viene impostata sulla preferenza di sistema durante la creazione dell'istanza Cloud Data Fusion. Viene utilizzato per criptare i datiscritti nelle risorse appena create dagli sink della pipeline, come Cloud Storage, BigQuery, Pub/Sub o gli sink Spanner.

Questa chiave si applica solo alle risorse appena create. Se la risorsa esiste già prima dell'esecuzione della pipeline, devi applicare manualmente la chiave CMEK alle risorse esistenti.

Puoi modificare la chiave CMEK eseguendo una delle seguenti operazioni:

  • Utilizza un argomento di runtime.
  • Imposta una preferenza di sistema Cloud Data Fusion.

Argomento di runtime

  1. Nella pagina Pipeline Studio di Cloud Data Fusion, fai clic sulla freccia del menu a discesa a destra del pulsante Esegui.
  2. Nel campo Nome, inserisci gcp.cmek.key.name.
  3. Nel campo Valore, inserisci l'ID risorsa della chiave.
    Seleziona la versione di Data Fusion.
  4. Fai clic su Salva.

    L'argomento di runtime impostato qui si applica solo alle esecuzioni della pipeline corrente.

Preferenza

  1. Nell'interfaccia utente di Cloud Data Fusion, fai clic su SYSTEM ADMIN (AMMINISTRAZIONE DI SISTEMA).
  2. Fai clic sulla scheda Configuration (Configurazione).
  3. Fai clic sul menu a discesa Preferenze di sistema.
  4. Fai clic su Modifica preferenze di sistema.
  5. Nel campo Key (Chiave), inserisci gcp.cmek.key.name.
  6. Nel campo Valore, inserisci l'ID risorsa della chiave.
    Seleziona la versione di Data Fusion.
  7. Fai clic su Salva e chiudi.