Logs auf Organisations- und Ordnerebene zusammenführen 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 werden, an einem zentralen Speicherort zusammenfassen und weiterleiten.

Hinweise

Prüfen Sie vor dem Erstellen einer Senke Folgendes:

  • Sie sind mit dem Verhalten von aggregierten Senken vertraut. Weitere Informationen zu diesen Senken finden Sie unter Aggregierte Senken – Übersicht.

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

  • Sie haben eine der folgenden IAM-Rollen für dieGoogle Cloud -Organisation oder denGoogle Cloud -Ordner, von dem Sie Logeinträge 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 für Logging.

  • Das Ziel des aggregierten Senken ist vorhanden oder Sie haben die Berechtigung, es zu erstellen.

    Wenn das Ziel ein Google Cloud -Projekt ist, kann sich das Projekt in einer beliebigen Organisation befinden. Alle anderen Ziele können sich in einem beliebigen Projekt einer beliebigen Organisation befinden.

  • Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

      In the Google Cloud console, activate Cloud Shell.

      Activate Cloud Shell

      At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

      REST

      Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter Für die Verwendung von REST authentifizieren.

Aggregierte Senke erstellen

Wenn Sie eine aggregierte Senke konfigurieren möchten, erstellen Sie die Senke und gewähren Sie ihr dann die Berechtigungen zum Schreiben in das Ziel. In diesem Abschnitt wird beschrieben, wie Sie eine aggregierte Senke erstellen. Informationen zum Erteilen von Berechtigungen für das Senken finden Sie auf dieser Seite im Abschnitt Zielberechtigungen festlegen.

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

Console

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

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

    Zum Logrouter

    Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Logging 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 Menü Senkendienst auswählen den Zieltyp aus und geben Sie dann im Dialogfeld das Ziel an. Sie können ein vorhandenes Ziel auswählen oder ein neues erstellen.

    • Wählen Sie für eine abfangende Senke Google Cloud project aus und geben Sie dann den vollständig qualifizierten Namen des Zielprojekts Google Cloud ein:

      logging.googleapis.com/projects/DESTINATION_PROJECT_ID
      
    • Wählen Sie für eine nicht abfangende Senke das Ziel aus und geben Sie dann den vollqualifizierten Namen des Ziels ein. Die folgenden Ziele werden unterstützt:

      • Google Cloud Projekt

        logging.googleapis.com/projects/DESTINATION_PROJECT_ID
        
      • Cloud Logging-Bucket

        logging.googleapis.com/projects/DESTINATION_PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME
        
      • BigQuery-Dataset

        Sie müssen den vollständig qualifizierten Namen eines schreibgeschützten Datasets eingeben. Das Dataset kann eine datumsbasiert aufgeteilte oder partitionierte Tabelle sein. Geben Sie nicht den Namen eines verknüpften Datasets ein. Verknüpfte Datasets sind schreibgeschützt.

        bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
        
      • Cloud Storage-Bucket

        storage.googleapis.com/BUCKET_NAME
        
      • Pub/Sub-Thema

        pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
        
      • Splunk

        Geben Sie das Pub/Sub-Thema für Ihren Splunk-Dienst ein.

  6. Wählen Sie im Bereich Logs auswählen, die in der Senke enthalten sein sollen die Ressourcen aus, die in die Senke aufgenommen werden sollen.

    • Wählen Sie für eine abfangende Senke Logs abfangen, die von dieser Organisation und allen untergeordneten Ressourcen aufgenommen wurden aus.

    • Wählen Sie für eine nicht abfangende Senke Von dieser Ressource aufgenommene Logs und alle untergeordneten Ressourcen einschließen aus.

  7. Geben Sie im Feld Build-Einschlussfilter einen Filterausdruck ein, der den Logeinträgen entspricht, die Sie aufnehmen möchten. Wenn Sie keinen Filter festlegen, werden alle Logeinträge aus der ausgewählten Ressource an das Ziel weitergeleitet.

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

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

    Beispiele für Filter finden Sie auf dieser Seite im Abschnitt Filter für aggregierte Senken erstellen.

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

  8. Optional: Wählen Sie Vorschau von Logs aus, um zu prüfen, ob Sie den richtigen Filter eingegeben haben. Dadurch wird der Log-Explorer in einem neuen Tab geöffnet, auf dem der Filter bereits ausgefüllt ist.

  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 die Logeinträge aus einem bestimmten Projekt ausschließen möchten, damit sie nicht an das Ziel weitergeleitet werden, fügen Sie den folgenden Ausschlussfilter hinzu:

      logName:projects/PROJECT_ID
      

      Wenn Sie Logeinträge aus mehreren Projekten ausschließen möchten, verwenden Sie den logischen OR-Operator, um logName-Klauseln zu verknüpfen.

    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.

  11. Um die Konfiguration der aggregierten Senke abzuschließen, müssen Sie dem Dienstkonto für die Senke die Berechtigung zum Schreiben von Logeinträgen in das Ziel der Senke erteilen. Weitere Informationen finden Sie unter Zielberechtigungen festlegen.

gcloud

Verwenden Sie den Befehl logging sinks create, um eine aggregierte Senke zu erstellen:

  1. Rufen Sie zum Erstellen einer Senke den Befehl gcloud logging sinks create auf und achten Sie darauf, dass Sie die Option --include-children einfügen.

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

    • SINK_NAME: Der Name der Logsenke. Sie können den Namen eines Senken nach dem Erstellen nicht mehr ändern.
    • SINK_DESTINATION: Der Dienst oder das Projekt, an das Ihre Logeinträge weitergeleitet werden sollen. Informationen zum Format dieser Ziele finden Sie unter Zielpfadformate.
    • INCLUSION_FILTER: Der Einschlussfilter für eine Senke. Beispiele für Filter finden Sie unter Filter für aggregierte Senken erstellen.
    • FOLDER_ID: Die ID des Ordners. Wenn Sie eine Senke auf Organisationsebene erstellen möchten, ersetzen Sie --folder=FOLDER_ID durch -- organization=ORGANIZATION_ID.

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

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

    Sie können auch die folgenden Optionen angeben:

    • Wenn Sie eine abfangende Senke erstellen möchten, fügen Sie die Option --intercept-children ein.

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

    gcloud logging sinks create SINK_NAME \
      pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID --include-children \
      --folder=FOLDER_ID --log-filter="logName:activity"
  2. Gewähren Sie dem Dienstkonto für die Senke die Berechtigung, in das Senkenziel zu schreiben. Weitere Informationen finden Sie unter Zielberechtigungen festlegen.

REST

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

  1. Legen Sie als parent-Feld die Google Cloud Organisation oder den 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-Objekt im Methodenanfragetext einen der folgenden Schritte aus:

    • Setzen Sie includeChildren auf True.

    • Wenn Sie eine abfangende Senke erstellen möchten, legen Sie das Feld interceptChildren auf True fest.

  3. Legen Sie das Feld filter so fest, dass es den Logeinträgen entspricht, die Sie aufnehmen möchten.

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

    Ein Filter darf nicht länger als 20.000 Zeichen sein.

  4. Legen Sie die verbleibenden LogSink-Felder 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. Gewähren Sie dem Dienstkonto für die Senke die Berechtigung, in das Senkenziel zu schreiben. Weitere Informationen finden Sie unter Zielberechtigungen festlegen.

Es kann einige Minuten dauern, bis Änderungen an einem Senkenziel angewendet werden.

Filter für aggregierte Senken

In diesem Abschnitt finden Sie Beispiele für Filter, die Sie in einer aggregierten Senke verwenden können. Weitere Beispiele finden Sie unter Beispielabfragen mit dem Log-Explorer.

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.

Die Länge eines Filters ist auf 20.000 Zeichen beschränkt.

Weitere Informationen zur Filtersyntax finden Sie unter Logging-Abfragesprache.

Protokollquelle auswählen

Wenn Sie Logeinträge aus allen untergeordneten Ressourcen weiterleiten möchten, geben Sie in den Ein- 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"

Mit dem vorherigen Filter werden Logeinträge mit dem Ressourcentyp „Compute Engine-Instanzen“, die in ein beliebiges untergeordnetes Element dieser Organisation geschrieben werden, vom aggregierten Senkenziel weitergeleitet.

Es kann jedoch vorkommen, dass Sie eine aggregierte Senke verwenden möchten, um Logeinträge nur von bestimmten untergeordneten Ressourcen weiterzuleiten. Aus Compliance-Gründen möchten Sie möglicherweise Audit-Logs aus bestimmten Ordnern oder Projekten in einem eigenen Cloud Storage-Bucket speichern. Konfigurieren Sie in diesen Fällen Ihren Einschlussfilter so, dass jede untergeordnete Ressource angegeben wird, deren Logeinträge weitergeleitet werden sollen. Wenn Sie Logeinträge aus einem Ordner und allen Projekten in diesem Ordner weiterleiten möchten, muss der Filter den Ordner und jedes der in diesem Ordner enthaltenen Projekte auflisten und die Anweisungen mit einer OR-Klausel verknüpfen.

Mit den folgenden Filtern werden Logeinträge auf bestimmte Google Cloud Projekte, Ordner oder Organisationen beschränkt:

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 Logeinträge weiterleiten möchten, die in Compute Engine-Instanzen geschrieben wurden, die 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 Logeinträge, die in eine andere Ressource als my-folder geschrieben werden, nicht an das Ziel weitergeleitet. Das gilt auch für Logeinträge, die in Google Cloud -Projekte geschrieben werden, die untergeordnete Projekte von my-folder sind.

Überwachte Ressource auswählen

Verwenden Sie mehrere Vergleiche, um die Ressource genau anzugeben, um nur Logeinträge von bestimmten überwachten Ressourcen in einemGoogle Cloud -Projekt weiterzuleiten.

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 (Identity and Access Management) zum Schreiben von Logeinträgen 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, mit der Logeinträge an ein anderes Ziel als einen Log-Bucket im aktuellen Projekt weitergeleitet werden, 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 von Logging erstellt, wenn Sie eine Senke erstellen und kein Dienstkonto für die zugrunde liegende Ressource vorhanden ist. Für das Logging wird dasselbe Dienstkonto für alle Senken in der zugrunde liegenden Ressource verwendet. 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 wird für das Logging ein gemeinsames Dienstkonto für alle Senken in der zugrunde liegenden Ressource verwendet.

Die Identität des Autors einer Senke ist die Kennung des Dienstkontos, das dieser Senke zugeordnet ist. Alle Senken haben eine Autorenidentität, es sei denn, sie schreiben in ein Log-Bucket im aktuellen Google Cloud -Projekt. Die E-Mail-Adresse in der Identität des Autors gibt das Hauptkonto an, das Zugriff zum Schreiben von Daten in das Ziel haben muss.

Um Logeinträge 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 Ihr Senkenprojekt ab:

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

      Zum Logrouter

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

    2. Wählen Sie  Menü und dann Senkendetails ansehen aus. Die Identität des Autors wird im Feld Senkendetails angezeigt.

    3. Wenn der Wert des Felds writerIdentity eine E-Mail-Adresse enthält, fahren Sie mit dem nächsten Schritt fort. Wenn der Wert None ist, müssen Sie keine Berechtigungen für das Ziel konfigurieren.

    4. Kopieren Sie die Identität des Autors der Senke in die Zwischenablage. Das folgende Beispiel zeigt eine Autorenidentität:

      serviceAccount:[email protected]
      
  2. Erteilen Sie dem Hauptkonto, das durch die Identität des Autors der Senke angegeben wird, die Berechtigung zum Schreiben von Logdaten in das Ziel:

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

      Rufen Sie IAM auf.

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

    2. Wählen Sie in der Symbolleiste der Google Cloud -Console das Projekt aus, in dem das Ziel des aggregierten Senken gespeichert ist. Wenn das Ziel ein Projekt ist, wählen Sie dieses Projekt aus.

    3. Klicken Sie auf Zugriff erlauben.

    4. Geben Sie das Hauptkonto an, das durch die Identität des Autors der Senke angegeben wird, und weisen Sie dann eine IAM-Rolle zu:

gcloud

  1. Sie benötigen Inhaberzugriff auf dasGoogle Cloud -Projekt, das das Ziel enthält. Wenn Sie keinen Inhaber-Zugriff auf das Ziel der Senke haben, bitten Sie einen Projektinhaber, die Identität des Autors als Prinzipal hinzuzufügen.

  2. Rufen Sie die Methode gcloud logging sinks describe auf, um Informationen zum Dienstkonto für Ihr Senken abzurufen.

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

    • SINK_NAME: Der Name der Logsenke. Sie können den Namen eines Senken nach dem Erstellen nicht mehr ändern.

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

    gcloud logging sinks describe SINK_NAME
    
  3. Wenn die Senkendetails ein Feld mit dem Label writerIdentity enthalten, fahren Sie mit dem nächsten Schritt fort. Wenn die Details kein writerIdentity-Feld enthalten, müssen Sie keine Zielberechtigungen für die Senke konfigurieren.

  4. Kopieren Sie die Identität des Autors der Senke in die Zwischenablage. Das folgende Beispiel zeigt eine Autorenidentität:

    serviceAccount:[email protected]
    
  5. Erteilen Sie der Identität des Autors der Senke die Berechtigung, Logdaten in das Ziel zu schreiben, indem Sie den Befehl gcloud projects add-iam-policy-binding aufrufen.

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

    • PROJECT_ID: Die Kennung des Projekts. Wählen Sie das Projekt aus, in dem das Ziel des aggregierten Senken gespeichert ist. Wenn das Ziel ein Projekt ist, wählen Sie dieses Projekt aus.
    • PRINCIPAL: Eine Kennzeichnung für das Hauptkonto, dem Sie die Rolle zuweisen möchten. Hauptkonto-Kennzeichnungen haben normalerweise das folgende Format: PRINCIPAL-TYPE:ID. Beispiel: user:[email protected] Eine vollständige Liste der Formate, die PRINCIPAL haben kann, finden Sie unter Hauptkonto-IDs.
    • ROLE: Eine IAM-Rolle. Weisen Sie der Identität des Autors der Senke eine IAM-Rolle basierend auf dem Ziel der Logs zu:

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

    gcloud projects add-iam-policy-binding PROJECT_ID --member=PRINCIPAL --role=ROLE
    

REST

Wir empfehlen, die Google Cloud -Konsole oder die Google Cloud CLI zu verwenden, um dem Dienstkonto eine Rolle zuzuweisen.

Nächste Schritte