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 all'interno della tua infrastruttura. Dopo aver scansionato i tuoi contenuti alla ricerca di dati sensibili utilizzando Sensitive Data Protection, hai diverse opzioni su cosa fare con questa data intelligence. Questo argomento mostra come sfruttare la potenza di altre funzionalità di Google Cloud come BigQuery, Cloud SQL e Data Studio per:

  • Archivia i risultati delle scansioni di Sensitive Data Protection direttamente in BigQuery.
  • Genera report sulla residenza dei dati sensibili nella tua infrastruttura.
  • Esegui analisi SQL complete 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 raggiungere tutti questi obiettivi.

Scansiona un bucket di archiviazione

Innanzitutto, esegui un'analisi dei dati. Di seguito sono riportate le informazioni di base su come scansionare i repository di archiviazione utilizzando Sensitive Data Protection. Per istruzioni complete sulla scansione 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 archiviazioneGoogle Cloud , assembla un oggetto JSON che includa i seguenti oggetti di configurazione:

  • InspectJobConfig: configura il job di scansione di Sensitive Data Protection ed è composto da:

    • StorageConfig: il repository di archiviazione da scansionare.
    • InspectConfig: come e cosa scansionare. Puoi anche utilizzare un template di ispezione per definire la configurazione di ispezione.
    • Action: attività da eseguire al completamento del job. Ciò può includere il salvataggio dei risultati in una tabella BigQuery o la pubblicazione di una notifica in Pub/Sub.

In questo esempio, stai scansionando un bucket Cloud Storage per trovare nomi di persone, numeri di telefono, codici fiscali statunitensi e indirizzi email. Quindi, invii i risultati a una tabella BigQuery dedicata all'archiviazione dell'output di Sensitive Data Protection. Il seguente JSON può essere salvato in un file o inviato direttamente al metodo create della risorsa Sensitive Data Protection DlpJob.

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

Specificando due asterischi (**) dopo l'indirizzo del bucket Cloud Storage (gs://[BUCKET_NAME]/**), indichi al job di scansione di eseguire la scansione in modo ricorsivo. L'inserimento di un singolo asterisco (*) indica al job di eseguire 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 indicati. 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 Sensitive Data Protection di creare una nuova tabella ogni volta che viene eseguita l'analisi.

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

Una volta completato il job, i risultati vengono salvati 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à preceduto da "i-"):

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

Per il job 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 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 l'analisi sulla tabella.

Sul lato sinistro della console Google Cloud , in Big Data, fai clic su BigQuery. 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 il seguente comando per conteggiare tutti i risultati della scansione per 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 quel bucket che potrebbe essere simile al seguente:

Riepilogo di esempio dei risultati di Sensitive Data Protection.

Crea un report in Data Studio

Data Studio ti consente di creare report personalizzati che possono essere basati su tabelle BigQuery. In questa sezione creerai un semplice report tabulare in Data Studio basato sui risultati di Sensitive Data Protection archiviati in BigQuery.

  1. Apri Data Studio e avvia un nuovo report.
  2. Fai clic su Crea nuova origine dati.
  3. Dall'elenco dei connettori, fai clic su BigQuery. Se necessario, autorizza Data Studio a connettersi ai tuoi progetti BigQuery facendo clic su Autorizza.
  4. Ora scegli la tabella in cui eseguire la ricerca, quindi 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 creare il report.
  6. Fai clic su Aggiungi al report.

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

Una tabella di esempio in Data Studio.

Passaggi successivi

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