Analisi e generazione di report sui risultati della scansione di Sensitive Data Protection

Sensitive Data Protection ti aiuta a trovare, comprendere e gestire i dati sensibili presenti nella tua infrastruttura. Dopo aver scansionato i contenuti per rilevare i dati sensibili utilizzando Sensitive Data Protection, hai a disposizione diverse opzioni per decidere cosa fare con queste informazioni. Questo argomento spiega come sfruttare la potenza di altre funzionalità di Google Cloud, come BigQuery, Cloud SQL e Looker Studio, per:

  • Memorizza i risultati delle analisi di Sensitive Data Protection direttamente in BigQuery.
  • Genera report su dove si trovano i dati sensibili nella tua infrastruttura.
  • Esegui analisi SQL avanzate per capire dove sono archiviati i dati sensibili e di che tipo sono.
  • Automatizza gli avvisi o le azioni da attivare in base a un singolo insieme o a una combinazione di risultati.

Questo argomento contiene anche un esempio completo di come utilizzare Sensitive Data Protection insieme ad altre funzionalità di Google Cloud per svolgere tutte queste attività.

Eseguire la scansione di un bucket di archiviazione

Innanzitutto, esegui una scansione dei dati. Di seguito sono riportate informazioni di base su come eseguire la scansione dei repository di archiviazione utilizzando Sensitive Data Protection. Per istruzioni complete sull'analisi dei repository di archiviazione, incluso l'utilizzo delle librerie client, consulta Ispezione dello spazio di archiviazione e dei database per l'individuazione di dati sensibili.

Per eseguire un'operazione di scansione su un repository di archiviazione Google Cloud, assembla un oggetto JSON che includa i seguenti oggetti di configurazione:

  • InspectJobConfig: configura il job di analisi di Sensitive Data Protection ed è costituito da:

    • StorageConfig: Il repository di archiviazione da eseguire la scansione.
    • InspectConfig: come e cosa cercare. Puoi anche utilizzare un modello di ispezione per definire la configurazione dell'ispezione.
    • Action: attività da eseguire al termine del job. ad esempio memorizzare i risultati in una tabella BigQuery o pubblicare una notifica su Pub/Sub.

In questo esempio, esegui la scansione di un bucket Cloud Storage per trovare nomi, numeri di telefono, codici fiscali statunitensi e indirizzi email di persone. Poi invii i risultati a una tabella BigQuery dedicata allo stoccaggio dell'output della Protezione dei dati sensibili. Il seguente JSON può essere salvato in un file o inviato direttamente al metodo create della risorsa DlpJob Sensitive Data Protection.

Input 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]"
            }
          }
        }
      }
    ]
  }
}

Se specifichi due asterischi (**) dopo l'indirizzo del bucket Cloud Storage (gs://[BUCKET_NAME]/**), indichi al job di scansione di eseguire la scansione in modo ricorsivo. Se inserisci un asterisco singolo (*), il job eseguirà la scansione solo del livello di directory specificato e non più in profondità.

L'output verrà salvato nella tabella specificata all'interno del set di dati e del progetto specificati. I job successivi che specificano l'ID tabella specificato aggiungono i risultati alla stessa tabella. Puoi anche omettere una chiave "tableId" se vuoi indicare a Protezione dei dati sensibili di creare una nuova tabella ogni volta che viene eseguita la scansione.

Dopo aver inviato questo JSON in una richiesta al metodo projects.dlpJobs.create tramite l'URL specificato, ricevi la seguente risposta:

Output 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"
}

Al termine, il job salva i risultati nella tabella BigQuery specificata.

Per ottenere lo stato del job, chiama il metodo projects.dlpJobs.get o invia una richiesta GET al seguente URL, sostituendo [PROJECT_ID] con l'ID progetto e [JOB_ID] con l'identificatore del job fornito nella risposta dell'API Cloud Data Loss Prevention alla richiesta di creazione del job (l'identificatore del job sarà precededo da "i-"):

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

Per il job che hai appena creato, questa richiesta restituisce il seguente JSON. Tieni presente che un riepilogo dei risultati della scansione viene restituito dopo i dettagli dell'ispezione. Se la scansione non fosse ancora stata completata, la relativa chiave "state" specificherebbe "RUNNING".

Output 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"
}

Esegui analisi in BigQuery

Ora che hai creato una nuova tabella BigQuery con i risultati della scansione di Sensitive Data Protection, il passaggio successivo consiste nell'eseguire analisi sulla tabella.

Sul lato sinistro della console Google Cloud, fai clic su BigQuery in Big Data. Apri il progetto e il set di dati, quindi individua la nuova tabella creata.

Puoi eseguire query SQL su questa tabella per scoprire di più su ciò che Sensitive Data Protection ha trovato nel tuo bucket di dati. Ad esempio, esegui quanto segue per conteggiare tutti i risultati della scansione in base a infoType, sostituendo i segnaposto con i valori reali appropriati:

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

Questa query genera un riepilogo dei risultati per il bucket, che potrebbe essere simile al seguente:

Riepilogo di esempio dei risultati di Cloud DLP.

Creare un report in Looker Studio

Looker Studio ti consente di creare report personalizzati che possono essere basati su tabelle BigQuery. In questa sezione, crei un semplice report tabellare in Looker Studio basato sui risultati della Protezione dei dati sensibili archiviati in BigQuery.

  1. Apri Looker Studio e avvia un nuovo report.
  2. Fai clic su Crea nuova origine dati.
  3. Nell'elenco dei connettori, fai clic su BigQuery. Se necessario, autorizza Looker Studio a connettersi ai tuoi progetti BigQuery facendo clic su Autorizza.
  4. Ora scegli la tabella in cui cercare e fai clic su I miei progetti o Progetti condivisi, a seconda di dove si trova il progetto. Trova il progetto, il set di dati e la tabella negli elenchi della pagina.
  5. Fai clic su Connetti per eseguire il report.
  6. Fai clic su Aggiungi al report.

Ora crea una tabella che mostri la frequenza di ogni tipo di infoType. Seleziona il campo info_type.name come Dimensione. La tabella risultante sarà simile alla seguente:

Un'esempio di tabella in Looker Studio.

Passaggi successivi

Questo è solo l'inizio di ciò che puoi visualizzare utilizzando Looker Studio e l'output di Sensitive Data Protection. Puoi aggiungere altri elementi grafici e filtri di visualizzazione dettagliata per creare dashboard e report. Per saperne di più su cosa è disponibile in Looker Studio, consulta la Panoramica del prodotto Looker Studio.