Consulte resultados da Proteção de dados confidenciais no BigQuery

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.

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 projeto
  • DATASET: o nome do conjunto de dados do BigQuery
  • TABLE_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]