Analisi e report sui risultati dell'analisi di Sensitive Data Protection

Sensitive Data Protection ti aiuta a trovare, comprendere e gestire i dati sensibili esistenti all'interno della tua infrastruttura. Una volta analizzati i tuoi contenuti per individuare dati sensibili mediante Sensitive Data Protection, hai a disposizione diverse opzioni su come utilizzare la data intelligence. Questo argomento mostra come sfruttare la potenza di altre funzionalità di Google Cloud, come BigQuery, Cloud SQL e Looker Studio, per:

  • Archivia i risultati della scansione di Sensitive Data Protection direttamente in BigQuery.
  • Genera report sulle posizioni in cui si trovano i dati sensibili nella tua infrastruttura.
  • Esegui analisi avanzate SQL per capire dove sono archiviati i dati sensibili e di che tipo.
  • 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 la protezione dei dati sensibili insieme ad altre funzionalità di Google Cloud per risolvere tutto questo.

Scansiona un bucket di archiviazione

Per prima cosa, esegui un'analisi dei tuoi dati. Di seguito sono riportate le informazioni di base su come analizzare i repository di archiviazione utilizzando Sensitive Data Protection. Per istruzioni complete sull'analisi dei repository di archiviazione, incluso l'utilizzo di 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 Google Cloud Storage, assembla un oggetto JSON che includa i seguenti oggetti di configurazione:

  • InspectJobConfig: configura il job di analisi di Sensitive Data Protection. Inoltre, include:

    • StorageConfig: il repository di archiviazione da scansionare.
    • InspectConfig: come e cosa cercare. Puoi anche utilizzare un modello 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, esegui la scansione di un bucket Cloud Storage alla ricerca di nomi di persone, numeri di telefono, codici fiscali 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 su 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]"
            }
          }
        }
      }
    ]
  }
}

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 al livello di directory specificato e non oltre.

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 escludere 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 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 il tuo ID progetto e [JOB_ID] con l'identificatore 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 dell'analisi 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 l'analisi in BigQuery

Ora che hai creato una nuova tabella BigQuery con i risultati dell'analisi di Sensitive Data Protection, il passaggio successivo è 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 cosa ha trovato la protezione dei dati sensibili all'interno del tuo bucket di dati. Ad esempio, esegui questo comando per conteggiare tutti i risultati dell'analisi 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 potrebbero avere il seguente aspetto:

Esempio di riepilogo dei risultati di Cloud DLP.

Creare un report in Looker Studio

Looker Studio consente di creare report personalizzati basati su tabelle BigQuery. In questa sezione creerai un semplice report a tabella in Looker Studio basato sui risultati di Sensitive Data Protection 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, 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 Collega per eseguire 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 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 dei grafici e filtri di visualizzazione in dettaglio per creare dashboard e report. Per ulteriori informazioni su cosa è disponibile in Looker Studio, consulta la panoramica del prodotto Looker Studio.