En esta página, se proporcionan ejemplos de consultas 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 trabajo para guardar los resultados en BigQuery. Esto te permite consultar los resultados para 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 la 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 lo siguiente:
Columnas de la tabla de BigQuery
Las columnas de la tabla de resultados exportados se basan en los atributos del objeto Finding
.
Vincula los resultados con las filas que contienen los hallazgos
Si configuras la inspección de una tabla de BigQuery, puedes configurar el trabajo o el activador de trabajo de modo que los resultados exportados contengan los identificadores de la fila. Esto te permite vincular los resultados de la inspección a las filas que los contienen.
En el trabajo de inspección o el activador de trabajo, establece los siguientes campos en los nombres de las columnas que identifican de forma inequívoca cada fila de la tabla, es decir, las columnas que cumplen la función de una clave primaria:
- Si usas la consola de Google Cloud, configura el campo Campos de identificación (separados por comas).
- Si usas la API de DLP, establece la propiedad
identifyingFields
.
Cuando se complete la inspección y los resultados se exporten 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 vincular el hallazgo a la fila específica en 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
Consola de Google Cloud
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
Consola de Google Cloud
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
Consola de Google Cloud
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 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.
Consola de Google Cloud
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, en el que 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] |