Logs auf Organisations- und Ordnerebene sortieren und an unterstützte Ziele weiterleiten

In diesem Dokument wird beschrieben, wie aggregierte Senken erstellt werden. Mit aggregierten Senken können Sie Logs, die von den Google Cloud-Ressourcen in Ihrer Organisation oder Ihrem Ordner generiert wurden, kombinieren und an einen zentralen Speicherort weiterleiten.

Überblick

Aggregierte Senken kombinieren und leiten Logeinträge aus den Ressourcen einer Organisation oder eines Ordners an ein Ziel weiter.

Wenn Sie steuern möchten, welche Logs in diesen Ressourcen abgefragt oder über die Senken in diesen Ressourcen weitergeleitet werden können, können Sie eine aggregierte Senke so konfigurieren, dass sie nicht abgefangen oder abgefangen wird:

  • Eine nicht abfangende aggregierte Senke leitet Logs über Senken in untergeordneten Ressourcen weiter. Mit dieser Senke behalten Sie den Überblick über die Logs in den Ressourcen, in denen sie generiert wurden. Nicht abfangende Senken sind für untergeordnete Ressourcen nicht sichtbar.

    Sie können beispielsweise eine nicht abfangende aggregierte Senke erstellen, die alle Logeinträge aus den Ordnern einer Organisation an einen zentralen Cloud Storage-Bucket weiterleitet. Die Logs werden im zentralen Cloud Storage-Bucket und auch in den Ressourcen gespeichert, in denen die Logs generiert wurden.

  • Eine abfangende aggregierte Senke verhindert, dass Logs über Senken in untergeordneten Ressourcen weitergeleitet werden, mit Ausnahme von _Required-Senken. Diese Senke kann nützlich sein, um zu verhindern, dass doppelte Kopien von Logs an mehreren Orten gespeichert werden.

    Sehen Sie sich beispielsweise die Audit-Logs zum Datenzugriff an. Sie können sehr umfangreich sein und das Speichern mehrerer Kopien kann teuer sein. Wenn Sie Audit-Logs zum Datenzugriff aktiviert haben, können Sie eine abfangende Senke auf Ordnerebene erstellen, die alle Audit-Logs zum Datenzugriff zur Analyse an ein zentrales Projekt weiterleitet. Diese abfangende Senke verhindert außerdem, dass Senken in untergeordneten Ressourcen Kopien der Logs an eine andere Stelle weiterleiten.

    Abfangende Senken verhindern, dass Logs über den Logrouter von untergeordneten Ressourcen übergeben werden, es sei denn, die Logs stimmen auch mit der Senke _Required überein. Da die Logs abgefangen werden, zählen sie nicht zu logbasierten Messwerten oder logbasierten Benachrichtigungsrichtlinien in den untergeordneten Ressourcen. Sie können abfangende Senken auf der Seite Logrouter der untergeordneten Ressourcen ansehen.

Weitere Informationen zum Verwalten von Senken finden Sie unter Logs an unterstützte Ziele weiterleiten: Senken verwalten.

Sie können bis zu 200 Senken pro Ordner oder Organisation erstellen.

Unterstützte Ziele

Sie können nicht abfangende aggregierte Senken verwenden, um Logs innerhalb oder zwischen denselben Organisationen und Ordnern an die folgenden Ziele weiterzuleiten:

  • Cloud Logging-Bucket: Stellt Speicher in Cloud Logging bereit. In einem Log-Bucket können Logeinträge gespeichert werden, die von mehreren Google Cloud-Projekten empfangen werden. Sie können Ihre Cloud Logging-Daten mit anderen Daten kombinieren. Dazu aktualisieren Sie einen Log-Bucket zur Verwendung von Loganalysen und erstellen dann ein verknüpftes BigQuery-Dataset. Informationen zum Aufrufen von Logeinträgen, die in Log-Buckets gespeichert sind, finden Sie unter Logs abfragen und ansehen und An Cloud Logging-Buckets weitergeleitete Logs ansehen.
  • BigQuery-Dataset: zum Speichern von Logeinträgen in BigQuery-Datasets. Sie können Big-Data-Analysefunktionen auf die gespeicherten Logeinträge anwenden. Wenn Sie Ihre Cloud Logging-Daten mit anderen Datenquellen kombinieren möchten, sollten Sie Ihre Log-Buckets auf Loganalysen aktualisieren und dann ein verknüpftes BigQuery-Dataset erstellen. Weitere Informationen zum Aufrufen von an BigQuery weitergeleiteten Logeinträgen finden Sie unter An BigQuery weitergeleitete Logs ansehen.
  • Cloud Storage-Bucket: Bietet die Speicherung von Logeinträgen in Cloud Storage. Logeinträge werden als JSON-Dateien gespeichert. Weitere Informationen zum Aufrufen von Logeinträgen, die an Cloud Storage weitergeleitet wurden, finden Sie unter An Cloud Storage weitergeleitete Logs ansehen.
  • Pub/Sub-Thema: Bietet Unterstützung für Integrationen von Drittanbietern. Logeinträge werden als JSON formatiert und dann an ein Pub/Sub-Thema weitergeleitet. Informationen zum Aufrufen von an Pub/Sub weitergeleiteten Logeinträgen finden Sie unter An Pub/Sub weitergeleitete Logs ansehen.
  • Splunk: Bietet Unterstützung für Splunk. Sie müssen Ihre Logeinträge an ein Pub/Sub-Thema weiterleiten und dieses Thema dann mit Splunk abonnieren.
  • Google Cloud-Projekt: Logeinträge an ein anderes Google Cloud-Projekt weiterleiten. Wenn Sie Logeinträge an ein anderes Google Cloud-Projekt weiterleiten, empfängt der Logrouter des Zielprojekts die Logeinträge und verarbeitet sie. Die Senken im Zielprojekt bestimmen, wie die empfangenen Logeinträge weitergeleitet werden. Error Reporting kann Logeinträge analysieren, wenn sie vom Zielprojekt an einen Log-Bucket des Zielprojekts weitergeleitet werden.
  • Weitere Ressourcen: Leiten Sie Ihre Logeinträge an ein unterstütztes Ziel weiter, das sich in einem anderen Projekt befindet. Weitere Informationen zu den zu verwendenden Pfaden finden Sie unter Zielpfadformate.

Best Practices zum Abfangen von Senken

Wenn Sie eine abfangende Senke erstellen, empfehlen wir Folgendes:

  • Überlegen Sie, ob untergeordnete Ressourcen eine unabhängige Kontrolle über das Routing ihrer Logs benötigen. Wenn eine untergeordnete Ressource bestimmte Logs unabhängig steuern muss, achten Sie darauf, dass die abfangende Senke diese Logs nicht weiterleitet.

  • Fügen Sie der Beschreibung einer abfangenden Senke Kontaktinformationen hinzu. Dies kann hilfreich sein, wenn diejenigen, die die abfangende Senke verwalten, sich von denen unterscheiden, die die Projekte verwalten, deren Logs abgefangen werden.

  • Testen Sie die Senkenkonfiguration, indem Sie zuerst eine nicht abfangende aggregierte Senke erstellen, um sicherzustellen, dass die richtigen Logs weitergeleitet werden.

Aggregierte Senken und VPC Service Controls

Wenn Sie aggregierte Senken und VPC Service Controls verwenden, gelten die folgenden Einschränkungen:

  • Aggregierte Senken können auf Daten aus Projekten innerhalb eines Dienstperimeters zugreifen. Wenn Sie verhindern möchten, dass aggregierte Senken auf Daten innerhalb eines Perimeters zugreifen, empfehlen wir die Verwendung von IAM zum Verwalten von Logging-Berechtigungen.

  • VPC Service Controls unterstützt nicht das Hinzufügen von Ordner- oder Organisationsressourcen zu Dienstperimetern. Daher können Sie VPC Service Controls nicht verwenden, um Logs auf Ordner- und Organisationsebene, einschließlich aggregierter Logs, zu schützen. Zum Verwalten von Logging-Berechtigungen auf Ordner- oder Organisationsebene empfehlen wir die Verwendung von IAM.

  • Wenn Sie Logs mithilfe einer Senke auf Ordner- oder Organisationsebene an eine Ressource weiterleiten, die von einem Dienstperimeter geschützt wird, müssen Sie dem Dienstperimeter eine Regel für eingehenden Traffic hinzufügen. Die Regel für eingehenden Traffic muss Zugriff auf die Ressource über das Dienstkonto ermöglichen, das von der aggregierten Senke verwendet wird. Weitere Informationen finden Sie auf den folgenden Seiten:

  • Wenn Sie eine Richtlinie für eingehenden oder ausgehenden Traffic für einen Dienstperimeter angeben, können Sie ANY_SERVICE_ACCOUNT und ANY_USER_ACCOUNT nicht als Identitätstyp verwenden, wenn Sie Logs mithilfe einer Logsenke an Cloud Storage-Ressourcen weiterleiten. Sie können jedoch ANY_IDENTITY als Identitätstyp verwenden.

Hinweise

Prüfen Sie vor dem Erstellen einer Senke Folgendes:

  • Sie haben einen Google Cloud-Ordner oder eine Organisation mit Logs, die Sie im Log-Explorer sehen können.

  • Sie haben eine der folgenden IAM-Rollen für die Google Cloud-Organisation oder den Google Cloud-Ordner, von dem Sie Logs weiterleiten.

    • Inhaber (roles/owner)
    • Logging-Administrator (roles/logging.admin)
    • Autor von Log-Konfigurationen (roles/logging.configWriter)

    Mit den in diesen Rollen enthaltenen Berechtigungen können Sie Senken erstellen, löschen oder ändern. Informationen zum Festlegen von IAM-Rollen finden Sie in der Anleitung zur Zugriffssteuerung von Logging.

  • Sie haben eine Ressource in einem unterstützten Ziel oder die Erlaubnis, eine Ressource zu erstellen.

    Das Routingziel muss vor der Senke erstellt werden. Dies erfolgt über die Google Cloud CLI, die Google Cloud Console oder die Google Cloud APIs. Sie können das Ziel in jedem Google Cloud-Projekt in jeder Organisation erstellen, allerdings müssen Sie dafür sorgen, dass das Dienstkonto aus der Senke über Berechtigungen zum Schreiben in das Ziel verfügt.

Aggregierte Senke erstellen

Zum Erstellen einer nicht abfangenden aggregierten Senke erstellen Sie eine Senke in einer Google Cloud-Organisation oder einem Google Cloud-Ordner und setzen den Parameter includeChildren der Senke auf True. Wenn Sie den Parameter includeChildren festlegen, leitet die Senke Logeinträge aus der Organisation oder dem Ordner sowie (rekursiv) aus allen darin enthaltenen Ordnern, Rechnungskonten oder Google Cloud-Projekten weiter. Wenn Sie eine abfangende Senke erstellen möchten, legen Sie die Parameter includeChildren und interceptChildren auf True fest.

Zur Angabe von Logeinträgen, die an das Ziel weitergeleitet werden sollen, legen Sie die Ein- und Ausschlussfilter der Senke fest.

So erstellen Sie eine aggregierte Senke für Ihren Ordner oder Ihre Organisation:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Logrouter auf:

    Zum Logrouter

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

  2. Wählen Sie einen vorhandenen Ordner oder eine vorhandene Organisation aus.

  3. Wählen Sie Senke erstellen aus.

  4. Geben Sie im Bereich Senkendetails die folgenden Details ein:

    • Senkenname: Geben Sie eine Kennzeichnung für die Senke an. Beachten Sie, dass Sie die Senke nach deren Erstellung nicht mehr umbenennen, aber löschen und eine neue erstellen können.

    • Senkenbeschreibung (optional): Beschreiben Sie den Zweck oder den Anwendungsfall für die Senke.

  5. Wählen Sie im Bereich Senkenziel den Senkendienst und das Ziel aus:

    • Senkendienst auswählen: Wählen Sie den Dienst aus, an den Ihre Logs weitergeleitet werden sollen. Wenn Sie eine abfangende Senke erstellen, können Sie nur ein Google Cloud-Projekt als Ziel auswählen.

    Je nach ausgewähltem Dienst können Sie aus den folgenden Zielen auswählen:

    • Cloud Logging-Bucket: Wählen Sie einen Logging-Bucket aus oder erstellen Sie einen. Wenn Sie einen Log-Bucket erstellen, muss dieser auf Projektebene sein. Sie können keinen Log-Bucket auf Ordner- oder Organisationsebene erstellen.
    • BigQuery-Tabelle: Wählen Sie das spezifische Dataset aus, das die weitergeleiteten Logs erhalten soll, oder erstellen Sie es. Sie können auch partitionierte Tabellen verwenden.
    • Cloud Storage-Bucket: Wählen Sie den spezifischen Cloud Storage-Bucket aus, der die weitergeleiteten Logs erhalten soll, oder erstellen Sie ihn.
    • Pub/Sub-Thema: Wählen Sie das spezifische Thema aus, das die weitergeleiteten Logs erhalten soll, oder erstellen Sie es.
    • Splunk Wählen Sie das Pub/Sub-Thema für den Splunk-Dienst aus.
    • Google Cloud-Projekt: Wählen Sie das Google Cloud-Projekt aus, das die Routenlogs erhalten soll.

      Wenn Ihr Senkenziel beispielsweise ein BigQuery-Dataset ist, wäre das Senkenziel Folgendes:

      bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
      
  6. Führen Sie im Bereich Logs zum Einbeziehen in Senke auswählen einen der folgenden Schritte aus:

    • Zum Erstellen einer nicht abfangenden aggregierten Senke wählen Sie Logs einbeziehen, die von dieser Ressource und allen untergeordneten Ressourcen aufgenommen werden aus.

    • Zum Erstellen einer abfangenden Senke wählen Sie Logs abfangen, die von dieser Organisation und allen untergeordneten Ressourcen aufgenommen wurden aus.

  7. Füllen Sie das Dialogfeld aus. Geben Sie dazu einen Filterausdruck in das Feld Einschlussfilter erstellen ein, der den einzuschließenden Logeinträgen entspricht. Wenn Sie keinen Filter festlegen, werden alle Logs der ausgewählten Ressource an das Ziel geleitet.

    Sie können beispielsweise einen Filter erstellen, um alle Audit-Logs zum Datenzugriff an einen einzelnen Logging-Bucket weiterzuleiten. Dieser Filter sieht so aus:

    LOG_ID("cloudaudit.googleapis.com/data_access") OR LOG_ID("externalaudit.googleapis.com/data_access")
    

    Beachten Sie, dass ein Filter nicht länger als 20.000 Zeichen sein darf.

  8. (Optional) Um zu überprüfen, ob Sie den richtigen Filter eingegeben haben, wählen Sie Logsvorschau anzeigen aus. Dadurch wird der Log-Explorer in einem neuen Tab mit vorab ausgefülltem Filter geöffnet.

  9. (Optional) Gehen Sie im Bereich Logs auswählen, die aus der Senke ausgeschlossen werden sollen so vor:

    1. Geben Sie in das Feld Name des Ausschlussfilters einen Namen ein.

    2. Geben Sie im Abschnitt Ausschlussfilter erstellen einen Filterausdruck ein, der den Logeinträgen entspricht, die Sie ausschließen möchten. Mit der Funktion sample können Sie auch einen Teil der Logeinträge auswählen, die ausgeschlossen werden sollen.

      Wenn Sie beispielsweise verhindern möchten, dass die Logs eines bestimmten Projekts an das Ziel weitergeleitet werden, fügen Sie den folgenden Ausschlussfilter hinzu:

      logName:projects/PROJECT_ID
      

      Wenn Sie Logs aus mehreren Projekten ausschließen möchten, verwenden Sie den logischen ODER-Operator, um logName-Klauseln zu verbinden.

    Sie können bis zu 50 Ausschlussfilter pro Senke erstellen. Beachten Sie, dass ein Filter nicht länger als 20.000 Zeichen sein darf.

  10. Wählen Sie Senke erstellen aus.

API

Verwenden Sie zum Erstellen einer Senke in der Logging API die Methode organizations.sinks.create oder folders.sinks.create. Bereiten Sie die Argumente für die Methode so vor:

  1. Legen Sie als parent-Parameter die Google Cloud-Organisation oder den Google Cloud-Ordner fest, in dem die Senke erstellt werden soll. Geben Sie als übergeordnete Ressource eine der folgenden an:

    • organizations/ORGANIZATION_ID
    • folders/FOLDER_ID
  2. Führen Sie im LogSink im Methodenanfragetext einen der folgenden Schritte aus:

    • Zum Erstellen einer nicht abfangenden aggregierten Senke legen Sie includeChildren auf True fest.

    • Wenn Sie eine abfangende Senke erstellen möchten, legen Sie die Parameter includeChildren und interceptChildren auf True fest.

  3. Legen Sie das Attribut filter so fest, dass es den Logeinträgen entspricht, die Sie einschließen möchten. Beachten Sie, dass ein Filter nicht länger als 20.000 Zeichen sein darf.

    Einige Beispiele für nützliche Filter finden Sie unter Filter für aggregierte Senken erstellen.

  4. Legen Sie die verbleibenden LogSink wie gewohnt für Senken fest. Weitere Informationen finden Sie unter Logs an unterstützte Ziele weiterleiten.

  5. Rufen Sie zum Erstellen der Senke die Methode organizations.sinks.create oder folders.sinks.create auf.

  6. Rufen Sie den Namen des Dienstkontos aus dem Feld writer_identity ab, das von der API-Antwort zurückgegeben wurde.

  7. Erteilen Sie diesem Dienstkonto Schreibzugriff auf das Senkenziel.

    Wenn Sie keine Berechtigung zu dieser Änderung für das Senkenziel haben, senden Sie den Namen des Dienstkontos an einen Nutzer mit der erforderlichen Berechtigung.

    Weitere Informationen zum Zuweisen von Ressourcenberechtigungen zu Dienstkonten finden Sie im Abschnitt Zielberechtigungen festlegen.

gcloud

Verwenden Sie zum Erstellen einer aggregierten Senke den Befehl logging sinks create. Geben Sie das Flag --include-children an, um eine nicht abfangende aggregierte Senke zu erstellen. Geben Sie zum Erstellen einer abfangenden Senke sowohl das Flag --include-children als auch das Flag --intercept-children an.

  1. Geben Sie den Namen, das Senkenziel, den Filter und die ID des Ordners oder der Organisation an, von dem/der Sie Logs weiterleiten: Im folgenden Beispiel wird eine nicht abfangende aggregierte Senke erstellt:

    gcloud logging sinks create SINK_NAME \
      SINK_DESTINATION  --include-children \
      --folder=FOLDER_ID --log-filter="LOG_FILTER"
    

    Wenn Sie beispielsweise eine aggregierte Senke auf Ordnerebene erstellen und deren Ziel ein BigQuery-Dataset ist, könnte Ihr Befehl so aussehen:

    gcloud logging sinks create SINK_NAME \
      bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID --include-children \
      --folder=FOLDER_ID --log-filter="logName:activity"
    

    Hinweise:

    • Um eine Senke auf Organisationsebene zu erstellen, ersetzen Sie --folder=FOLDER_ID durch --organization=ORGANIZATION_ID.

    • Damit die Senke alle Ressourcen in der Organisation umfasst, muss das Flag --include-children gesetzt sein, selbst wenn das Flag --organization an create übergeben wird. Wenn das Flag auf false (Standardeinstellung) gesetzt ist, leitet eine Senke nur Logs aus der Hostressource weiter.

    • Einige Beispiele für nützliche Filter finden Sie unter Filter für aggregierte Senken erstellen.

  2. Ermitteln Sie anhand der Ausgabe des Befehls den Namen des Dienstkontos, mit dem die Senke erstellt wurde.

  3. Erteilen Sie diesem Dienstkonto Schreibzugriff auf das Senkenziel.

    Wenn Sie keine Berechtigung zu dieser Änderung für das Senkenziel haben, senden Sie den Namen des Dienstkontos an einen Nutzer mit der erforderlichen Berechtigung.

    Weitere Informationen zum Zuweisen von Ressourcenberechtigungen zu Dienstkonten finden Sie im Abschnitt Zielberechtigungen festlegen.

Es kann einige Minuten dauern, bis alle an einer Senke vorgenommenen Änderungen wirksam werden.

Filter für aggregierte Senken erstellen

Wie alle anderen Senken enthält auch die zusammengefasste Senke einen Filter für die Auswahl einzelner Logeinträge. Beispiele für Filter, die Sie zum Erstellen der aggregierten Senke verwenden können, finden Sie unter Beispielabfragen mit dem Log-Explorer.

Im Folgenden finden Sie einige Beispiele für Filtervergleiche, die bei Verwendung des Features für aggregierte Senken hilfreich sein können. In manchen Beispielen wird folgende Notation verwendet:

  • : ist der Teilstringoperator. Ersetzen Sie den Operator = nicht.
  • ... steht für alle weiteren Filtervergleiche.
  • Variablen sind durch farbigen Text gekennzeichnet. Ersetzen Sie sie durch gültige Werte.

Beachten Sie, dass ein Filter nicht länger als 20.000 Zeichen sein darf.

Weitere Informationen zur Filtersyntax finden Sie unter Logging-Abfragesprache.

Protokollquelle auswählen

Bei einer aggregierten Senke werden für jede untergeordnete Ressource der Organisation oder des Ordners die Ein- und Ausschlussfilter der Senke auf jeden Logeintrag angewendet, der an die untergeordnete Ressource gesendet wird. Es wird ein Logeintrag weitergeleitet, der dem Einschlussfilter entspricht und nicht ausgeschlossen ist.

Wenn die Senke Logs von allen untergeordneten Ressourcen weiterleiten soll, geben Sie in den Einschluss- und Ausschlussfiltern der Senke kein Projekt, keinen Ordner und keine Organisation an. Angenommen, Sie konfigurieren eine aggregierte Senke für eine Organisation mit dem folgenden Filter:

resource.type="gce_instance"

Beim vorherigen Filter werden Logs mit Compute Engine-Instanzen des Ressourcentyps, die in ein untergeordnetes Element dieser Organisation geschrieben werden, von der aggregierten Senke an das Ziel weitergeleitet.

Es kann jedoch Situationen geben, in denen Sie eine aggregierte Senke verwenden möchten, um Logs nur von bestimmten untergeordneten Ressourcen weiterzuleiten. Beispielsweise können Sie aus Compliancegründen Audit-Logs aus bestimmten Ordnern oder Projekten in einem eigenen Cloud Storage-Bucket speichern. Konfigurieren Sie in diesen Situationen den Einschlussfilter so, dass alle untergeordneten Ressourcen angegeben werden, deren Logs Sie weiterleiten möchten. Wenn Sie Logs aus einem Ordner und allen Projekten in diesem Ordner weiterleiten möchten, muss der Filter den Ordner und alle in diesem Ordner enthaltenen Projekte auflisten. Außerdem müssen die Anweisungen mit einer OR-Klausel verknüpft werden.

Die folgenden Filter beschränken Logs auf bestimmte Google Cloud-Projekte, ‐Ordner oder ‐Organisationen:

logName:"projects/PROJECT_ID/logs/" AND ... 
logName:("projects/PROJECT_A_ID/logs/" OR "projects/PROJECT_B_ID/logs/") AND ... 
logName:"folders/FOLDER_ID/logs/" AND ... 
logName:"organizations/ORGANIZATION_ID/logs/" AND ... 

Wenn Sie beispielsweise nur Logs weiterleiten möchten, die in Compute Engine-Instanzen geschrieben und in den Ordner my-folder geschrieben wurden, verwenden Sie den folgenden Filter:

logName:"folders/my-folder/logs/" AND resource.type="gce_instance"

Mit dem vorherigen Filter werden Logs, die in eine andere Ressource als my-folder geschrieben wurden, nicht an das Ziel weitergeleitet. Dies gilt auch für Logs, die in Google Cloud-Projekte, die my-folder untergeordnet sind, geschrieben wurden.

Überwachte Ressource auswählen

Wenn Sie Logs nur von einer bestimmten überwachten Ressource in einem Google Cloud-Projekt weiterleiten möchten, verwenden Sie mehrere Vergleiche, um die Ressource genau anzugeben:

logName:"projects/PROJECT_ID/logs" AND
resource.type=RESOURCE_TYPE AND
resource.labels.instance_id=INSTANCE_ID

Eine Liste mit Ressourcentypen finden Sie unter Überwachte Ressourcentypen.

Beispiel für Logeinträge auswählen

Fügen Sie die integrierte Funktion sample hinzu, um nach dem Zufallsprinzip Stichproben von Logeinträgen weiterzuleiten. Wenn Sie beispielsweise nur zehn Prozent der Logeinträge weiterleiten möchten, die mit Ihrem aktuellen Filter übereinstimmen, fügen Sie Folgendes hinzu:

sample(insertId, 0.10) AND ...

Weitere Informationen finden Sie unter sample-Funktion.

Weitere Informationen zu Cloud Logging-Filtern finden Sie unter Logging-Abfragesprache.

Zielberechtigungen festlegen

In diesem Abschnitt wird beschrieben, wie Sie Logging die IAM-Berechtigungen (Identitäts- und Zugriffsverwaltung) zum Schreiben von Logs an das Ziel der Senke gewähren. Eine vollständige Liste der Logging-Rollen und -Berechtigungen finden Sie unter Zugriffssteuerung.

Wenn Sie eine Senke erstellen oder aktualisieren, die Logs an ein anderes Ziel als einen Log-Bucket im aktuellen Projekt weiterleitet, ist ein Dienstkonto für diese Senke erforderlich. Logging erstellt und verwaltet das Dienstkonto automatisch für Sie:

  • Seit dem 22. Mai 2023 wird das Dienstkonto in Logging erstellt, wenn Sie eine Senke erstellen und kein Dienstkonto für die zugrunde liegende Ressource vorhanden ist. Logging verwendet für alle Senken in der zugrunde liegenden Ressource dasselbe Dienstkonto. Ressourcen können ein Google Cloud-Projekt, eine Organisation, ein Ordner oder ein Rechnungskonto sein.
  • Vor dem 22. Mai 2023 wurde in Logging für jede Senke ein Dienstkonto erstellt. Seit dem 22. Mai 2023 verwendet Logging für alle Senken in der zugrunde liegenden Ressource ein freigegebenes Dienstkonto.

Die Identität des Autors einer Senke ist die Kennung des Dienstkontos, das mit dieser Senke verknüpft ist. Alle Senken haben eine Autorenidentität, es sei denn, sie schreiben in einen Log-Bucket im aktuellen Google Cloud-Projekt.

Um Logs an eine durch einen Dienstperimeter geschützte Ressource weiterzuleiten, müssen Sie das Dienstkonto für diese Senke einer Zugriffsebene hinzufügen und es dann dem Zieldienstperimeter zuweisen. Dies ist für nicht aggregierte Senken nicht erforderlich. Weitere Informationen finden Sie unter VPC Service Controls: Cloud Logging.

So legen Sie Berechtigungen fest, damit Ihre Senke an ihr Ziel weiterleitet:

Console

  1. So rufen Sie Informationen zum Dienstkonto für Ihre Senke ab:

    1. Rufen Sie in der Google Cloud Console die Seite Logrouter auf:

      Zum Logrouter

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

    2. Wählen Sie Menü und dann Senkendetails ansehen aus.

      Im Bereich Senkendetails enthält das Feld writerIdentity die Identität des Dienstkontos. Der String serviceAccount: ist Teil der Identität des Dienstkontos. Beispiel:

      serviceAccount:service-123456789012@gcp-sa-logging.iam.gserviceaccount.com
      
  2. Gewähren Sie dem Autor im Zielprojekt die Rolle, die für das Schreiben in das Ziel erforderlich ist. Sie müssen die Rolle des Inhabers (roles/owner) haben, um einem Hauptkonto eine Rolle zuzuweisen:

    • Fügen Sie für Cloud Storage-Ziele die Identität des Autors der Senke mithilfe von IAM als Hauptkonto hinzu. Weisen Sie ihr dann die Rolle Storage-Objekt-Ersteller (roles/storage.objectCreator) zu.
    • Fügen Sie für BigQuery-Ziele die Identität des Autors der Senke mithilfe von IAM als Hauptkonto hinzu. Weisen Sie ihr dann die Rolle „BigQuery-Dateneditor“ (roles/bigquery.dataEditor) zu.
    • Fügen Sie für Pub/Sub-Ziele, einschließlich Splunk, die Identität des Autors der Senke mithilfe von IAM als Hauptkonto hinzu. Weisen Sie ihr dann die Rolle „Pub/Sub-Publisher“ (roles/pubsub.publisher) zu.
    • Fügen Sie für Logging-Bucket-Ziele in verschiedenen Google Cloud-Projekten die Identität des Autors der Senke mithilfe von IAM als Hauptkonto hinzu. Weisen Sie ihr dann die Rolle „Log-Bucket-Autor“ (roles/logging.bucketWriter) zu.
    • Fügen Sie für Google Cloud-Projektziele mithilfe von IAM die Identität des Autors der Senke als Hauptkonto hinzu und weisen Sie ihr dann die Rolle „Logautor“ (roles/logging.logWriter) zu. Insbesondere benötigt ein Hauptkonto die Berechtigung logging.logEntries.route.
    Wenn Sie nicht die Rolle Inhaber für das Ziel der Senke haben, bitten Sie einen Projektinhaber, die Identität des Autors als Hauptkonto hinzuzufügen.

API

  1. Informationen zum Dienstkonto für die Senke erhalten Sie mit der API-Methode organizations.sinks.get oder folders.sinks.get.

    Das Feld writerIdentity enthält die Identität des Dienstkontos. Der String serviceAccount: ist Teil der Identität des Dienstkontos. Beispiel:

    serviceAccount:service-123456789012@gcp-sa-logging.iam.gserviceaccount.com
    
  2. Gewähren Sie dem Autor im Zielprojekt die Rolle, die für das Schreiben in das Ziel erforderlich ist. Sie müssen die Rolle des Inhabers (roles/owner) haben, um einem Hauptkonto eine Rolle zuzuweisen:

    • Fügen Sie für Cloud Storage-Ziele die Identität des Autors der Senke mithilfe von IAM als Hauptkonto hinzu. Weisen Sie ihr dann die Rolle Storage-Objekt-Ersteller (roles/storage.objectCreator) zu.
    • Fügen Sie für BigQuery-Ziele die Identität des Autors der Senke mithilfe von IAM als Hauptkonto hinzu. Weisen Sie ihr dann die Rolle „BigQuery-Dateneditor“ (roles/bigquery.dataEditor) zu.
    • Fügen Sie für Pub/Sub-Ziele, einschließlich Splunk, die Identität des Autors der Senke mithilfe von IAM als Hauptkonto hinzu. Weisen Sie ihr dann die Rolle „Pub/Sub-Publisher“ (roles/pubsub.publisher) zu.
    • Fügen Sie für Logging-Bucket-Ziele in verschiedenen Google Cloud-Projekten die Identität des Autors der Senke mithilfe von IAM als Hauptkonto hinzu. Weisen Sie ihr dann die Rolle „Log-Bucket-Autor“ (roles/logging.bucketWriter) zu.
    • Fügen Sie für Google Cloud-Projektziele mithilfe von IAM die Identität des Autors der Senke als Hauptkonto hinzu und weisen Sie ihr dann die Rolle „Logautor“ (roles/logging.logWriter) zu. Insbesondere benötigt ein Hauptkonto die Berechtigung logging.logEntries.route.
    Wenn Sie nicht die Rolle Inhaber für das Ziel der Senke haben, bitten Sie einen Projektinhaber, die Identität des Autors als Hauptkonto hinzuzufügen.

gcloud

  1. Führen Sie den folgenden Befehl aus, um Informationen zum Dienstkonto für Ihre Senke abzurufen:

    gcloud logging sinks describe SINK_NAME
    

    Das Feld writerIdentity enthält die Identität des Dienstkontos. Der String serviceAccount: ist Teil der Identität des Dienstkontos. Beispiel:

    serviceAccount:service-123456789012@gcp-sa-logging.iam.gserviceaccount.com
    
  2. Gewähren Sie dem Autor im Zielprojekt die Rolle, die für das Schreiben in das Ziel erforderlich ist. Sie müssen die Rolle des Inhabers (roles/owner) haben, um einem Hauptkonto eine Rolle zuzuweisen:

    • Fügen Sie für Cloud Storage-Ziele die Identität des Autors der Senke mithilfe von IAM als Hauptkonto hinzu. Weisen Sie ihr dann die Rolle Storage-Objekt-Ersteller (roles/storage.objectCreator) zu.
    • Fügen Sie für BigQuery-Ziele die Identität des Autors der Senke mithilfe von IAM als Hauptkonto hinzu. Weisen Sie ihr dann die Rolle „BigQuery-Dateneditor“ (roles/bigquery.dataEditor) zu.
    • Fügen Sie für Pub/Sub-Ziele, einschließlich Splunk, die Identität des Autors der Senke mithilfe von IAM als Hauptkonto hinzu. Weisen Sie ihr dann die Rolle „Pub/Sub-Publisher“ (roles/pubsub.publisher) zu.
    • Fügen Sie für Logging-Bucket-Ziele in verschiedenen Google Cloud-Projekten die Identität des Autors der Senke mithilfe von IAM als Hauptkonto hinzu. Weisen Sie ihr dann die Rolle „Log-Bucket-Autor“ (roles/logging.bucketWriter) zu.
    • Fügen Sie für Google Cloud-Projektziele mithilfe von IAM die Identität des Autors der Senke als Hauptkonto hinzu und weisen Sie ihr dann die Rolle „Logautor“ (roles/logging.logWriter) zu. Insbesondere benötigt ein Hauptkonto die Berechtigung logging.logEntries.route.
    Wenn Sie nicht die Rolle Inhaber für das Ziel der Senke haben, bitten Sie einen Projektinhaber, die Identität des Autors als Hauptkonto hinzuzufügen.

Nächste Schritte