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>. Por 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 o modelo Mascaramento de dados/tokenização do Cloud Storage para BigQuery (usando o Cloud DLP).
  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 em que 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 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 em que 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