Logansichten für einen Log-Bucket konfigurieren

In diesem Dokument wird beschrieben, wie Sie Logansichten in Ihren Cloud Logging-Buckets über die gcloud CLI erstellen und verwalten. Mit Logansichten können Sie fortgeschrittener und detaillierter steuern, wer Zugriff auf die Logs in Ihren Log-Buckets hat.

Allgemeine Informationen zum Logging-Speichermodell finden Sie unter Routing und Speicher – Übersicht.

Logansichten

Mit Logansichten können Sie einem Nutzer nur Zugriff auf einen Teil der Logs gewähren, die in einem Log-Bucket gespeichert sind. Stellen Sie sich beispielsweise ein Szenario vor, in dem Sie die Logs Ihrer Organisation in einem zentralen Projekt speichern. Sie können für jedes Projekt, das Logs zum Log-Bucket hinzufügt, eine Logansicht erstellen. Sie können dann jedem Nutzer Zugriff auf eine oder mehrere Logansichten gewähren und so einschränken, welche Logs die Nutzer ansehen können.

Cloud Logging erstellt automatisch eine _AllLogs-Ansicht für jeden Log-Bucket und eine _Default-Ansicht für den _Default-Log-Bucket:

  • Ansicht _AllLogs: Sie können alle Logs im Log-Bucket ansehen.
  • _Default-Ansicht: Sie können alle Audit-Logs zum Nicht-Datenzugriff im Log-Bucket ansehen.

Sie können keine Ansichten ändern, die automatisch von Cloud Logging erstellt werden. Sie können jedoch die Ansicht _AllLogs löschen.

Sie können pro Log-Bucket maximal 30 Logansichten erstellen.

Jede Logansicht enthält einen Filter, durch den die in der Ansicht sichtbaren Logeinträge eingeschränkt werden. Filter können logische AND- und NOT-Operatoren enthalten, jedoch keine logischen OR-Operatoren. Mit Filtern können Sie jeden der folgenden Werte vergleichen:

  • Eine Datenquelle mit der source-Funktion. Die Funktion source gibt Logeinträge aus einer bestimmten Ressource in der Hierarchie der Organisationen, Ordner und Google Cloud-Projekte zurück.

  • Eine Log-ID mit der Funktion log_id. Die Funktion log_id gibt Logeinträge zurück, die mit dem angegebenen Argument LOG_ID aus dem Feld logName übereinstimmen.

  • Ein gültiger Ressourcentyp mit dem Vergleich resource.type= FIELD_NAME.

Mit dem folgenden Filter werden beispielsweise Compute Engine-stdout-Logeinträge aus einem Google Cloud-Projekt namens myproject erfasst:

source("projects/myproject") AND resource.type = "gce_instance" AND log_id("stdout")

Weitere Informationen zur Filtersyntax finden Sie unter Vergleiche.

Hinweise

Führen Sie die folgenden Schritte aus, bevor Sie eine Logansicht erstellen oder aktualisieren:

  1. Falls noch nicht geschehen, erstellen Sie im entsprechenden Google Cloud-Projekt einen Logging-Bucket, für den Sie eine benutzerdefinierte Logansicht konfigurieren möchten.

  2. Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Autor von Logkonfigurationen (roles/logging.configWriter) für das Projekt zu gewähren, damit Sie die erforderlichen Berechtigungen zum Erstellen, Anzeigen, Aktualisieren und Löschen von Logansichten erhalten. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

    Möglicherweise können Sie die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

  3. Installieren Sie die Google Cloud CLI.

  4. Legen Sie fest, welche Logs in der Ansicht enthalten sein sollen. Mit diesen Informationen können Sie den Filter der Logansicht angeben.

  5. Legen Sie fest, wer Zugriff auf die Logansicht haben soll. Hauptkonten mit der Rolle roles/logging.viewAccessor können die Logs in jeder Logansicht sehen. Cloud Logging unterstützt jedoch IAM-Bedingungen. Mit Bedingungen können Sie einem Hauptkonto Zugriff auf eine bestimmte Logansicht gewähren. Weitere Informationen finden Sie unter Zugriff auf eine Logansicht gewähren.

Logansicht erstellen

Verwenden Sie zum Erstellen einer Logansicht den Befehl gcloud logging views update. Sie können pro Log-Bucket maximal 30 Logansichten erstellen.

Bevor Sie die folgenden Befehlsdaten verwenden, ersetzen Sie die folgenden Werte:

  • VIEW_ID: Die ID der Logansicht.
  • BUCKET_NAME: Der Name des Log-Buckets.
  • LOCATION: Der Speicherort des Log-Buckets.
  • FILTER: Ein Filter, der die Logansicht definiert. Wenn das Feld leer ist, enthält die Logansicht alle Logs. Wenn Sie beispielsweise nach Logs von Compute Engine-VM-Instanzen filtern möchten, geben Sie "resource.type=gce_instance" ein.
  • DESCRIPTION: Eine Beschreibung der Logansicht. Beispielsweise könnten Sie Folgendes für die Beschreibung "Compute logs" eingeben.

Führen Sie den Befehl gcloud logging views create aus:

Linux, macOS oder Cloud Shell

gcloud logging views create VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION

Windows (PowerShell)

gcloud logging views create VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION

Windows (cmd.exe)

gcloud logging views create VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION

Dieser Befehl liefert keine Antwort. Mit dem Befehl gcloud logging views list bestätigen Sie die Änderungen.

Logansichten in einem Log-Bucket auflisten

Verwenden Sie den Befehl gcloud logging views list, um die für einen Log-Bucket erstellten Logansichten aufzulisten.

Bevor Sie die folgenden Befehlsdaten verwenden, ersetzen Sie die folgenden Werte:

  • BUCKET_NAME: Der Name des Log-Buckets.
  • LOCATION: Der Speicherort des Log-Buckets.

Führen Sie den Befehl gcloud logging views list aus:

Linux, macOS oder Cloud Shell

gcloud logging views list --bucket=BUCKET_NAME --location=LOCATION

Windows (PowerShell)

gcloud logging views list --bucket=BUCKET_NAME --location=LOCATION

Windows (cmd.exe)

gcloud logging views list --bucket=BUCKET_NAME --location=LOCATION

Die Antwortdaten sind eine Liste von Logansichten. Für jede Logansicht wird der Filter zusammen mit dem Erstellungs- und dem letzten Aktualisierungsdatum angezeigt. Wenn das Erstellungs- und Aktualisierungsdatum leer ist, wurde die Logansicht beim Erstellen des Google Cloud-Projekts erstellt. Die folgende Beispielausgabe zeigt, dass es für den abgefragten Log-Bucket zwei Ansichts-IDs gibt, _AllLogs und compute:

VIEW_ID: _AllLogs
FILTER:
CREATE_TIME:
UPDATE_TIME:

VIEW_ID: compute
FILTER: resource.type="gce_instance"
CREATE_TIME: 2024-02-20T17:41:17.405162921Z
UPDATE_TIME: 2024-02-20T17:41:17.405162921Z

Zugriff auf eine Logansicht gewähren

Hauptkonten mit der Rolle roles/logging.viewAccessor für ein Google Cloud-Projekt können die Logs in jeder Logansicht sehen. Cloud Logging unterstützt jedoch IAM-Bedingungen. Mit Bedingungen können Sie einem Hauptkonto Zugriff auf eine bestimmte Logansicht gewähren.

IAM-Bedingungen werden in der Rollenbindung für ein Google Cloud-Projekt angegeben. In einer Zulassungsrichtlinie sind maximal 20 Rollenbindungen zulässig, die dieselbe Rolle und dasselbe Hauptkonto, aber unterschiedliche Bedingungsausdrücke enthalten.

Führen Sie die folgenden Schritte aus, um Nutzer zu einer Ansicht hinzuzufügen, mit der sie auf die Logs zugreifen können.

gcloud

  1. Rufen Sie die IAM-Richtlinie des Projekts ab und schreiben Sie sie in eine lokale Datei im JSON-Format. Bevor Sie den folgenden Befehl ausführen, ersetzen Sie PROJECT_ID durch die ID des Projekts, das den Log-Bucket enthält:

    gcloud projects get-iam-policy PROJECT_ID --format json > output.json
    
  2. Bearbeiten Sie die von Ihnen erstellte JSON-Datei und fügen Sie eine IAM-Bedingung hinzu, mit der der Nutzer aus dem von Ihnen erstellten Log-Bucket lesen kann.

    Im folgenden Beispiel wird beispielsweise eine Bindung angegeben, die den angegebenen Mitgliedern die Rolle "roles/logging.viewAccessor" zuweist, jedoch nur für eine einzelne Logansicht:

    {
      "bindings": [
        {
          "members": [
            "user:username@gmail.com"
          ],
          "role": "roles/logging.viewAccessor",
          "condition": {
              "title": "Bucket reader condition example",
              "description": "Grants logging.viewAccessor role to user username@gmail.com for the VIEW_ID log view.",
              "expression":
                "resource.name == \"projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID\""
          }
        }
      ],
      "etag": "BwWd_6eERR4=",
      "version": 3
    }
  3. Aktualisieren Sie die IAM-Richtlinie:

    gcloud projects set-iam-policy PROJECT_ID output.json
    

Console

Führen Sie in dem Projekt, in dem Sie den Log-Bucket erstellt haben, die folgenden Schritte aus:

  1. Wählen Sie im Navigationsbereich der Google Cloud Console IAM aus:

    Zu IAM

  2. Klicken Sie auf Zugriff erlauben.

  3. Fügen Sie im Feld Neue Hauptkonten das E-Mail-Konto des Nutzers hinzu.

  4. Wählen Sie im Drop-down-Menü Rolle auswählen die Option Zugriffsfunktion für Logansicht aus.

    Diese Rolle gibt Nutzern Lesezugriff auf alle Ansichten. Um den Nutzerzugriff auf einen bestimmten Bucket zu beschränken, fügen Sie eine Bedingung auf Basis des Ressourcennamens hinzu.

    1. Klicken Sie auf IAM-Bedingung hinzufügen.

    2. Geben Sie für die Bedingung einen Titel und eineBeschreibung ein.

    3. Wählen Sie im Drop-down-Menü Bedingungstyp die Option Ressource > Name.

    4. Wählen Sie im Drop-down-Menü Operator die Option ist aus.

    5. Geben Sie im Feld Wert die ID der Logansicht ein, einschließlich des vollständigen Pfads zur Ansicht.

      Beispiel:

      projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID
    6. Klicken Sie auf Speichern, um die Bedingung hinzuzufügen.

  5. Klicken Sie auf Speichern, um die Berechtigungen festzulegen.

Logansicht aktualisieren

Verwenden Sie zum Aktualisieren oder Ändern einer Logansicht den Befehl gcloud logging views update. Wenn Sie die ID der Datenansicht nicht kennen, lesen Sie den Abschnitt Logansichten auflisten.

Bevor Sie die folgenden Befehlsdaten verwenden, ersetzen Sie die folgenden Werte:

  • VIEW_ID: Die ID der Logansicht.
  • BUCKET_NAME: Der Name des Log-Buckets.
  • LOCATION: Der Speicherort des Log-Buckets.
  • FILTER: Ein Filter, der die Logansicht definiert. Wenn das Feld leer ist, enthält die Logansicht alle Logs. Wenn Sie beispielsweise nach Logs von Compute Engine-VM-Instanzen filtern möchten, geben Sie "resource.type=gce_instance" ein.
  • DESCRIPTION: Eine Beschreibung der Logansicht. Beispielsweise könnten Sie Folgendes für die Beschreibung "New description for the log view" eingeben.

Führen Sie den Befehl gcloud logging views update aus:

Linux, macOS oder Cloud Shell

gcloud logging views update VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION

Windows (PowerShell)

gcloud logging views update VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION

Windows (cmd.exe)

gcloud logging views update VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION

Dieser Befehl liefert keine Antwort. Mit dem Befehl gcloud logging views describe bestätigen Sie die Änderungen.

Logansicht löschen

Verwenden Sie den Befehl gcloud logging views delete, um eine Logansicht zu löschen. Wenn Sie die ID der Datenansicht nicht kennen, lesen Sie den Abschnitt Logansichten auflisten.

Bevor Sie die folgenden Befehlsdaten verwenden, ersetzen Sie die folgenden Werte:

  • VIEW_ID: Die ID der Logansicht.
  • BUCKET_NAME: Der Name des Log-Buckets.
  • LOCATION: Der Speicherort des Log-Buckets.

Führen Sie den Befehl gcloud logging views delete aus:

Linux, macOS oder Cloud Shell

gcloud logging views delete VIEW_ID --bucket=BUCKET_NAME --location=LOCATION

Windows (PowerShell)

gcloud logging views delete VIEW_ID --bucket=BUCKET_NAME --location=LOCATION

Windows (cmd.exe)

gcloud logging views delete VIEW_ID --bucket=BUCKET_NAME --location=LOCATION

Die Antwort bestätigt das Löschen. Das folgende Beispiel zeigt die Antwort auf das Löschen einer Logansicht mit dem Namen tester:

Deleted [tester].

Logansicht beschreiben

Verwenden Sie den Befehl gcloud logging views describe, um detaillierte Informationen zu einer Logansicht abzurufen. Wenn Sie die ID der Datenansicht nicht kennen, lesen Sie den Abschnitt Logansichten auflisten.

Bevor Sie die folgenden Befehlsdaten verwenden, ersetzen Sie die folgenden Werte:

  • VIEW_ID: Die ID der Logansicht.
  • BUCKET_NAME: Der Name des Log-Buckets.
  • LOCATION: Der Speicherort des Log-Buckets.

Führen Sie den Befehl gcloud logging views describe aus:

Linux, macOS oder Cloud Shell

gcloud logging views describe VIEW_ID --bucket=BUCKET_NAME --location=LOCATION

Windows (PowerShell)

gcloud logging views describe VIEW_ID --bucket=BUCKET_NAME --location=LOCATION

Windows (cmd.exe)

gcloud logging views describe VIEW_ID --bucket=BUCKET_NAME --location=LOCATION

Die Antwort enthält immer die Beschreibung und den voll qualifizierten Namen der Logansicht. Auch der Filter ist enthalten, wenn das Filterfeld nicht leer ist. Hier ist eine Beispielantwort:

createTime: '2024-02-20T17:41:17.405162921Z'
filter: resource.type="gce_instance"
name: projects/my-project/locations/global/buckets/my-bucket/views/compute
updateTime: '2024-02-20T17:41:17.405162921Z'

Mit einer Logansicht verknüpfte Logs ansehen

Zum Ansehen von Logs in einer Logansicht benötigen Sie die Rolle Zugriffsfunktion für Logansicht (roles/logging.viewAccessor) für die Logansicht:

  1. Wählen Sie im Navigationsbereich der Google Cloud Console Logging und anschließend Log-Explorer aus:

    Zum Log-Explorer

  2. Klicken Sie auf Bereich eingrenzen, um das Steuerfeld Bereich eingrenzen aufzurufen. Hier können Sie den Log-Bucket und die Logansicht auswählen, die Sie zum Aufrufen Ihrer Logs verwenden möchten.

Steuerfeld "Bereich eingrenzen"

Weitere Informationen finden Sie in der Dokumentation zum Log-Explorer.

Nächste Schritte

Zugriff auf Feldebene konfigurieren