Einführung in Audit-Logs in BigQuery

Logs sind Textdatensätze, die als Reaktion auf bestimmte Ereignisse oder Aktionen generiert werden. BigQuery erstellt beispielsweise Logeinträge für Aktionen wie das Erstellen oder Löschen einer Tabelle, das Erwerben von Slots oder das Ausführen eines Ladejobs.

Google Cloud schreibt auch Logs, einschließlich Audit-Logs, die Einblicke in die betrieblichen Aspekte im Zusammenhang mit der Verwendung von Google Cloud-Diensten bieten. Weitere Informationen zum Logging von Google Cloud finden Sie in der Cloud Logging-Dokumentation und in der Übersicht über Cloud-Audit-Logs.

Audit-Logs im Vergleich zu INFORMATION_SCHEMA-Ansichten

Ihre Google Cloud-Projekte enthalten Audit-Logs nur für Ressourcen, die sich direkt im Google Cloud-Projekt befinden. Andere Google Cloud-Ressourcen wie Ordner, Organisationen und Rechnungskonten enthalten jeweils eigene Audit-Logs.

Anhand von Audit-Logs können Sie herausfinden, wer was wo und wann in Ihren Google Cloud-Ressourcen getan hat. Audit-Logs sind die entscheidende Quelle für Informationen zur Systemaktivität nach Nutzer- und Zugriffsmustern und sollten Ihre primäre Quelle für Audit- oder Sicherheitsfragen sein.

INFORMATION_SCHEMA-Ansichten in BigQuery sind eine weitere Informationsquelle, die Sie zusammen mit Messwerten und Logs verwenden können. Diese Ansichten enthalten Metadaten zu Jobs, Datasets, Tabellen und anderen BigQuery-Entitäten. So können Sie beispielsweise Echtzeitmetadaten darüber abrufen, welche BigQuery-Jobs zu einer bestimmten Zeit ausgeführt wurden. Anschließend können Sie die Ergebnisse nach Projekt, Nutzer, referenzierten Tabellen und anderen Dimensionen gruppieren oder filtern.

INFORMATION_SCHEMA-Ansichten bieten Informationen zur Ausführung einer detaillierteren Analyse Ihrer BigQuery-Arbeitslasten. Beispiele:

  • Wie hoch war die durchschnittliche Slot-Auslastung für alle Abfragen in den letzten sieben Tagen für ein bestimmtes Projekt?
  • Welche Streamingfehler sind in den letzten 30 Minuten aufgetreten, gruppiert nach Fehlercode?

BigQuery-Audit-Logs enthalten Logeinträge für API-Aufrufe, beschreiben jedoch nicht die Auswirkungen der API-Aufrufe. Eine Teilmenge von API-Aufrufen erstellt Jobs (z. B. Abfrage und Last), deren Informationen von INFORMATION_SCHEMA-Ansichten erfasst werden. Beispielsweise finden Sie Informationen zu Zeit und Slots, die von einer bestimmten Abfrage in INFORMATION_SCHEMA-Ansichten genutzt werden, aber nicht in den Audit-Logs.

Insbesondere erhalten Sie Informationen zur Leistung Ihrer BigQuery-Arbeitslasten unter Jobmetadaten, Streamingmetadaten und Reservierungsmetadaten.

Weitere Informationen zu den Arten von Audit-Logs, die von Google Cloud-Diensten geschrieben werden, finden Sie unter Arten von Audit-Logs.

Audit-Logformat

Google Cloud-Dienste schreiben Audit-Logs im strukturierten JSON-Format. Der Basisdatentyp für Google Cloud-Logeinträge ist die LogEntry-Struktur. Diese Struktur enthält den Namen des Logs, die Ressource, die den Logeintrag generiert hat, den Zeitstempel (UTC) und weitere grundlegende Informationen.

Logs enthalten Details zum protokollierten Ereignis in einem Unterfeld, das als Nutzlastfeld bezeichnet wird. Bei Audit-Logs hat das Nutzlastfeld den Namen protoPayload. Der Typ dieses Felds (protoPayload.@type) ist auf type.googleapis.com/google.cloud.audit.AuditLog gesetzt. Dies bedeutet, dass das Feld die AuditLog-Logstruktur verwendet.

Bei Vorgängen für Datasets, Tabellen und Jobs schreibt BigQuery Audit-Logs in zwei verschiedenen Formaten, obwohl beide Formate den Basistyp AuditLog haben.

Das ältere Format enthält die folgenden Felder und Werte:

  • Der Wert für das Feld resource.type ist bigquery_resource.
  • BigQuery schreibt die Details zu einem Vorgang in das Feld protoPayload.serviceData. Der Wert dieses Felds verwendet die Logstruktur AuditData.

Das neuere Format enthält die folgenden Felder und Werte:

  • Der Wert für das Feld resource.type ist entweder bigquery_project oder bigquery_dataset. Die Ressource bigquery_project enthält Logeinträge zu Jobs, während die Ressource bigquery_dataset Logeinträge zum Speicher enthält.
  • BigQuery schreibt die Details zu einem Vorgang in das Feld protoPayload.metadata. Der Wert dieses Felds verwendet die Struktur BigQueryAuditMetadata.

Wir empfehlen die Nutzung von Logs im neueren Format. Weitere Informationen finden Sie in der Migrationsanleitung für Audit-Logs.

Das folgende Beispiel zeigt ein abgekürztes Beispiel für einen Logeintrag, der einen fehlgeschlagenen Vorgang anzeigt:

{
  "protoPayload": {
    "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
    "status": {
      "code": 5,
      "message": "Not found: Dataset myproject:mydataset was not found in location US"
    },
    "authenticationInfo": { ... },
    "requestMetadata":  { ... },
    "serviceName": "bigquery.googleapis.com",
    "methodName": "google.cloud.bigquery.v2.JobService.InsertJob",
    "metadata": {
  },
  "resource": {
    "type": "bigquery_project",
    "labels": { .. },
  },
  "severity": "ERROR",
  "logName": "projects/myproject/logs/cloudaudit.googleapis.com%2Fdata_access",
  ...
}

Bei Vorgängen für BigQuery-Reservierungen verwendet das Feld protoPayload die Struktur AuditLog und die Felder protoPayload.request und protoPayload.response enthalten weitere Informationen. Die Felddefinitionen finden Sie unter BigQuery Reservation API. Weitere Informationen finden Sie unter BigQuery Reservations überwachen.

Detaillierte Informationen zum Format von Audit-Logs finden Sie unter Audit-Logs verstehen.

Beschränkungen

Lognachrichten haben eine Größenbeschränkung von 100.000 Byte. Weitere Informationen finden Sie unter Abgeschnittener Logeintrag.

Transparenz und Zugriffssteuerung

BigQuery-Audit-Logs können Informationen enthalten, die für Nutzer vertraulich sein könnten, z. B. SQL-Text, Schemadefinitionen und Kennungen für Ressourcen wie Tabellen und Datasets. Informationen zum Verwalten des Zugriffs auf diese Informationen finden Sie in der Dokumentation zur Zugriffssteuerung für Cloud Logging.

Nächste Schritte

  • Informationen zum Prüfen von Aktivitäten, die sich auf Richtlinien-Tags beziehen, mithilfe von Cloud Logging finden Sie unter Audit-Richtlinien-Tags.
  • Informationen zur Analyse von protokollierten Aktivitäten mit BigQuery finden Sie in der Übersicht zu BigQuery-Audit-Logs.