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 Funktionsource
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 Funktionlog_id
gibt Logeinträge zurück, die mit dem angegebenen ArgumentLOG_ID
aus dem FeldlogName
ü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:
Falls noch nicht geschehen, erstellen Sie im entsprechenden Google Cloud-Projekt einen Logging-Bucket, für den Sie eine benutzerdefinierte Logansicht konfigurieren möchten.
-
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:
-
Autor von Logkonfigurationen (
roles/logging.configWriter
) -
So fügen Sie einem Projekt eine Rollenbindung hinzu:
Projekt-IAM-Administrator (
roles/resourcemanager.projectIamAdmin
) -
So fügen Sie einer Logansicht eine Rollenbindung hinzu: Logging-Administrator (
roles/logging.admin
)
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.
-
Autor von Logkonfigurationen (
Installieren Sie die Google Cloud CLI.
Legen Sie fest, welche Logs in der Ansicht enthalten sein sollen. Mit diesen Informationen können Sie den Filter der Logansicht angeben.
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, diePRINCIPAL_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
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"
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
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, diePRINCIPAL_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:
-
Öffnen Sie in der Google Cloud Console die Seite IAM:
Wenn Sie diese Seite über die Suchleiste finden, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift IAM und Verwaltung ist.
Klicken Sie auf
Zugriff erlauben.Fügen Sie im Feld Neue Hauptkonten das E-Mail-Konto des Nutzers hinzu.
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.
Klicken Sie auf IAM-Bedingung hinzufügen.
Geben Sie für die Bedingung einen Titel und eineBeschreibung ein.
Wählen Sie im Drop-down-Menü Bedingungstyp die Option Ressource > Name.
Wählen Sie im Drop-down-Menü Operator die Option ist aus.
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
Klicken Sie auf Speichern, um die Bedingung hinzuzufügen.
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:
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:
-
Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf:
Wenn Sie diese Seite über die Suchleiste finden, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Logging ist.
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.
Weitere Informationen finden Sie in der Dokumentation zum Log-Explorer.
Nächste Schritte
Zugriff auf Feldebene konfigurieren