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

O modelo de ocultação/tokenização de dados do Cloud Storage para o BigQuery usa o Sensitive Data Protection e cria um pipeline de streaming que executa os seguintes passos:

  1. Lê ficheiros CSV de um contentor do Cloud Storage.
  2. Chama a API Cloud Data Loss Prevention (parte da proteção de dados confidenciais) para a desidentificação.
  3. Escreve os dados anonimizados na tabela do BigQuery especificada.

O modelo suporta a utilização de um modelo de inspeção do Google Cloud DLP e um modelo de desidentificação do Google Cloud DLP. Como resultado, o modelo suporta as seguintes tarefas:

  • Inspecione informações potencialmente confidenciais e remova a identificação dos dados.
  • Remover a identificação dos dados estruturados quando as colunas são especificadas para remoção da identificação e não é necessária inspeção.

Este modelo não suporta um caminho regional para a localização do modelo de anonimização. Apenas é suportado um caminho global.

Requisitos do pipeline

  • Os dados de entrada para tokenizar têm de existir.
  • Os modelos de proteção de dados confidenciais têm de existir (por exemplo, DeidentifyTemplate e InspectTemplate). Para mais detalhes, consulte os modelos de proteção de dados confidenciais.
  • O conjunto de dados do BigQuery tem de existir.

Parâmetros de modelos

Parâmetros obrigatórios

  • inputFilePattern: os ficheiros CSV a partir dos quais ler os registos de dados de entrada. Os carateres universais também são aceites. Por exemplo, gs://mybucket/my_csv_filename.csv or gs://mybucket/file-*.csv.
  • deidentifyTemplateName: o modelo de desidentificação da proteção de dados confidenciais a usar para pedidos da 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 a usar quando envia resultados tokenizados. O conjunto de dados tem de existir antes da execução.
  • dlpProjectId: o ID do projeto do Google Cloud que detém o recurso da API DLP. Este projeto pode ser o mesmo que detém os modelos de proteção de dados confidenciais ou pode ser um projeto separado.

Parâmetros opcionais

  • inspectTemplateName: o modelo de inspeção de proteção de dados confidenciais a usar para pedidos 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 da divisão ou do lote a usar para enviar dados para inspeção e anulação da tokenização. Para um ficheiro CSV, o valor de batchSize é o número de linhas num lote. Determine o tamanho do lote com base no tamanho dos registos e no dimensionamento do ficheiro. A API DLP tem um limite de tamanho do payload de 524 KB por chamada da API.

Execute o modelo

Consola

  1. Aceda à página do fluxo de dados Criar tarefa a partir de um modelo.
  2. Aceda a Criar tarefa a partir de modelo
  3. No campo Nome da tarefa, introduza um nome exclusivo para a tarefa.
  4. Opcional: para Ponto final regional, selecione um valor no menu pendente. A região predefinida é us-central1.

    Para ver uma lista das regiões onde pode executar uma tarefa do Dataflow, consulte as localizações do Dataflow.

  5. No menu pendente Modelo do fluxo de dados, selecione the Data Masking/Tokenization from Cloud Storage to BigQuery (using Cloud DLP) template.
  6. Nos campos de parâmetros fornecidos, introduza os valores dos parâmetros.
  7. Clique em Executar tarefa.

gcloud

Na 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 o seguinte:

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

    Pode usar os seguintes valores:

  • STAGING_LOCATION: a localização para organizar ficheiros locais (por exemplo, gs://your-bucket/staging)
  • INPUT_DATA: o caminho do ficheiro de entrada
  • DEIDENTIFY_TEMPLATE: o número do modelo de desidentificação da proteção de dados confidenciais
  • 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 confidenciais
  • BATCH_SIZE_VALUE: o tamanho do lote (n.º de linhas por API para ficheiros CSV)

REST

Para executar o modelo através da API REST, envie um pedido HTTP POST. Para mais informações sobre a API e os respetivos âmbitos 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 o seguinte:

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

    Pode usar os seguintes valores:

  • STAGING_LOCATION: a localização para organizar ficheiros locais (por exemplo, gs://your-bucket/staging)
  • INPUT_DATA: o caminho do ficheiro de entrada
  • DEIDENTIFY_TEMPLATE: o número do modelo de desidentificação da proteção de dados confidenciais
  • 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 confidenciais
  • BATCH_SIZE_VALUE: o tamanho do lote (n.º de linhas por API para ficheiros CSV)

O que se segue?