Audit-Logs verstehen

Auf dieser Seite werden die Audit-Logeinträge detailliert beschrieben: ihre Struktur, das Lesen und das Interpretieren.

Cloud-Audit-Logs verwaltet drei Audit-Logs für jedes GCP-Projekt, jeden Ordner und jede Organisation:

  • Audit-Logs zu Systemereignissen
  • Audit-Logs zur Administratoraktivität
  • Audit-Logs zum Datenzugriff

Einen allgemeinen Überblick über Cloud-Audit-Logs finden Sie unter Cloud-Audit-Logs.

Audit-Logs ansehen

Sie haben mehrere Möglichkeiten, Ihre Audit-Logeinträge aufzurufen:

Einfache Oberfläche

Sie können Ihre Audit-Logeinträge über die einfache Oberfläche der Loganzeige in der GCP Console abrufen. Dazu gehen Sie so vor:

  1. Rufen Sie in der GCP Console die Seite Stackdriver Logging > Logs (Loganzeige) auf:

    Zur Loganzeige

  2. Wählen Sie oben auf der Seite ein vorhandenes GCP-Projekt aus oder erstellen Sie ein neues Projekt.

  3. Wählen Sie im ersten Drop-down-Menü die Ressource aus, deren Audit-Logs angezeigt werden sollen. Sie können eine bestimmte Ressource oder Global für alle Ressourcen auswählen.

  4. Wählen Sie im zweiten Drop-down-Menü den Logtyp aus, den Sie aufrufen möchten: activity für Audit-Logs der Administratoraktivität, data_access für Audit-Logs auf Datenzugriffe und system_events für Systemereignis-Logs.

    Wenn Sie keine dieser Optionen sehen, sind im Projekt keine Audit-Logs dieses Typs verfügbar.

Erweiterte Oberfläche

Zum Abrufen der Audit-Logeinträge nutzen Sie die erweiterte Oberfläche der Loganzeige der GCP Console. Dazu gehen Sie so vor:

  1. Rufen Sie in der GCP Console die Seite Stackdriver Logging > Logs (Loganzeige) auf:

    Zur Loganzeige

  2. Wählen Sie oben auf der Seite ein vorhandenes GCP-Projekt aus oder erstellen Sie ein neues Projekt.

  3. Wählen Sie im ersten Drop-down-Menü die Ressource aus, deren Audit-Logs angezeigt werden sollen. Sie können eine bestimmte Ressource oder Global für alle Ressourcen auswählen.

  4. Klicken Sie auf den Drop-down-Pfeil (▾) ganz rechts im Suchfilterfeld und wählen Sie In erweiterten Filter umwandeln aus.

  5. Erstellen Sie einen Filter, der die gewünschten Logeinträge genauer definiert. Fügen Sie folgenden Filter hinzu, um alle Audit-Logs in Ihrem Projekt abzurufen. Geben Sie in allen Lognamen eine gültige [PROJECT_ID] an.

      logName = ("projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity"
          OR "projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fsystem_events"
          OR "projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fdata_access")
    

    Weitere Informationen zu Filtern finden Sie unter Erweiterte Logfilter.

API

So sehen Sie sich Ihre Audit-Logeinträge mithilfe der Stackdriver Logging API an:

  1. Rufen Sie in der Dokumentation für die Methode entries.list den Abschnitt Diese API testen auf.

  2. Geben Sie im Teil Anfragetext des Formulars Diese API testen Folgendes ein. Wenn Sie auf das vorab ausgefüllte Formular klicken, wird der Anfragetext automatisch eingegeben. Sie müssen aber in allen Lognamen eine gültige [PROJECT_ID] angeben.

      {
        "resourceNames": [
          "projects/[PROJECT_ID]"
        ],
        "pageSize": 5,
        "filter": "logName=(projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fsystem_events OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fdata_access)"
      }
    
  3. Klicken Sie auf Ausführen.

Weitere Informationen zu Filtern finden Sie unter Erweiterte Logfilter.

SDK

Führen Sie den folgenden Befehl aus, um Ihre Logeinträge mithilfe des Cloud SDK zu lesen. Geben Sie in allen Lognamen eine gültige [PROJECT_ID] an.

gcloud logging read "logName=(projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fsystem_events OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fdata_access)

Weitere Informationen zur Verwendung des Cloud SDK finden Sie unter Logeinträge lesen.

Format der Audit-Log-Einträge

Ein Audit-Logeintrag ist ein Typ von Stackdriver Logging-Logeintrag. Wie alle Logging-Log-Einträge werden Audit-Log-Einträge in LogEntry-Objekten gespeichert. Der Unterschied zwischen Audit-Log-Einträgen und anderen Log-Einträgen ist das Feld protoPayload. Bei Audit-Logeinträgen enthält das Feld protoPayload ein AuditLog-Objekt, in dem die Audit-Logging-Daten gespeichert sind.

Der Typ AuditLog definiert Audit-Logging-spezifische Felder wie serviceName und authenticationInfo. Im optionalen Feld serviceData werden in einigen Google Cloud Platform-Diensten dienstspezifische Informationen im Audit-Logeintrag aufgelistet. Unter Dienstspezifische Audit-Daten finden Sie eine Liste der GCP-Dienste, die dieses Feld nutzen.

Beispiel für einen Audit-Log-Eintrag

In diesem Abschnitt wird anhand eines beispielhaften Audit-Log-Eintrags erläutert, wie Sie die wichtigsten Informationen in Audit-Log-Einträgen finden.

Das folgende Beispiel zeigt einen Audit-Logeintrag zu einer Administratoraktivität. Er wurde von Resource Manager erstellt, um eine Änderung an einer Richtlinie von Cloud Identity and Access Management im Google Cloud Platform-Projekt my-gcp-project-id zu erfassen. Zur besseren Übersichtlichkeit wurden einige Teile des Log-Eintrags weggelassen und Felder hervorgehoben:

    {
      protoPayload: {
        @type: "type.googleapis.com/google.cloud.audit.AuditLog",
        status: {},
        authenticationInfo: {
          principalEmail: "user@example.com"
        },
        serviceName: "cloudresourcemanager.googleapis.com",
        methodName: "SetIamPolicy",
        authorizationInfo: [...],
        serviceData: {
          @type: "type.googleapis.com/google.iam.v1.logging.AuditData",
          policyDelta: { bindingDeltas: [
              action: "ADD",
              role: "roles/logging.privateLogViewer",
              member: "user:user@example.com"
          ], }
        },
        request: {
          resource: "my-gcp-project-id",
          policy: { bindings: [...], }
        },
        response: {
          bindings: [
            {
              role: "roles/logging.privateLogViewer",
              members: [ "user:user@example.com" ]
            }
          ],
        }
      },
      insertId: "53179D9A9B559.AD6ACC7.B40604EF",
      resource: {
        type: "project",
        labels: { project_id: "my-gcp-project-id" }
      },
      timestamp: "2016-04-27T16:24:56.135Z",
      severity: "NOTICE",
      logName: "projects/my-gcp-project-id/logs/cloudaudit.googleapis.com%2Factivity",
    }

Hier ist der Filter, mit dem das obige Beispiel für den Audit-Log-Eintrag ausgewählt wurde. Er kann in der erweiterten Benutzeroberfläche, in der Stackdriver Logging API oder im Cloud SDK verwendet werden. Die Projekt-ID befindet sich im Namen des Logs und der Filter ist schnell, da das Feld logName indexiert ist:

resource.type = "project"
logName = "projects/my-gcp-project-id/logs/cloudaudit.googleapis.com%2Factivity"

Fügen Sie bei der Suche nach Audit-Logs von nur einer Instanz eines Ressourcentyps, z. B. gce_instance, einen Instanzqualifizierer hinzu:

resource.type = "gce_instance"
resource.instance_id = "12345678901234567890"
logName = "projects/my-gcp-project-id/logs/cloudaudit.googleapis.com%2Factivity"

Interpretieren des Beispiels für einen Audit-Log-Eintrag

Im obigen Audit-Logeintrag sind die Felder protoPayload, insertId, resource, timestamp, severity und logName Teil des LogEntry-Objekts. Der Wert des Feldes protoPayload ist ein AuditLog-Objekt. Es enthält die Audit-Log-Daten.

Wenn Sie sich das Beispiel für den Audit-Log-Eintrag ansehen, kommen unter Umständen Fragen auf:

  • Ist dies ein Audit-Log-Eintrag? Ja, das können Sie auf zwei Arten erkennen:

    • Das Feld protoPayload.@type ist type.googleapis.com/google.cloud.audit.AuditLog.

    • Das Feld logName enthält die Domain cloudaudit.googleapis.com.

  • Welcher Dienst hat das Audit-Log verfasst? Das Log wurde von Resource Manager verfasst. Dies ist im Feld protoPayload.serviceName des Audit-Log-Eintrags aufgeführt.

  • Welcher Vorgang wird überprüft? SetIamPolicy, wie im Feld protoPayload.methodName angegeben. Weitere Informationen zum überprüften Vorgang finden Sie im Objekt AuditData in protoPayload.serviceData.

  • Welche Ressource wird geprüft? Ein Google Cloud Platform-Projekt, my-gcp-project-id, wird geprüft. Das Feld resource gibt den Ressourcentyp project und die Projekt-ID my-gcp-project-id an. Suchen Sie in der Liste der überwachten Ressourcentypen nach project. Sie sehen, dass es sich um ein Google-Projekt handelt.

Weitere Informationen finden Sie unter den Typen LogEntry, AuditLog und IAM AuditData.

Große oder lange laufende Audit-Log-Einträge

Ein einzelner überwachter Vorgang kann auf mehrere Logeinträge aufgeteilt werden, wenn der Vorgang asynchron ausgeführt wird oder einen großen AuditLog-Datensatz generiert. Sind für einen Vorgang mehrere Logeinträge vorhanden, enthält das Objekt LogEntry ein operation-Feld. Außerdem haben die Einträge für denselben Vorgang denselben Wert für LogEntry.operation.id und LogEntry.operation.producer.

Im vorhergehenden Beispiel eines Audit-Logeintrags ist das Feld operation nicht vorhanden. Das bedeutet, dass sich alle Auditdaten in einem einzelnen Logeintrag befinden.

Dienstspezifische Auditdaten

Einige Dienste erweitern die in ihrem AuditLog gespeicherten Informationen durch eine zusätzliche Datenstruktur im Feld serviceData des Audit-Logs. In dieser Tabelle sind die Dienste aufgeführt, die das Feld serviceData verwenden. Sie enthält auch jeweils eine Verknüpfung zum zugehörigen Typ AuditData.

Dienst Dienstdatentyp
App Engine type.googleapis.com/google.appengine.v1.AuditData
App Engine (Legacy) type.googleapis.com/google.appengine.legacy.AuditData
BigQuery type.googleapis.com/google.cloud.bigquery.logging.v1.AuditData
Cloud Identity and Access Management type.googleapis.com/google.iam.v1.logging.AuditData
Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...

Stackdriver Logging