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

A Proteção de Dados Sensíveis ajuda na descoberta, na compreensão e no gerenciamento dos dados confidenciais existentes na sua infraestrutura. Depois de verificar seu conteúdo em busca de dados confidenciais 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 Google Cloud recursos, como BigQuery, Cloud SQL e Data Studio, com o objetivo de:

  • armazenar resultados da verificação da Proteção de Dados Sensíveis diretamente no BigQuery;
  • gerar relatórios sobre o local dos dados sensíveis 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, você também encontra um exemplo completo de como usar a Proteção de Dados Sensíveis com outros Google Cloud recursos para realizar todas essas ações.

Verificar um bucket de armazenamento

Primeiramente, execute uma verificação dos dados. Veja 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 Google Cloud repositório de armazenamento, monte 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, envia as descobertas para uma tabela do BigQuery dedicada para 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 create método do DlpJob recurso 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 ID da tabela fornecido anexarão as descobertas à mesma tabela. Não inclua uma "tableId" chave se quiser instruir a Proteção de Dados Sensíveis a criar uma nova tabela toda vez que a verificação for executada.

Depois de enviar esse JSON em uma solicitação para o projects.dlpJobs.create método 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 tabela do BigQuery com os resultados da nossa verificação da Proteção de Dados Sensíveis, a próxima etapa é executar análises nela.

No lado esquerdo do Google Cloud console, 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 da Proteção de Dados Sensíveis.

Criar um relatório no Data Studio

O Data Studio permite criar relatórios personalizados que podem ser baseados em tabelas do BigQuery. Nesta seção, você cria um relatório de tabela simples no Data Studio com base nas descobertas da Proteção de Dados Sensíveis armazenadas no BigQuery.

  1. Abra o Data 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 Data 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:

Uma tabela de exemplo no Data Studio.

Próximas etapas

Este é apenas o começo do que é possível visualizar usando o Data 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 Data Studio, consulte a Visão geral do Data Studio.