Como analisar e relatar descobertas da verificação da proteção de dados confidenciais

A Proteção de dados sensíveis ajuda você a encontrar, entender e gerenciar os dados sensíveis existentes na sua infraestrutura. Depois de verificar seu conteúdo em busca de dados sensíveis com a Proteção de dados sensíveis, você tem várias opções para essa inteligência de dados. Neste tópico, mostramos como aproveitar o poder de outros recursos do Google Cloud, como BigQuery, Cloud SQL e Looker Studio, para:

  • Armazenar os resultados da verificação da proteção de dados sensíveis diretamente no BigQuery.
  • gerar relatórios sobre o local dos dados confidenciais na sua infraestrutura;
  • executar análises SQL avançadas para compreender o tipo de dados confidenciais e onde eles são armazenados;
  • automatizar o acionamento de alertas ou ações com base em um único conjunto ou em uma combinação de descobertas.

Neste tópico, também há um exemplo completo de como usar a Proteção de dados sensíveis com outros recursos do Google Cloud para realizar todas essas ações.

Verificar um bucket de armazenamento

Primeiramente, execute uma verificação dos dados. Confira a seguir informações básicas sobre como verificar repositórios de armazenamento usando a proteção de dados sensíveis. Para instruções completas sobre a verificação de repositórios de armazenamento, incluindo o uso de bibliotecas de cliente, consulte Como inspecionar dados confidenciais em armazenamento e bancos de dados.

Para executar uma operação de verificação em um repositório de armazenamento do Google Cloud, reúna um objeto JSON que inclua os seguintes objetos de configuração:

  • InspectJobConfig: configura o job de verificação da Proteção de dados sensíveis e consiste em:

    • StorageConfig: o repositório de armazenamento a ser verificado.
    • InspectConfig: como e o que verificar. Também é possível usar um modelo de inspeção para definir essa configuração.
    • Action: tarefas a serem executadas na conclusão do job. Isso pode incluir salvar as descobertas em uma tabela do BigQuery ou publicar uma notificação no Pub/Sub.

Neste exemplo, você verifica um bucket do Cloud Storage de nomes de pessoas, números de telefone, números de seguro social dos EUA e endereços de e-mail. Em seguida, envie as descobertas para uma tabela do BigQuery dedicada a armazenar a saída da proteção de dados sensíveis. O JSON a seguir pode ser salvo em um arquivo ou enviado diretamente para o método create do recurso DlpJob Proteção de dados sensíveis.

Entrada JSON:

POST https://dlp.googleapis.com/v2/projects/[PROJECT_ID]/dlpJobs

{
  "inspectJob":{
    "inspectConfig":{
      "infoTypes":[
        {
          "name":"PERSON_NAME"
        },
        {
          "name":"PHONE_NUMBER"
        },
        {
          "name":"US_SOCIAL_SECURITY_NUMBER"
        },
        {
          "name":"EMAIL_ADDRESS"
        }
      ],
      "includeQuote":true
    },
    "storageConfig":{
      "cloudStorageOptions":{
        "fileSet":{
          "url":"gs://[BUCKET_NAME]/**"
        }
      }
    },
    "actions":[
      {
        "saveFindings":{
          "outputConfig":{
            "table":{
              "projectId":"[PROJECT_ID]",
              "datasetId":"[DATASET_ID]",
              "tableId":"[TABLE_ID]"
            }
          }
        }
      }
    ]
  }
}

Ao especificar dois asteriscos (**) após o endereço do bucket do Cloud Storage (gs://[BUCKET_NAME]/**), você instrui o job de verificação a fazer uma verificação recursiva. Ao especificar um único asterisco (*), você instrui o job a verificar apenas o nível do diretório especificado, sem se aprofundar.

A saída será salva na tabela especificada no conjunto de dados e no projeto determinados. Os jobs seguintes que especificarem o código da tabela fornecido anexarão as descobertas à mesma tabela. Também é possível deixar de fora uma chave "tableId" se você quiser instruir a Proteção de dados sensíveis a criar uma nova tabela sempre que a verificação for executada.

Depois de enviar esse JSON em uma solicitação para o método projects.dlpJobs.create por meio do URL especificado, você receberá a seguinte resposta:

Saída JSON:

{
  "name":"projects/[PROJECT_ID]/dlpJobs/[JOB_ID]",
  "type":"INSPECT_JOB",
  "state":"PENDING",
  "inspectDetails":{
    "requestedOptions":{
      "snapshotInspectTemplate":{

      },
      "jobConfig":{
        "storageConfig":{
          "cloudStorageOptions":{
            "fileSet":{
              "url":"gs://[BUCKET_NAME]/**"
            }
          }
        },
        "inspectConfig":{
          "infoTypes":[
            {
              "name":"PERSON_NAME"
            },
            {
              "name":"PHONE_NUMBER"
            },
            {
              "name":"US_SOCIAL_SECURITY_NUMBER"
            },
            {
              "name":"EMAIL_ADDRESS"
            }
          ],
          "minLikelihood":"POSSIBLE",
          "limits":{

          },
          "includeQuote":true
        },
        "actions":[
          {
            "saveFindings":{
              "outputConfig":{
                "table":{
                  "projectId":"[PROJECT_ID]",
                  "datasetId":"[DATASET_ID]",
                  "tableId":"[TABLE_ID]"
                }
              }
            }
          }
        ]
      }
    }
  },
  "createTime":"2018-11-19T21:09:07.926Z"
}

Depois que o job for concluído, ele salvará as descobertas na tabela do BigQuery fornecida.

Para ver o status do job, chame o método projects.dlpJobs.get ou envie uma solicitação GET para o URL a seguir, substituindo [PROJECT_ID] pelo ID do projeto e [JOB_ID] pelo identificador do job fornecido na resposta da API Cloud Data Loss Prevention à solicitação de criação de job (o identificador do job será precedido por "i-"):

GET https://dlp.googleapis.com/v2/projects/[PROJECT_ID]/dlpJobs/[JOB_ID]

Para o job que você acabou de criar, essa solicitação retorna o seguinte JSON. Observe que um resumo dos resultados da verificação é retornado após os detalhes da inspeção. Se a verificação ainda não tiver sido concluída, a chave "state" especificará "RUNNING".

Saída JSON:

{
  "name":"projects/[PROJECT_ID]/dlpJobs/[JOB_ID]",
  "type":"INSPECT_JOB",
  "state":"DONE",
  "inspectDetails":{
    "requestedOptions":{
      "snapshotInspectTemplate":{

      },
      "jobConfig":{
        "storageConfig":{
          "cloudStorageOptions":{
            "fileSet":{
              "url":"gs://[BUCKET_NAME]/**"
            }
          }
        },
        "inspectConfig":{
          "infoTypes":[
            {
              "name":"PERSON_NAME"
            },
            {
              "name":"PHONE_NUMBER"
            },
            {
              "name":"US_SOCIAL_SECURITY_NUMBER"
            },
            {
              "name":"EMAIL_ADDRESS"
            }
          ],
          "minLikelihood":"POSSIBLE",
          "limits":{

          },
          "includeQuote":true
        },
        "actions":[
          {
            "saveFindings":{
              "outputConfig":{
                "table":{
                  "projectId":"[PROJECT_ID]",
                  "datasetId":"[DATASET_ID]",
                  "tableId":"[TABLE_ID]"
                }
              }
            }
          }
        ]
      }
    },
    "result":{
      "processedBytes":"536734051",
      "totalEstimatedBytes":"536734051",
      "infoTypeStats":[
        {
          "infoType":{
            "name":"PERSON_NAME"
          },
          "count":"269679"
        },
        {
          "infoType":{
            "name":"EMAIL_ADDRESS"
          },
          "count":"256"
        },
        {
          "infoType":{
            "name":"PHONE_NUMBER"
          },
          "count":"7"
        }
      ]
    }
  },
  "createTime":"2018-11-19T21:09:07.926Z",
  "startTime":"2018-11-19T21:10:20.660Z",
  "endTime":"2018-11-19T22:07:39.725Z"
}

Executar análises no BigQuery

Agora que você criou uma nova tabela do BigQuery com os resultados da verificação da Proteção de dados confidenciais, a próxima etapa é executar análises nela.

No lado esquerdo do console do Google Cloud, em Big Data, clique em BigQuery. Abra o projeto e o conjunto de dados. Em seguida, localize a nova tabela que foi criada.

É possível executar consultas SQL nesta tabela para saber mais sobre o que a Proteção de dados sensíveis encontrou no bucket de dados. Por exemplo, proceda da seguinte forma para contar todos os resultados da verificação por InfoType, substituindo os marcadores pelos devidos valores reais:

SELECT
  info_type.name,
  COUNT(*) AS iCount
FROM
  `[PROJECT_ID].[DATASET_ID].[TABLE_ID]`
GROUP BY
  info_type.name

Essa consulta resultará em um resumo das descobertas para esse bucket, que poderá ser semelhante a este:

Exemplo de resumo das descobertas do Cloud DLP.

Criar um relatório no Looker Studio

Com o Looker Studio, você pode criar relatórios personalizados que podem ser baseados em tabelas do BigQuery. Nesta seção, você cria um relatório de tabela simples no Looker Studio com base nas descobertas da Proteção de dados sensíveis armazenadas no BigQuery.

  1. Abra o Looker Studio e inicie um novo relatório.
  2. Clique em Criar nova fonte de dados.
  3. Na lista de conectores, clique em BigQuery. Se necessário, autorize o Looker Studio a se conectar aos seus projetos do BigQuery clicando em Autorizar.
  4. Agora, escolha a tabela de pesquisa e clique em Meus projetos ou Projetos compartilhados, dependendo do local do projeto. Localize o projeto, o conjunto de dados e a tabela nas listas da página.
  5. Clique em Conectar para executar o relatório.
  6. Clique em Adicionar ao relatório.

Agora você criará uma tabela com a frequência de cada InfoType. Selecione o campo info_type.name como a Dimensão. A tabela resultante será semelhante a esta:

Exemplo de tabela no Looker Studio.

Próximas etapas

Este é apenas o começo do que é possível visualizar usando o Looker Studio e a saída da Proteção de dados sensíveis. É possível adicionar outros elementos de gráfico e filtros de detalhamento para criar painéis e relatórios. Para mais informações sobre o que está disponível no Looker Studio, consulte a Visão geral do produto do Looker Studio.