Ergebnisse von Cloud DLP-Scans analysieren und Berichte erstellen

Mit Cloud Data Loss Prevention (DLP) können Sie vertrauliche Daten suchen, erfassen und verwalten. Nachdem Sie Inhalte mithilfe von Cloud DLP nach vertraulichen Daten gescannt haben, können Sie die Ergebnisse auf verschiedene Arten nutzen. In diesem Thema lesen Sie, wie Sie die Leistung anderer Google Cloud-Features, wie BigQuery, Cloud SQL und Google Data Studio, für folgende Zwecke nutzen können:

  • Cloud DLP-Scanergebnisse direkt in BigQuery speichern
  • Berichte über die Speicherorte sensibler Daten in Ihrer Infrastruktur erstellen
  • Umfassende SQL-Analysen ausführen, um zu verstehen, welche Arten sensibler Daten wo gespeichert sind
  • Benachrichtigungen oder Aktionen automatisieren, die auf der Grundlage eines einzelnen Ergebnisses oder einer Kombination von Ergebnissen ausgelöst werden.

Außerdem enthält dieses Thema auch ein vollständiges Beispiel, wie Cloud DLP in Kombination mit anderen Google Cloud-Features verwendet werden kann, um all dies zu erreichen.

Storage-Bucket scannen

Scannen Sie zuerst Ihre Daten. Im Folgenden finden Sie grundlegende Informationen zum Scannen von Speicher-Repositories mit Cloud DLP. Eine vollständige Anleitung zum Scannen von Speicher-Repositories, einschließlich der Verwendung von Clientbibliotheken, finden Sie unter Speicher und Datenbanken auf sensible Daten prüfen.

Zum Ausführen eines Scanvorgangs in einem Google Cloud Storage-Repository stellen Sie ein JSON-Objekt zusammen, das die folgenden Konfigurationsobjekte enthält:

  • InspectJobConfig: Konfiguriert den DLP-Scanjob und enthält:

    • StorageConfig: Das zu durchsuchende Speicher-Repository
    • InspectConfig: Die Angabe, wie und wonach gesucht werden soll. Sie können auch eine Inspektionsvorlage verwenden, um die Inspektionskonfiguration zu definieren.
    • Action: Aufgaben, die nach Abschluss des Jobs ausgeführt werden sollen. Dies kann das Speichern von Ergebnissen in einer BigQuery-Tabelle oder das Veröffentlichen einer Benachrichtigung in Pub/Sub umfassen.

In diesem Beispiel scannen Sie einen Cloud Storage-Bucket nach Personennamen, Telefonnummern, US-Sozialversicherungsnummern und E-Mail-Adressen. Anschließend senden Sie die Ergebnisse an eine BigQuery-Tabelle, die für das Speichern der DLP-Ausgabe reserviert ist. Die folgende JSON-Datei kann in einer Datei gespeichert oder direkt an die Methode create der Cloud DLP-Ressource DlpJob gesendet werden.

JSON-Eingabe:

POST https://dlp.googleapis.com/v2/projects/[PROJECT_ID]/dlpJobs?key={YOUR_API_KEY}

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

Wenn Sie zwei Sternchen (**) nach der Cloud Storage-Bucket-Adresse (gs://[BUCKET_NAME]/**) angeben, weisen Sie den Scanjob an, rekursiv zu scannen. Wenn Sie ein einzelnes Sternchen (*) setzen, weisen Sie damit den Job an, nur die angegebene Verzeichnisebene und nicht tiefer zu scannen.

Die Ausgabe wird in der angegebenen Tabelle innerhalb des angegebenen Datasets und Projekts gespeichert. Nachfolgende Jobs, die dieselbe Tabellen-ID angeben, hängen die Ergebnisse an diese Tabelle an. Sie können auch den Schlüssel "tableId" weglassen, wenn Sie Cloud DLP anweisen möchten, bei jeder Ausführung des Scans eine neue Tabelle zu erstellen.

Nachdem Sie diesen JSON-Code in einer Anfrage über die angegebene URL an die Methode projects.dlpJobs.create gesendet haben, erhalten Sie die folgende Antwort:

JSON-Ausgabe:

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

Sobald der Job abgeschlossen ist, werden die Ergebnisse in der angegebenen BigQuery-Tabelle gespeichert.

Wenn Sie den Jobstatus abfragen möchten, rufen Sie die Methode projects.dlpJobs.get auf oder senden Sie eine GET-Anfrage an die folgende URL. Ersetzen Sie dabei [PROJECT_ID] durch Ihre Projekt-ID und [JOB_ID] durch die Job-ID, die in der Antwort der Cloud Data Loss Prevention API auf die Anfrage zur Joberstellung angegeben ist (der Job-ID wird "i-" vorangestellt):

GET https://dlp.googleapis.com/v2/projects/[PROJECT_ID]/dlpJobs/[JOB_ID]?key={YOUR_API_KEY}

Für den gerade erstellten Job gibt diese Anfrage den folgenden JSON-Code zurück. Beachten Sie, dass nach den Inspektionsdetails eine Zusammenfassung der Scanergebnisse zurückgegeben wird. Wenn der Scan noch nicht abgeschlossen wurde, gibt der Schlüssel "state" den Status "RUNNING"zurück.

JSON-Ausgabe:

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

Analysen in BigQuery ausführen

Nachdem eine neue BigQuery-Tabelle mit den Ergebnissen der Cloud DLP-Prüfung erstellt wurde, kann diese Tabelle analysiert werden.

Klicken Sie in der Google Cloud Console unter Big Data auf BigQuery. Öffnen Sie Ihr Projekt und das Dataset und suchen Sie die neu erstellte Tabelle.

Sie können SQL-Abfragen für diese Tabelle ausführen, um weitere Informationen über die Suchergebnisse von Cloud DLP im Daten-Bucket zu erhalten. Führen Sie zum Beispiel Folgendes aus, um alle Scanergebnisse nach infoType zu zählen. Ersetzen Sie hierfür die Platzhalter durch die entsprechenden Werte:

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

Mit dieser Abfrage wird eine Zusammenfassung der Ergebnisse aus diesem Bucket zurückgegeben, die etwa folgendermaßen aussehen könnte:

Beispielzusammenfassung der Cloud DLP-Ergebnisse

Bericht in Data Studio erstellen

Mit Data Studio können Sie benutzerdefinierte Berichte erstellen, die auf BigQuery-Tabellen basieren. In diesem Abschnitt wird in Data Studio ein einfacher tabellarischer Bericht erstellt, der auf den in BigQuery gespeicherten Cloud DLP-Ergebnissen beruht.

  1. Öffnen Sie Data Studio und beginnen Sie einen neuen Bericht.
  2. Klicken Sie auf Neue Datenquelle erstellen.
  3. Klicken Sie in der Liste der Connectors auf BigQuery. Autorisieren Sie Data Studio, falls erforderlich, eine Verbindung zu Ihren BigQuery-Projekten herzustellen. Klicken Sie dazu auf Autorisieren.
  4. Wählen Sie nun die zu durchsuchende Tabelle aus und klicken Sie auf Meine Projekte oder Freigegebene Projekte, je nachdem, wo sich Ihr Projekt befindet. Suchen Sie Ihr Projekt, das Dataset und die Tabelle in den Listen auf der Seite.
  5. Klicken Sie auf Verbinden, um den Bericht zu erstellen.
  6. Klicken Sie auf Zum Bericht hinzufügen.

Erstellen Sie jetzt eine Tabelle, in der die Häufigkeit jedes infoType angezeigt wird. Wählen Sie als Dimension das Feld info_type.name aus. Die resultierende Tabelle sieht etwa so aus:

Eine Beispieltabelle in Data Studio.

Weitere Informationen

Dies ist nur der Anfang dessen, was Sie mit Data Studio und der Ausgabe von Cloud DLP visualisieren können. Sie können weitere Diagrammelemente und Aufschlüsselungsfilter hinzufügen, um Dashboards und Berichte zu erstellen. Weitere Informationen zu den in Data Studio verfügbaren Funktionen finden Sie in der Data Studio-Produktübersicht.