Modelo de mascaramento de dados/tokenização do Cloud Storage para BigQuery (usando o Cloud DLP)

O modelo de mascaramento/tokenização de dados do Cloud Storage para o BigQuery usa a Proteção de dados sensíveis e cria um pipeline de streaming que realiza as seguintes etapas:

  1. Lê arquivos CSV de um bucket do Cloud Storage.
  2. Chama a API Cloud Data Loss Prevention (parte da Proteção de dados sensíveis) para desidentificação.
  3. grava os dados desidentificados na tabela especificada do BigQuery.

O modelo permite usar um modelo de inspeção e um modelo de desidentificação da Proteção de dados sensíveis. Como resultado, o modelo é compatível com as duas tarefas a seguir:

  • Inspecione informações potencialmente confidenciais e desidentifique os dados.
  • Desidentifique dados estruturados em que as colunas são especificadas para serem desidentificadas e nenhuma inspeção é necessária.

Este modelo não aceita um caminho regional para o local do modelo de desidentificação. Somente um caminho global é compatível.

Requisitos de pipeline

  • Os dados de entrada para tokenizar precisam existir.
  • Os modelos da Proteção de dados sensíveis precisam existir (por exemplo, DeidentifyTemplate e InspectTemplate). Para mais detalhes, consulte Modelos da Proteção de dados sensíveis.
  • O conjunto de dados do BigQuery precisa existir.

Parâmetros do modelo

Parâmetros obrigatórios

  • inputFilePattern: arquivo(s) csv para ler registros de dados de entrada. Caracteres curingas também são aceitos. (Por exemplo: gs://mybucket/my_csv_filename.csv or gs://mybucket/file-*.csv).
  • deidentifyTemplateName: o modelo de desidentificação da Proteção de Dados Sensíveis a ser usado para solicitações de API, especificado com o padrão projects/<PROJECT_ID>/deidentifyTemplates/<TEMPLATE_ID>. Exemplo: projects/your-project-id/locations/global/deidentifyTemplates/generated_template_id.
  • datasetName: o conjunto de dados do BigQuery que será usado no envio de resultados tokenizados. O conjunto de dados precisa existir antes da execução.
  • dlpProjectId: o ID do projeto do Google Cloud que é proprietário do recurso da API DLP. Esse projeto pode ser o mesmo que tem os modelos da Proteção de Dados Sensíveis ou um projeto separado.

Parâmetros opcionais

  • inspectTemplateName: o modelo de inspeção de Proteção de Dados Sensíveis que será usado nas solicitações de API, especificado com o padrão projects/<PROJECT_ID>/identifyTemplates/<TEMPLATE_ID>. Por exemplo, projects/your-project-id/locations/global/inspectTemplates/generated_template_id.
  • batchSize: o tamanho do lote ou do fragmento a ser usado para enviar dados para inspeção e detokenização. Para um arquivo CSV, o valor de batchSize é o número de linhas em um lote. Determine o tamanho do lote com base no tamanho dos registros e do arquivo. A API DLP tem um limite de tamanho de payload de 524 KB por chamada de API.

Executar o modelo

Console

  1. Acesse a página Criar job usando um modelo do Dataflow.
  2. Acesse Criar job usando um modelo
  3. No campo Nome do job, insira um nome exclusivo.
  4. Opcional: em Endpoint regional, selecione um valor no menu suspenso. A região padrão é us-central1.

    Para ver uma lista de regiões em que é possível executar um job do Dataflow, consulte Locais do Dataflow.

  5. No menu suspenso Modelo do Dataflow, selecione the Data Masking/Tokenization from Cloud Storage to BigQuery (using Cloud DLP) template.
  6. Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
  7. Cliquem em Executar job.

gcloud

No shell ou no terminal, execute o modelo:

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

Substitua:

  • DLP_API_PROJECT_ID: o ID do projeto da API DLP
  • JOB_NAME: um nome de job de sua escolha
  • REGION_NAME: a região onde você quer implantar o job do Dataflow, por exemplo, us-central1
  • VERSION: a versão do modelo que você quer usar

    Use estes valores:

  • STAGING_LOCATION: o local para fase de testes de arquivos locais (por exemplo, gs://your-bucket/staging)
  • INPUT_DATA: o caminho do arquivo de entrada
  • DEIDENTIFY_TEMPLATE: o número do modelo de desidentificação da Proteção de dados sensíveis
  • DATASET_NAME: o nome do conjunto de dados do BigQuery
  • INSPECT_TEMPLATE_NUMBER: o número do modelo de inspeção da Proteção de dados sensíveis
  • BATCH_SIZE_VALUE: o tamanho do lote (número de linhas por API para arquivos CSV)

REST

Para executar o modelo usando a API REST, envie uma solicitação HTTP POST. Para mais informações sobre a API e os respectivos escopos de autorização, consulte 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"
   }
}

Substitua:

  • PROJECT_ID: o ID do projeto do Google Cloud em que você quer executar o job do Dataflow
  • DLP_API_PROJECT_ID: o ID do projeto da API DLP
  • JOB_NAME: um nome de job de sua escolha
  • LOCATION: a região onde você quer implantar o job do Dataflow, por exemplo, us-central1
  • VERSION: a versão do modelo que você quer usar

    Use estes valores:

  • STAGING_LOCATION: o local para fase de testes de arquivos locais (por exemplo, gs://your-bucket/staging)
  • INPUT_DATA: o caminho do arquivo de entrada
  • DEIDENTIFY_TEMPLATE: o número do modelo de desidentificação da Proteção de dados sensíveis
  • DATASET_NAME: o nome do conjunto de dados do BigQuery
  • INSPECT_TEMPLATE_NUMBER: o número do modelo de inspeção da Proteção de dados sensíveis
  • BATCH_SIZE_VALUE: o tamanho do lote (número de linhas por API para arquivos CSV)

A seguir