En esta página se proporcionan consultas de ejemplo que puede usar para analizar los resultados de Protección de Datos Sensibles que se han exportado a BigQuery.
Puedes configurar una tarea de inspección o un activador de tareas para guardar los resultados en BigQuery. De esta forma, podrás consultar los resultados para analizarlos en profundidad. Cuando tus resultados se exportan a BigQuery, los datos se escriben en una tabla nueva o en una ya creada.
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 cómo ejecutar consultas, consulta los siguientes artículos:
Columnas de la tabla de BigQuery
Las columnas de la tabla de resultados exportados se basan en los atributos del objeto Finding
.
Vincular los resultados a las filas que contienen los hallazgos
Si configuras la inspección de una tabla de BigQuery, puedes configurar la tarea o el activador de tareas de forma que los resultados exportados contengan los identificadores de la fila. De esta forma, puede vincular los hallazgos de la inspección a las filas que los contienen.
En el trabajo de inspección o en el activador de trabajo, asigna a los siguientes campos los nombres de las columnas que identifican de forma única cada fila de la tabla, es decir, las columnas que actúan como clave principal:
- Si utilizas la consola Google Cloud , define el campo Campos de identificación (separados por comas).
- Si usas la API DLP, define la propiedad
identifyingFields
.
Cuando se haya completado la inspección y los resultados se hayan exportado a BigQuery, cada resultado contendrá los valores correspondientes de las columnas que hayas especificado. Estos valores se mostrarán en el campo location.content_locations.record_location.record_key.id_values
. Después, puede usar esos valores para vincular el resultado a la fila específica de la tabla de BigQuery inspeccionada.
Consultas de ejemplo
Puedes usar las siguientes consultas de ejemplo para analizar tus resultados. También puedes usar las consultas en una herramienta de visualización como Looker Studio. Estas consultas se proporcionan para ayudarte a empezar a consultar los datos de tus resultados.
En cada una de las siguientes consultas, sustituye lo siguiente:
PROJECT_ID
: el identificador del proyectoDATASET
: el nombre del conjunto de datos de BigQueryTABLE_ID
: el ID de la tabla
Seleccionar el recuento de cada infoType
Google Cloud consola
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;'
Seleccionar el recuento de cada infoType por día
Google Cloud consola
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 infoType en cada contenedor.
Google Cloud consola
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 en cada columna de una tabla.
Esta consulta agrupará todos los resultados por nombre de columna y está diseñada para funcionar con los resultados de una tarea de inspección de BigQuery. Esta consulta es útil si quieres identificar los tipos probables de una columna determinada. Puedes ajustar los ajustes modificando las cláusulas WHERE y HAVING. Por ejemplo, si en la tabla de resultados se incluyen varias tablas, puede limitar los resultados a una sola ejecución de trabajo o a un solo nombre de tabla.
Google Cloud consola
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
La consulta anterior podría producir un resultado como este en una tabla de ejemplo, donde la columna infoTypes nos indica cuántas instancias de cada infoType se han encontrado en esa columna.
field_name | infoTypes |
---|---|
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] |