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

Mit aggregierten Senken in Cloud Logging können Sie Logeinträge aus allen Ressourcen in einem Ordner oder einer Organisation kombinieren und an ein zentrales Ziel weiterleiten. Sie können eine aggregierte Senke als abfangend oder nicht abfangend konfigurieren, Filter definieren, um zu steuern, welche Logeinträge weitergeleitet werden, und der Senke die Berechtigung zum Schreiben in ihr Ziel erteilen.

Beschränkungen

Wenn Sie ein aggregiertes Senken konfigurieren, gelten die folgenden Einschränkungen:

  • Ein Zielpfad kann nur einen globalen Dienstendpunkt enthalten, z. B. pubsub.googleapis.com. Sie können keinen regionalen Dienstendpunkt (Regional Service Endpoint, REP) wie pubsub.LOCATION.rep.googleapis.com einfügen. Eine Liste der unterstützten Zielpfade finden Sie unter Zielpfadformate.

  • Das Weiterleiten von Logdaten an Pub/Sub-Themen mit Einschränkungen während der Übertragung wird nicht unterstützt. Wenn Sie eine Logsenke für ein Pub/Sub-Thema mit Einschränkungen für die Übertragung konfigurieren, werden möglicherweise topic_region_not_allowed-Konfigurationsfehler und verworfene Logs angezeigt.

Hinweis

Prüfen Sie vor dem Erstellen einer Senke Folgendes:

  • Sie sind mit dem Verhalten aggregierter Senken vertraut. Weitere Informationen finden Sie unter Aggregierte Senken – Übersicht.

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

  • Sie haben eine der folgenden IAM-Rollen (Identity and Access Management) für die Organisation oder den Ordner inCloud de Confiance , von der bzw. 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 der aggregierten Senke ist vorhanden oder Sie können es erstellen. Das Ziel kann sich in einem beliebigen Cloud de Confiance -Projekt und in einer beliebigen Organisation befinden. Eine Liste der unterstützten Ziele und ihrer Einschränkungen finden Sie unter Unterstützte Ziele.

  • Wählen Sie die Schnittstelle aus, die Sie verwenden möchten:

    Console

    Wenn Sie über die Cloud de Confiance Console auf Dienste und APIs von Cloud de Confiance by S3NS zugreifen, müssen Sie die Authentifizierung nicht einrichten.

    gcloud

    Installieren Sie die Google Cloud CLI und melden Sie sich dann mit Ihrer föderierten Identität in der gcloud CLI an. Nach der Anmeldung initialisieren Sie die Google Cloud CLI mit dem folgenden Befehl:

    gcloud init

    REST

    Wenn Sie die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, verwenden Sie die Anmeldedaten, die Sie der gcloud CLI bereitstellen.

      Installieren Sie die Google Cloud CLI und melden Sie sich dann mit Ihrer föderierten Identität in der gcloud CLI an.

    Weitere Informationen finden Sie in der Dokumentation zur Cloud de Confiance -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 Gewähren von Berechtigungen für die Senke finden Sie unter 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 Cloud de Confiance Console die Seite Logs Router auf.

    Zu Logs Router

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

  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. Nachdem Sie die Senke erstellt haben, können Sie sie nicht mehr umbenennen, aber löschen und eine neue erstellen.

    • 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 füllen Sie dann das Dialogfeld aus, um das Ziel anzugeben. Sie können ein vorhandenes Ziel auswählen oder ein neues erstellen.

    • Wählen Sie für eine abfangende Senke Cloud de Confiance -Projekt aus und geben Sie dann den vollständig qualifizierten Namen des Ziel-Cloud de Confiance -Projekts ein:

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

      • Cloud de Confiance -Projekt

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

        logging.googleapis.com/projects/DESTINATION_PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME
        
      • Pub/Sub-Thema

        Geben Sie nicht den Namen eines Pub/Sub-Themas ein, für das Einschränkungen für die Übertragung gelten.

        pubsub.googleapis.com/projects/DESTINATION_PROJECT_ID/topics/TOPIC_ID
        
  6. Wählen Sie im Bereich Logs auswählen, die in der Senke enthalten sind die Ressourcen aus, die in die Senke aufgenommen werden sollen.

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

    • Wählen Sie für eine nicht abfangende Senke die Option Logs einschließen, die von dieser Ressource und allen untergeordneten Ressourcen aufgenommen wurden aus.

  7. Geben Sie im Feld „Einschließen“-Filter erstellen einen Filterausdruck ein, der den Logeinträgen entspricht, die Sie einschließen 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 Audit-Logs für den 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")
    

    Beispiele finden Sie unter Filter für aggregierte Senken.

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

  8. Optional: Wenn Sie prüfen möchten, ob Sie den richtigen Filter eingegeben haben, wählen Sie Logvorschau ansehen aus. Dadurch wird der Log-Explorer in einem neuen Tab geöffnet, auf dem der Filter bereits vorab ausgefüllt ist.

  9. Optional: Führen Sie im Bereich Logs auswählen, die aus der Senke ausgeschlossen werden sollen die folgenden Schritte aus:

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

    2. Geben Sie im Feld „Ausschließen“-Filter erstellen einen Filterausdruck ein, der mit den Logeinträgen übereinstimmt, 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 vom Routing zum Ziel ausschließen möchten, 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 ODER-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 Ihrer aggregierten Senke abzuschließen, gewähren Sie dem Dienstkonto für die Senke die Berechtigung, Logeinträge in das Ziel der Senke zu schreiben. Weitere Informationen finden Sie unter Zielberechtigungen festlegen.

gcloud

Verwenden Sie den Befehl logging sinks create, um ein aggregiertes Senken zu erstellen:

  1. Wenn Sie eine Senke erstellen möchten, führen Sie den Befehl gcloud logging sinks create aus und fügen Sie das Flag --include-children ein.

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

    • SINK_NAME: Der Name der Logsenke. Sie können den Namen einer Senke nach dem Erstellen nicht mehr ändern.
    • SINK_DESTINATION: Der Dienst oder das Projekt, an den bzw. das Ihre Logeinträge weitergeleitet werden sollen. Informationen zum Format dieser Ziele finden Sie unter Formate für Zielpfade.
    • INCLUSION_FILTER: Der „Einschließen“-Filter für eine Senke. Beispiele finden Sie unter Filter für aggregierte Senken.
    • FOLDER_ID: Die ID des Ordners. Wenn Sie einen Senken 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"
    

    Wenn Sie eine abfangende Senke erstellen möchten, fügen Sie auch das Flag --intercept-children ein.

    Wenn Sie beispielsweise eine aggregierte Senke auf Ordnerebene erstellen, 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 Ziel der Senke zu schreiben. Weitere Informationen finden Sie unter Berechtigungen für das Ziel 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 im Feld parent die Organisation oder den Ordner Cloud de Confiance fest, in der bzw. 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 Objekt LogSink im Anfragetext der Methode 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 mit den Logeinträgen übereinstimmt, die Sie einschließen möchten.

    Beispiele finden Sie unter Filter für aggregierte Senken.

    Die Länge eines Filters darf 20.000 Zeichen nicht überschreiten.

  4. Legen Sie die verbleibenden LogSink-Felder wie für jede andere Senke fest. Weitere Informationen finden Sie unter Logs an unterstützte Ziele weiterleiten.

  5. Rufen Sie organizations.sinks.create oder folders.sinks.create auf, um die Senke zu erstellen.

  6. Gewähren Sie dem Dienstkonto für die Senke die Berechtigung, in das Ziel der Senke zu schreiben. Weitere Informationen finden Sie unter Berechtigungen für das Ziel festlegen.

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

Zielberechtigungen festlegen

In diesem Abschnitt wird beschrieben, wie Sie der Schreibidentität eines Log-Senken die erforderlichen IAM-Berechtigungen gewähren, damit die Senke Logeinträge in das Ziel der Senke schreiben kann. Die Writer-Identität ist die ID des Dienstkontos, das der Senke zugeordnet ist. Diese Identität enthält eine E-Mail-Adresse, die das Hauptkonto identifiziert, das Zugriff zum Schreiben von Daten in das Ziel haben muss.

Sie müssen keine Zielberechtigungen festlegen, wenn eine Logsenke Logeinträge an einen Log-Bucket im selben Projekt weiterleitet. Für diese Konfiguration ist kein Dienstkonto erforderlich. Bei allen anderen Konfigurationen erstellt und verwaltet Logging das Dienstkonto für eine Logsenke automatisch. Sie müssen die Zielberechtigungen festlegen:

  • Seit dem 22. Mai 2023 verwendet Logging dasselbe Dienstkonto für alle Senken in der zugrunde liegenden Ressource. Ressourcen können einCloud de Confiance -Projekt, eine Organisation, ein Ordner oder ein Rechnungskonto sein.
  • Vor dem 22. Mai 2023 hat Logging für jede Senke ein Dienstkonto erstellt.

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 Cloud de Confiance Console die Seite Logs Router auf.

      Zu Logs Router

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

    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. Die Identitäten von Autoren können je nach Ressource, zu der die Senke gehört, unterschiedlich aussehen, haben aber immer das Präfix serviceAccount:. Hier ein Beispiel für eine Writer-Identität:

      serviceAccount:service-123456789012@gcp-sa-logging.s3ns-system.iam.gserviceaccount.com
      
  2. Gewähren Sie dem Hauptkonto, das durch die Identität des Autors der Senke angegeben ist, die Berechtigung, Logdaten in das Ziel zu schreiben:

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

      IAM aufrufen

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

    2. Wählen Sie in der Symbolleiste der Cloud de Confiance Console das Projekt aus, in dem das Ziel der aggregierten Senke gespeichert ist. Wenn das Ziel ein Projekt ist, wählen Sie dieses Projekt aus.

    3. Klicken Sie auf Zugriffsrechte erteilen.

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

      • Weisen Sie für alle Ziele die Rolle „Log-Autor“ (roles/logging.logWriter) zu. Ein Hauptkonto benötigt insbesondere die Berechtigung logging.logEntries.route.
      • Weisen Sie je nach Ziel eine der folgenden Rollen zu:

gcloud

  1. Sie benötigen Inhaberzugriff auf dasCloud de Confiance -Projekt, das das Ziel enthält. Wenn Sie keinen Owner Zugriff auf das Ziel der Senke haben, bitten Sie einen Project Owner, die Writer-Identität als Prinzipal hinzuzufügen.

  2. Wenn Sie Informationen zum Dienstkonto für Ihr Ziel erhalten möchten, führen Sie den Befehl gcloud logging sinks describe aus.

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

    • SINK_NAME: Der Name der Logsenke. Sie können den Namen einer Senke 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 der Bezeichnung 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. Im Folgenden wird eine Autorenidentität dargestellt:

    serviceAccount:service-123456789012@gcp-sa-logging.s3ns-system.iam.gserviceaccount.com
    
  5. Erteilen Sie der Autorenidentität der Senke die Berechtigung, Logdaten in das Ziel zu schreiben, indem Sie den Befehl gcloud projects add-iam-policy-binding ausführen.

    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 der aggregierten Senke 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: principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com 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 Logsenke zu:

      • Weisen Sie für alle Ziele die Rolle „Log-Autor“ (roles/logging.logWriter) zu. Ein Hauptkonto benötigt insbesondere die Berechtigung logging.logEntries.route.
      • Weisen Sie je nach Ziel eine der folgenden Rollen 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 Cloud de Confiance -Konsole oder die Google Cloud CLI zu verwenden, um dem Dienstkonto eine Rolle zuzuweisen.

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 begrenzt.

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 „Einschließen“- und „Ausschließen“-Filtern Ihrer 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 diesem Filter leitet die aggregierte Senke Logeinträge von Compute Engine-Instanzen in allen untergeordneten Ressourcen dieser Organisation an das Ziel weiter.

Es kann jedoch Situationen geben, in denen Sie eine aggregierte Senke verwenden möchten, um Logeinträge nur von bestimmten untergeordneten Ressourcen weiterzuleiten. Aus Compliance-Gründen möchten Sie beispielsweise Audit-Logs aus bestimmten Ordnern oder Projekten in einem eigenen Cloud Storage-Bucket speichern. In diesen Situationen konfigurieren Sie den „Einschließen“-Filter 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, müssen im Filter der Ordner und jedes der in diesem Ordner enthaltenen Projekte aufgeführt sein. Außerdem müssen die Anweisungen mit einer OR-Klausel verknüpft werden.

Mit den folgenden Filtern werden Logeinträge auf bestimmte Cloud de Confiance -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 von Compute Engine-Instanzen generiert wurden und aus dem Ordner my-folder stammen, verwenden Sie den folgenden Filter:

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

Mit diesem Filter werden Logeinträge, die aus einer anderen Ressource als my-folder stammen, nicht an das Ziel weitergeleitet. Das gilt auch für Logeinträge, die aus Cloud de Confiance -Projekten stammen, die untergeordnete Elemente von my-folder sind.

Überwachte Ressource auswählen

Wenn Sie Logeinträge nur von einer bestimmten überwachten Ressource in einemCloud de Confiance -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.

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

Nächste Schritte