Esta página fornece exemplos de consultas que pode usar para analisar as conclusões da Proteção de dados confidenciais que foram exportadas para o BigQuery.
Pode configurar uma tarefa de inspeção ou um acionador de tarefas para guardar as conclusões no BigQuery. Esta ação permite-lhe consultar as conclusões para uma análise mais detalhada. Quando as suas conclusões são exportadas para o BigQuery, os dados são escritos numa tabela nova ou existente.
Para mais informações sobre todas as ações que a proteção de dados confidenciais pode realizar após a inspeção, consulte o tópico conceptual Ações.
Para mais informações sobre a execução de consultas, consulte o seguinte:
Colunas da tabela do BigQuery
As colunas da tabela de resultados exportados baseiam-se nos atributos do objeto Finding
.
Associar os resultados às linhas que contêm as conclusões
Se estiver a configurar a inspeção de uma tabela do BigQuery, pode configurar a tarefa ou o acionador de tarefas de modo que as descobertas exportadas contenham os identificadores da linha. Ao fazê-lo, pode associar as conclusões da inspeção às linhas que as contêm.
Na tarefa de inspeção ou no acionador de tarefas, defina os seguintes campos com os nomes das colunas que identificam exclusivamente cada linha na tabela, ou seja, as colunas que servem o propósito de uma chave primária:
- Se estiver a usar a Google Cloud consola, defina o campo Campos de identificação (separados por vírgulas).
- Se estiver a usar a API DLP, defina a propriedade
identifyingFields
.
Quando a inspeção estiver concluída e as conclusões forem exportadas para o BigQuery, cada conclusão vai conter os valores correspondentes das colunas que especificou. Esses valores vão estar no campo location.content_locations.record_location.record_key.id_values
. Em seguida, pode usar esses valores para associar a descoberta à linha específica na tabela do BigQuery inspecionada.
Consultas de exemplo
Pode usar as seguintes consultas de exemplo para analisar as suas conclusões. Também pode usar as consultas numa ferramenta de visualização, como o Looker Studio. Estas consultas são fornecidas para ajudar a começar a consultar os dados de resultados.
Em cada uma das seguintes consultas, substitua o seguinte:
PROJECT_ID
: o identificador do projetoDATASET
: o nome do conjunto de dados do BigQueryTABLE_ID
: o ID da tabela
Selecione a contagem 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;
Linha 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;'
Selecione a contagem de cada infoType por dia
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;
Linha 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;'
Seleciona a contagem de cada infoType em cada contentor
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;
Linha 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;'
Seleciona os tipos de resultados encontrados para cada coluna de uma tabela
Esta consulta agrupa todas as descobertas por nome da coluna e destina-se a funcionar em descobertas de uma tarefa de inspeção do BigQuery. Esta consulta é útil se estiver a tentar identificar os tipos prováveis de uma determinada coluna. Pode ajustar as definições modificando as cláusulas WHERE e HAVING. Por exemplo, se forem incluídos vários resultados de tabelas na tabela de resultados, pode limitá-los a apenas uma execução de tarefa ou um nome de tabela.
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
A consulta acima pode produzir um resultado como este para uma tabela de amostra, em que a coluna infoTypes indica quantas instâncias de cada infoType foram encontradas para essa coluna específica.
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] |