Consulta los resultados de la protección de datos sensibles en BigQuery

En esta página, se proporcionan consultas de ejemplo que puedes usar para analizar los resultados de Protección de datos sensibles que se exportaron a BigQuery.

Puedes configurar un trabajo de inspección o un activador de trabajos para guardar los resultados en BigQuery. Si lo haces, podrás consultar los resultados para realizar un análisis más detallado. Cuando tus resultados se exportan a BigQuery, los datos se escriben en una tabla nueva o una existente.

Para obtener más información sobre todas las acciones que puede realizar Protección de datos sensibles después de la inspección, consulta el tema conceptual Acciones.

Para obtener más información sobre la ejecución de consultas, consulta lo siguiente:

Columnas de la tabla de BigQuery

Las columnas de la tabla de resultados exportados se basan en los atributos del Finding objeto.

Si configuras la inspección de una tabla de BigQuery, puedes configurar el trabajo o el activador de trabajos de modo que los resultados exportados contengan los identificadores de la fila. Si lo haces, podrás volver a vincular los resultados de la inspección con las filas que los contienen.

En el trabajo de inspección o el activador de trabajos, configura los siguientes campos con los nombres de las columnas que identifican de forma única cada fila de la tabla, es decir, las columnas que cumplen el propósito de una clave primaria:

  • Si usas la Google Cloud Consola de, configura el campo Identifying fields (comma separated).
  • Si usas la API de DLP, configura la identifyingFields propiedad.

Cuando se complete la inspección y se exporten los resultados a BigQuery, cada resultado contendrá los valores correspondientes de las columnas que especificaste. Esos valores estarán en el campo location.content_locations.record_location.record_key.id_values. Luego, puedes usar esos valores para volver a vincular el resultado con la fila específica de la tabla de BigQuery inspeccionada.

Consultas de muestra

Puedes usar las siguientes consultas de muestra para analizar tus resultados. También puedes usar las consultas en una herramienta de visualización, como Looker Studio. Estas consultas se proporcionan con el fin de ayudarte a comenzar a realizar consultas de los datos de tus resultados.

En cada una de las siguientes consultas, reemplaza lo siguiente:

  • PROJECT_ID: Es el identificador del proyecto.
  • DATASET: Es el nombre del conjunto de datos de BigQuery.
  • TABLE_ID: el ID de la tabla

Selecciona el recuento de cada Infotipo

Google Cloud Consola de

SELECT info_type.name,
COUNT(info_type.name) AS count
FROM `PROJECT_ID.DATASET.TABLE_ID`
GROUP BY info_type.name
ORDER BY count DESC;

Línea de comandos

bq query --use_legacy_sql=false ' SELECT info_type.name,
COUNT(info_type.name) AS count
FROM `PROJECT_ID.DATASET.TABLE_ID`
GROUP BY info_type.name ORDER BY count DESC;'

Selecciona el recuento de cada Infotipo por día

Google Cloud Consola de

SELECT info_type.name, cast(TIMESTAMP_SECONDS(create_time.seconds) as date) as day,
COUNT(locations.container_name) AS count
FROM `PROJECT_ID.DATASET.TABLE_ID`,
UNNEST(location.content_locations) AS locations
GROUP BY info_type.name, day
ORDER BY count DESC;

Línea de comandos

bq query --use_legacy_sql=false ' SELECT info_type.name,
cast(TIMESTAMP_SECONDS(create_time.seconds) as date) as day,
COUNT(locations.container_name) AS count FROM `PROJECT_ID.DATASET.TABLE_ID`,
UNNEST(location.content_locations) AS locations
GROUP BY info_type.name, day ORDER BY count DESC;'

Selecciona el recuento de cada Infotipo en cada contenedor

Google Cloud Consola de

SELECT info_type.name, locations.container_name,
COUNT(locations.container_name) AS count
FROM `PROJECT_ID.DATASET.TABLE_ID`,
UNNEST(location.content_locations) AS locations
GROUP BY locations.container_name, info_type.name
ORDER BY count DESC;

Línea de comandos

bq query --use_legacy_sql=false ' SELECT info_type.name, locations.container_name,
COUNT(locations.container_name) AS count FROM `PROJECT_ID.DATASET.TABLE_ID`,
UNNEST(location.content_locations) AS locations
GROUP BY locations.container_name,info_type.name ORDER BY count DESC;'

Selecciona los tipos de resultados encontrados para cada columna de una tabla

Mediante esta consulta, se agruparán todos los resultados por nombre de columna, con el fin de funcionar en los resultados de un trabajo de inspección de BigQuery. Esta consulta es útil si intentas identificar los tipos que son probables para una columna determinada. Puedes ajustar la configuración si modificas las cláusulas WHERE y HAVING. Por ejemplo, si se incluyen varios resultados de tabla en la tabla de resultados, puedes limitarlos a solo una ejecución de trabajo o un nombre de tabla.

Google Cloud Consola de

SELECT
  table_counts.field_name,
  STRING_AGG( CONCAT(" ",table_counts.name," [count: ",CAST(table_counts.count_total AS String),"]")
  ORDER BY
    table_counts.count_total DESC) AS infoTypes
FROM (
  SELECT
    locations.record_location.field_id.name AS field_name,
    info_type.name,
    COUNT(*) AS count_total
  FROM
    `PROJECT_ID.DATASET.TABLE_ID`,
    UNNEST(location.content_locations) AS locations
  WHERE
    (likelihood = 'LIKELY'
      OR likelihood = 'VERY_LIKELY'
      OR likelihood = 'POSSIBLE')
  GROUP BY
    locations.record_location.field_id.name,
    info_type.name
  HAVING
    count_total>200 ) AS table_counts
GROUP BY
  table_counts.field_name
ORDER BY
  table_counts.field_name

Mediante la consulta anterior, se puede producir un resultado como este para una tabla de muestra, donde la columna de Infotipos indica cuántas instancias de cada Infotipo se encontraron en esa columna.

field_name Infotipos
field1 CUSTOM_USER_US [count: 7004], CUSTOM_USER_EU [count: 2996]
field2 US_VEHICLE_IDENTIFICATION_NUMBER [count: 9597]
field3 EMAIL_ADDRESS [count: 10000]
field4 IP_ADDRESS [count: 10000]
field5 PHONE_NUMBER [count: 7815]
field6 US_SOCIAL_SECURITY_NUMBER [count: 10000]
field7 CREDIT_CARD_NUMBER [count: 10000]