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.

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

Zugriff auf eine Logansicht steuern

In Cloud Logging wird mithilfe von IAM-Richtlinien festgelegt, wer Zugriff auf Logansichten hat. IAM-Richtlinien können auf Ressourcen-, Projekt-, Ordner- und Organisationsebene vorhanden sein. Für Cloud Logging können Sie für jede Logansicht eine IAM-Richtlinie erstellen. Um zu bestimmen, ob ein Hauptkonto für eine Aktion autorisiert ist, wertet IAM alle anwendbaren Richtlinien mit der ersten Bewertung auf Ressourcenebene aus.

Hauptkonten mit der Rolle roles/logging.viewAccessor für ein Google Cloud-Projekt können auf Ansichten und Logs in jedem Log-Bucket im Projekt zugreifen.

Führen Sie einen der folgenden Schritte aus, um ein Hauptkonto auf eine bestimmte Logansicht zu beschränken:

  • Erstellen Sie eine IAM-Richtlinie für die Logansicht und fügen Sie dieser dann eine IAM-Bindung hinzu, die dem Hauptkonto Zugriff auf die Logansicht gewährt.

    Wenn Sie eine große Anzahl von Logansichten erstellen, empfehlen wir diesen Ansatz.

  • Gewähren Sie dem Hauptkonto die IAM-Rolle von roles/logging.viewAccessor, hängen Sie jedoch eine IAM-Bedingung an die Erteilung an. Die Richtliniendatei für ein Google Cloud-Projekt darf maximal 20 Rollenbindungen enthalten, die dieselbe Rolle und dasselbe Hauptkonto enthalten, aber unterschiedliche Bedingungsausdrücke.

Weitere Informationen finden Sie in diesem Dokument im Abschnitt Zugriff auf eine Logansicht gewähren.

Automatisch erstellte Logansichten

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.

Logansichtsfilter

Jede Logansicht enthält einen Filter, mit dem festgelegt wird, welche Logeinträge in der Ansicht angezeigt 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 folgenden IAM-Rollen für das Projekt zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Erstellen und Verwalten von Logansichten sowie zum Gewähren des Zugriffs auf Logansichten benötigen:

    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 und ob Sie der IAM-Richtlinie der Logansicht oder des Google Cloud-Projekts Bindungen hinzufügen möchten. Weitere Informationen finden Sie unter Zugriff auf eine Logansicht steuern.

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.

Als Nächstes gewähren Sie Hauptkonten Zugriff auf Ihre Logansicht.

Zugriff auf eine Logansicht gewähren

Wenn Sie ein Hauptkonto auf eine bestimmte Logansicht in einem benutzerdefinierten Log-Bucket beschränken möchten, fügen Sie der Logansicht oder dem Google Cloud-Projekt, in dem der Log-Bucket gespeichert ist, eine Rollenbindung hinzu. Wenn Sie eine große Anzahl von Logansichten erstellen, empfehlen wir, der Logansicht Bindungen hinzuzufügen.

Logansicht: Rollenbindungen hinzufügen

In diesem Abschnitt wird beschrieben, wie Sie einer Logansicht eine Rollenbindung hinzufügen und die mit einer Logansicht verknüpften Bindungen auflisten.

Rollenbindung zu einer Logansicht hinzufügen

Führen Sie die folgenden Schritte aus, um die IAM-Richtliniendatei einer Logansicht zu aktualisieren.

gcloud

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

  • VIEW_ID: Die ID der Logansicht.
  • PRINCIPAL: Eine Kennung für das Hauptkonto, dem Sie die Rolle zuweisen möchten. Hauptkonten-IDs haben in der Regel das folgende Format: PRINCIPAL-TYPE:ID. Beispiel: user:my-user@example.com Eine vollständige Liste der Formate, die PRINCIPAL_ID haben kann, finden Sie unter Hauptkonten-IDs.
  • BUCKET_NAME: Der Name des Log-Buckets.
  • LOCATION: Der Speicherort des Log-Buckets.

Führen Sie den Befehl gcloud logging views add-iam-policy-binding aus:

Linux, macOS oder Cloud Shell

gcloud logging views add-iam-policy-binding VIEW_ID --member=PRINCIPAL --role='roles/logging.viewAccessor' --bucket=BUCKET_NAME --location=LOCATION 

Windows (PowerShell)

gcloud logging views add-iam-policy-binding VIEW_ID --member=PRINCIPAL --role='roles/logging.viewAccessor' --bucket=BUCKET_NAME --location=LOCATION 

Windows (cmd.exe)

gcloud logging views add-iam-policy-binding VIEW_ID --member=PRINCIPAL --role='roles/logging.viewAccessor' --bucket=BUCKET_NAME --location=LOCATION 

Im Folgenden sehen Sie die Antwort, wenn eine einzelne Bindung hinzugefügt wird:

Updated IAM policy for logging view [projects/PROJECT_ID/locations/global/buckets/BUCKET_NAME/views/VIEW_ID].
bindings:
- members:
  - PRINCIPAL
  role: roles/logging.viewAccessor
etag: BwYXfSd9-Gw=
version: 1

Console

Nicht unterstützt. Verwenden Sie die Google Cloud CLI, um einer Logansicht eine Bindung hinzuzufügen.

Rollenbindungen in einer Logansicht auflisten

Führen Sie die folgenden Schritte aus, um die IAM-Bindungen für eine Logansicht aufzulisten.

gcloud

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 get-iam-policy aus:

Linux, macOS oder Cloud Shell

gcloud logging views get-iam-policy VIEW_ID --bucket=BUCKET_NAME --location=LOCATION 

Windows (PowerShell)

gcloud logging views get-iam-policy VIEW_ID --bucket=BUCKET_NAME --location=LOCATION 

Windows (cmd.exe)

gcloud logging views get-iam-policy VIEW_ID --bucket=BUCKET_NAME --location=LOCATION 

Wenn eine Logansicht keine Bindungen enthält, enthält die Antwort nur das Feld etag. Im Folgenden sehen Sie die Antwort, wenn eine Logansicht eine einzelne Bindung enthält:

bindings:
- members:
  - PRINCIPAL
  role: roles/logging.viewAccessor
etag: BwYXfSd9-Gw=
version: 1

Console

Nicht unterstützt. Verwenden Sie die Google Cloud CLI, um die Bindungen für eine Logansicht aufzulisten.

Google Cloud-Projekt: Rollenbindungen hinzufügen

In diesem Abschnitt wird beschrieben, wie Sie einem Google Cloud-Projekt eine Rollenbindung hinzufügen und die an ein Projekt angehängten Bindungen auflisten.

Einem Projekt eine Rollenbindung hinzufügen

Führen Sie die folgenden Schritte aus, um der IAM-Richtliniendatei eines Google Cloud-Projekts eine Rollenbindung hinzuzufügen.

gcloud

  1. Erstellen Sie eine JSON- oder yaml-Datei mit Ihrer Bedingung.

    Sie können beispielsweise eine Datei namens condition.yaml mit folgendem Inhalt erstellen:

    expression: "resource.name == \"projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID\""
    title: "My title"
    description: "My description"
    
  2. Optional: Prüfen Sie mit dem folgenden Befehl, ob die JSON- oder yaml-Datei richtig formatiert ist:

    gcloud alpha iam policies lint-condition --condition-from-file=condition.yaml
    
  3. Aktualisieren Sie die IAM-Richtlinie für das Google Cloud-Projekt durch Aufrufen der Methode gcloud projects add-iam-policy-binding.

    Bevor Sie den folgenden Befehl verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID: Die Kennung des Projekts.
    • PRINCIPAL: Eine Kennung für das Hauptkonto, dem Sie die Rolle zuweisen möchten. Hauptkonten-IDs haben in der Regel das folgende Format: PRINCIPAL-TYPE:ID. Beispiel: user:my-user@example.com Eine vollständige Liste der Formate, die PRINCIPAL_ID haben kann, finden Sie unter Hauptkonten-IDs.

    Führen Sie den Befehl gcloud projects add-iam-policy-binding aus:

    gcloud projects add-iam-policy-binding PROJECT_ID --member=PRINCIPAL --role='roles/logging.viewAccessor' --condition-from-file=condition.yaml
    

    Die Antwort auf den vorherigen Befehl enthält alle Rollenbindungen.

    - condition:
        description: My description
        expression: resource.name == "projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID"
        title: My title
      members:
      - PRINCIPAL
      role: roles/logging.viewAccessor
    

Console

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

  1. Öffnen Sie in der Google Cloud Console die Seite IAM:

    Zu IAM

    Wenn Sie diese Seite über die Suchleiste finden, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift IAM und Verwaltung ist.

  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.

Rollenbindung für ein Projekt auflisten

Führen Sie die folgenden Schritte aus, um die Rollenbindungen für ein Google Cloud-Projekt aufzulisten.

gcloud

Bevor Sie den folgenden Befehl verwenden, ersetzen Sie die folgenden Werte:

  • PROJECT_ID: Die Kennung des Projekts.

Führen Sie den Befehl gcloud projects get-iam-policy aus:

gcloud projects get-iam-policy PROJECT_ID

Die Antwort auf den vorherigen Befehl enthält alle Rollenbindungen.

- condition:
    description: My description
    expression: resource.name == "projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID"
    title: My title
  members:
  - PRINCIPAL
  role: roles/logging.viewAccessor

Console

Öffnen Sie in der Google Cloud Console die Seite IAM:

Zu IAM

Wenn Sie diese Seite über die Suchleiste finden, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift IAM und Verwaltung ist.

Auf der Seite IAM werden alle Hauptkonten, ihre IAM-Rollen und alle mit diesen Rollen verknüpften Bedingungen aufgelistet.

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

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. Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf:

    Zum Log-Explorer

    Wenn Sie diese Seite über die Suchleiste finden, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Logging ist.

  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