Modello di mascheramento/tokenizzazione dei dati da Cloud Storage a BigQuery (utilizzando Cloud DLP)

Il modello Data Masking/Tokenization da Cloud Storage a BigQuery utilizza la protezione dei dati sensibili e crea una pipeline in streaming che esegue i seguenti passaggi:

  1. Legge i file CSV da un bucket Cloud Storage.
  2. Chiama l'API Cloud Data Loss Prevention (parte di Sensitive Data Protection) per l'anonimizzazione.
  3. Scrive i dati anonimizzati nella tabella BigQuery specificata.

Il modello supporta l'utilizzo sia di un modello di ispezione sia di un modello di anonimizzazione di Sensitive Data Protection. Di conseguenza, il modello supporta entrambe le seguenti attività:

  • Cerca informazioni potenzialmente sensibili e anonimizza i dati.
  • Anonimizza i dati strutturati per le colonne specificate come da anonimizzare e per le quali non è necessaria alcuna ispezione.

Questo modello non supporta un percorso regionale per la posizione del modello di anonimizzazione. È supportato solo un percorso globale.

Requisiti della pipeline

  • I dati di input da tokenizzare devono esistere.
  • I modelli Sensitive Data Protection devono esistere (ad esempio DeidentifyTemplate e InspectTemplate). Per ulteriori dettagli, consulta Modelli di Sensitive Data Protection.
  • Il set di dati BigQuery deve esistere.

Parametri del modello

Parametri obbligatori

  • inputFilePattern : i file CSV da cui leggere i record dei dati di input. Sono accettati anche i caratteri jolly. (ad es. gs://mybucket/my_csv_filename.csv o gs://mybucket/file-*.csv).
  • deidentifyTemplateName : il modello di anonimizzazione Sensitive Data Protection da utilizzare per le richieste API, specificato con il pattern projects/<PROJECT_ID>/deidentifyTemplates/<TEMPLATE_ID>. (Esempio: projects/your-project-id/locations/global/deidentifyTemplates/generated_template_id).
  • datasetName : il set di dati BigQuery da utilizzare per l'invio dei risultati tokenizzati. Il set di dati deve esistere prima dell'esecuzione.
  • dlpProjectId : l'ID del progetto Google Cloud proprietario della risorsa dell'API DLP. Questo progetto può essere lo stesso che possiede i modelli di Sensitive Data Protection o un progetto separato.

Parametri facoltativi

  • inspectTemplateName : il modello di ispezione Sensitive Data Protection da utilizzare per le richieste API, specificato con il pattern projects/<PROJECT_ID>/identifyTemplates/<TEMPLATE_ID>. (Esempio: projects/your-project-id/locations/global/inspectTemplates/generated_template_id).
  • batchSize : le dimensioni del chunking o del batch da utilizzare per inviare i dati da ispezionare e detokenizzare. Per un file CSV, il valore di batchSize è il numero di righe in un batch. Determina la dimensione del batch in base alle dimensioni dei record e alle dimensioni del file. L'API DLP ha un limite di dimensione del payload di 524 KB per chiamata API.

Esegui il modello

Console

  1. Vai alla pagina Crea job da modello di Dataflow.
  2. Vai a Crea job da modello
  3. Nel campo Nome job, inserisci un nome univoco per il job.
  4. (Facoltativo) Per Endpoint a livello di regione, seleziona un valore dal menu a discesa. La regione predefinita è us-central1.

    Per un elenco delle regioni in cui puoi eseguire un job Dataflow, consulta Località di Dataflow.

  5. Nel menu a discesa Modello di flusso di dati, seleziona the Data Masking/Tokenization from Cloud Storage to BigQuery (using Cloud DLP) template.
  6. Nei campi dei parametri forniti, inserisci i valori dei parametri.
  7. Fai clic su Esegui job.

gcloud

Nella shell o nel terminale, esegui il modello:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates-REGION_NAME/VERSION/Stream_DLP_GCS_Text_to_BigQuery \
    --region REGION_NAME \
    --staging-location STAGING_LOCATION \
    --parameters \
inputFilePattern=INPUT_DATA,\
datasetName=DATASET_NAME,\
batchSize=BATCH_SIZE_VALUE,\
dlpProjectId=DLP_API_PROJECT_ID,\
deidentifyTemplateName=projects/TEMPLATE_PROJECT_ID/deidentifyTemplates/DEIDENTIFY_TEMPLATE,\
inspectTemplateName=projects/TEMPLATE_PROJECT_ID/identifyTemplates/INSPECT_TEMPLATE_NUMBER

Sostituisci quanto segue:

  • DLP_API_PROJECT_ID: l'ID del tuo progetto API DLP
  • JOB_NAME: un nome di job univoco a tua scelta
  • REGION_NAME: la regione in cui vuoi eseguire il deployment del job Dataflow, ad esempio us-central1
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

  • STAGING_LOCATION: la posizione per l'organizzazione in anteprima dei file locali (ad esempio gs://your-bucket/staging)
  • INPUT_DATA: il percorso del file di input
  • DEIDENTIFY_TEMPLATE: il numero del modello di anonimizzazione Sensitive Data Protection
  • DATASET_NAME: il nome del set di dati BigQuery
  • INSPECT_TEMPLATE_NUMBER: il numero del modello di ispezione Sensitive Data Protection
  • BATCH_SIZE_VALUE: la dimensione del batch ("# of rows per API for CSV files")

REST

Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per ulteriori informazioni sull'API e sui relativi ambiti di autorizzazione, consulta projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates-LOCATION/VERSION/Stream_DLP_GCS_Text_to_BigQuery
{
   "jobName": "JOB_NAME",
   "environment": {
       "ipConfiguration": "WORKER_IP_UNSPECIFIED",
       "additionalExperiments": []
   },
   "parameters": {
      "inputFilePattern":INPUT_DATA,
      "datasetName": "DATASET_NAME",
      "batchSize": "BATCH_SIZE_VALUE",
      "dlpProjectId": "DLP_API_PROJECT_ID",
      "deidentifyTemplateName": "projects/TEMPLATE_PROJECT_ID/deidentifyTemplates/DEIDENTIFY_TEMPLATE",
      "inspectTemplateName": "projects/TEMPLATE_PROJECT_ID/identifyTemplates/INSPECT_TEMPLATE_NUMBER"
   }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Google Cloud in cui vuoi eseguire il job Dataflow
  • DLP_API_PROJECT_ID: l'ID del tuo progetto API DLP
  • JOB_NAME: un nome di job univoco a tua scelta
  • LOCATION: la regione in cui vuoi eseguire il deployment del job Dataflow, ad esempio us-central1
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

  • STAGING_LOCATION: la posizione per l'organizzazione in anteprima dei file locali (ad esempio gs://your-bucket/staging)
  • INPUT_DATA: il percorso del file di input
  • DEIDENTIFY_TEMPLATE: il numero del modello di anonimizzazione Sensitive Data Protection
  • DATASET_NAME: il nome del set di dati BigQuery
  • INSPECT_TEMPLATE_NUMBER: il numero del modello di ispezione Sensitive Data Protection
  • BATCH_SIZE_VALUE: la dimensione del batch ("# of rows per API for CSV files")

Passaggi successivi