Plantilla de tokenización o enmascaramiento de datos desde Cloud Storage a BigQuery (mediante Cloud DLP)

La plantilla Tokenización o enmascaramiento de datos de Cloud Storage a BigQuery usa Protección de Datos Sensibles y crea una canalización de streaming que sigue estos pasos:

  1. Lee archivos CSV de un segmento de Cloud Storage.
  2. Llama a la API Cloud Data Loss Prevention (que forma parte de Protección de Datos Sensibles) para anonimizar los datos.
  3. Escribe los datos anonimizados en la tabla de BigQuery especificada.

La plantilla admite el uso de una plantilla de inspección y una plantilla de desidentificación de Protección de Datos Sensibles. Por lo tanto, la plantilla admite las dos tareas siguientes:

  • Inspecciona la información potencialmente sensible y anonimiza los datos.
  • Desidentifica los datos estructurados en los que se especifica que las columnas se deben desidentificar y no es necesario realizar ninguna inspección.

Esta plantilla no admite una ruta regional para la ubicación de la plantilla de anonimización. Solo se admite una ruta global.

Requisitos del flujo de procesamiento

  • Deben existir los datos de entrada que se van a tokenizar.
  • Las plantillas de Protección de Datos Sensibles deben existir (por ejemplo, DeidentifyTemplate e InspectTemplate). Para obtener más información, consulta el artículo sobre las plantillas de protección de datos sensibles.
  • El conjunto de datos de BigQuery debe existir.

Parámetros de plantilla

Parámetros obligatorios

  • inputFilePattern los archivos CSV de los que se leerán los registros de datos de entrada. También se admiten comodines. Por ejemplo, gs://mybucket/my_csv_filename.csv or gs://mybucket/file-*.csv.
  • deidentifyTemplateName plantilla de desidentificación de Protección de Datos Sensibles que se va a usar en las solicitudes a la API, especificada con el patrón projects/<PROJECT_ID>/deidentifyTemplates/<TEMPLATE_ID>. Por ejemplo, projects/your-project-id/locations/global/deidentifyTemplates/generated_template_id.
  • datasetName el conjunto de datos de BigQuery que se usará al enviar los resultados tokenizados. El conjunto de datos debe existir antes de la ejecución.
  • dlpProjectId el ID del proyecto de Google Cloud propietario del recurso de la API DLP. Puede ser el mismo proyecto que tiene las plantillas de Protección de Datos Sensibles o un proyecto independiente.

Parámetros opcionales

  • inspectTemplateName plantilla de inspección de Protección de Datos Sensibles que se va a usar en las solicitudes a la API, especificada con el patrón projects/<PROJECT_ID>/identifyTemplates/<TEMPLATE_ID>. Por ejemplo, projects/your-project-id/locations/global/inspectTemplates/generated_template_id.
  • batchSize el tamaño de fragmentación o de lote que se va a usar para enviar datos que se van a inspeccionar y destokenizar. En el caso de un archivo CSV, el valor de batchSize es el número de filas de un lote. Determina el tamaño del lote en función del tamaño de los registros y del archivo. La API DLP tiene un límite de tamaño de carga útil de 524 KB por llamada a la API.

Ejecutar la plantilla

Consola

  1. Ve a la página Crear tarea a partir de plantilla de Dataflow.
  2. Ir a Crear tarea a partir de plantilla
  3. En el campo Nombre de la tarea, introduce un nombre único.
  4. Opcional: En Endpoint regional, seleccione un valor en el menú desplegable. La región predeterminada es us-central1.

    Para ver una lista de las regiones en las que puedes ejecutar una tarea de Dataflow, consulta Ubicaciones de Dataflow.

  5. En el menú desplegable Plantilla de flujo de datos, seleccione the Data Masking/Tokenization from Cloud Storage to BigQuery (using Cloud DLP) template.
  6. En los campos de parámetros proporcionados, introduzca los valores de los parámetros.
  7. Haz clic en Ejecutar trabajo.

gcloud

En tu shell o terminal, ejecuta la plantilla:

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

Haz los cambios siguientes:

  • DLP_API_PROJECT_ID: tu ID de proyecto de la API DLP
  • JOB_NAME: un nombre de trabajo único que elijas
  • REGION_NAME: la región en la que quieras desplegar tu trabajo de Dataflow. Por ejemplo, us-central1
  • VERSION: la versión de la plantilla que quieres usar

    Puedes usar los siguientes valores:

    • latest para usar la última versión de la plantilla, que está disponible en la carpeta principal sin fecha del contenedor: gs://dataflow-templates-REGION_NAME/latest/
    • el nombre de la versión, como 2023-09-12-00_RC00, para usar una versión específica de la plantilla, que se encuentra anidada en la carpeta principal correspondiente con la fecha en el bucket: gs://dataflow-templates-REGION_NAME/
  • STAGING_LOCATION: la ubicación de los archivos locales de almacenamiento provisional (por ejemplo, gs://your-bucket/staging)
  • INPUT_DATA: la ruta del archivo de entrada
  • DEIDENTIFY_TEMPLATE: el número de la plantilla de desidentificación de Protección de Datos Sensibles
  • DATASET_NAME: el nombre del conjunto de datos de BigQuery
  • INSPECT_TEMPLATE_NUMBER: el número de la plantilla de inspección de Protección de Datos Sensibles
  • BATCH_SIZE_VALUE: el tamaño del lote (número de filas por API para archivos CSV)

REST

Para ejecutar la plantilla mediante la API REST, envía una solicitud HTTP POST. Para obtener más información sobre la API y sus ámbitos de autorización, 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"
   }
}

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto Google Cloud en el que quieres ejecutar la tarea de Dataflow
  • DLP_API_PROJECT_ID: tu ID de proyecto de la API DLP
  • JOB_NAME: un nombre de trabajo único que elijas
  • LOCATION: la región en la que quieras desplegar tu trabajo de Dataflow. Por ejemplo, us-central1
  • VERSION: la versión de la plantilla que quieres usar

    Puedes usar los siguientes valores:

    • latest para usar la última versión de la plantilla, que está disponible en la carpeta principal sin fecha del contenedor: gs://dataflow-templates-REGION_NAME/latest/
    • el nombre de la versión, como 2023-09-12-00_RC00, para usar una versión específica de la plantilla, que se encuentra anidada en la carpeta principal correspondiente con la fecha en el bucket: gs://dataflow-templates-REGION_NAME/
  • STAGING_LOCATION: la ubicación de los archivos locales de almacenamiento provisional (por ejemplo, gs://your-bucket/staging)
  • INPUT_DATA: la ruta del archivo de entrada
  • DEIDENTIFY_TEMPLATE: el número de la plantilla de desidentificación de Protección de Datos Sensibles
  • DATASET_NAME: el nombre del conjunto de datos de BigQuery
  • INSPECT_TEMPLATE_NUMBER: el número de la plantilla de inspección de Protección de Datos Sensibles
  • BATCH_SIZE_VALUE: el tamaño del lote (número de filas por API para archivos CSV)

Siguientes pasos