Aggregierte Senken

Sie können eine aggregierte Exportsenke erstellen, mit der sich Logeinträge aus allen Projekten, Ordnern und Rechnungskonten einer Google Cloud-Organisation exportieren lassen. Sie haben damit beispielsweise die Möglichkeit, Audit-Logeinträge aus den Projekten einer Organisation zusammenzufassen und an einen zentralen Speicherort zu exportieren.

Konzept

Ohne das Feature für aggregierte Senken sind Senken auf das Exportieren von Logeinträgen aus der Ressource beschränkt, in der die Senke erstellt wurde: ein Google Cloud-Projekt, eine Organisation, ein Ordner oder ein Rechnungskonto.

Um das Feature für aggregierte Senken zu verwenden, erstellen Sie eine Senke in einer Google Cloud-Organisation oder in einem Google Cloud-Ordner und legen für den Parameter includeChildren der Senke den Wert True fest. Mit dieser Senke lassen sich dann Logeinträge aus der Organisation oder aus dem Ordner sowie rekursiv aus allen darin enthaltenen Ordnern, Rechnungskonten oder Projekten exportieren. Mit der Abfrage der Senke können Sie Logeinträge aus Projekten, Ressourcentypen oder benannten Logs angeben.

Informationen zum Erstellen von Senken finden Sie unter Logs in der API exportieren und Senken mit der Befehlszeile erstellen.

Exportziel erstellen

Das Ziel für Logsenken muss vor der Senke erstellt werden. Dazu verwenden Sie das gcloud-Befehlszeilentool, die Cloud Console oder die Google Cloud APIs.

Die folgenden Ziele für Senken werden unterstützt:

Das Ziel kann in jedem Google Cloud-Projekt und in jeder Organisation erstellt werden, wenn das Dienstkonto der Logsenke Berechtigungen zum Schreiben in das Ziel hat.

Aggregierte Senke erstellen

Um eine aggregierte Senke in Google Cloud-Ordnern, Rechnungskonten oder Organisationen zu erstellen, können Sie entweder die Cloud Logging API oder das gcloud-Befehlszeilentool verwenden.

Logging API

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

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

    • organizations/[ORGANIZATION_ID]
    • folders/[FOLDER_ID]
    • billingAccounts/[BILLING_ACCOUNT_ID]
  2. Legen Sie im LogSink-Objekt im Methodenanfragetext Folgendes fest:

    • Setzen Sie includeChildren auf True.

    • Legen Sie das Attribut query fest und beachten Sie dabei, dass die Abfrage mit Logeinträgen aus allen Ihren Projekten abgeglichen wird.

      Einige Beispiele für hilfreiche Abfragen finden Sie unter Abfragen mit aggregierten Senken verwenden.

    • Legen Sie die verbleibenden LogSink-Felder wie gewohnt für Senken fest. Weitere Informationen finden Sie unter Senken erstellen.

  3. Rufen Sie zum Erstellen der Senke die Methode organization.sinks.create oder folders.sinks.create auf.

  4. Ermitteln Sie anhand der API-Antwort den Namen des Dienstkontos, mit dem die Senke erstellt wurde.

  5. 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 für Dienstkonten finden Sie unter Dienstkonten Rollen zuweisen.

gcloud

Zum Erstellen einer Logsenke verwenden Sie den Befehl logging sinks create:

  1. Geben Sie den Namen, das Ziel der Senke, die Logabfrage sowie die ID des Ordners, des Rechnungskontos oder der Organisation an.

    Richten Sie beispielsweise eine aggregierte Senke auf Ordnerebene in etwa so ein:

    gcloud logging sinks create [SINK_NAME] \
    storage.googleapis.com/[BUCKET_NAME] --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]. Ersetzen Sie bei einem Rechnungskonto durch --billing-account=[BILLING_ACCOUNT_ID].

    • Damit die Senke alle Projekte 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, exportiert eine Senke nur Logs aus der Hostressource.

    • Sie benötigen die Cloud IAM-Rolle Autor von Logkonfigurationen für das übergeordnete Element, um die Senke zu erstellen. Weitere Informationen zu Cloud IAM-Rollen für Logging erhalten Sie in der Anleitung zur Zugriffssteuerung.

    • Einige Beispiele für hilfreiche Abfragen finden Sie unter Abfragen mit aggregierten Senken verwenden.

  2. Rufen Sie den Namen des Dienstkontos ab, mit dem die Senke aus der Befehlsausgabe 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 Erteilen von Ressourcenberechtigungen für Dienstkonten finden Sie unter Einem Dienstkonto Rollen für bestimmte Ressourcen zuweisen.

Abfragen mit aggregierten Senken verwenden

Wie alle Senken enthält auch die aggregierte Senke eine Abfrage, mit der einzelne Logeinträge ausgewählt werden. Ausführliche Informationen zu Abfragen erhalten Sie unter Logging-Abfragesprache.

Im Folgenden finden Sie einige Beispiele für Abfragevergleiche, 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 Abfragevergleiche.
  • Variablen sind in eckigen Klammern ([]) angegeben. Ersetzen Sie sie durch gültige Werte.

Exportquelle auswählen

Verwenden Sie eines der folgenden Vergleichsbeispiele, um Logs aus bestimmten Projekten, Ordnern oder Organisationen zu exportieren:

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

Ressourcen auswählen

Verwenden Sie mehrere Vergleiche, um die Ressource genau anzugeben und um Logs aus bestimmten Ressourcen in einem Projekt zu exportieren.

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

Eine Liste der Ressourcentypen finden Sie unter Überwachte Ressourcentypen.

Stichproben von Logeinträgen

Fügen Sie die integrierte Funktion sample hinzu, um nach dem Zufallsprinzip Stichproben von Logeinträgen zu exportieren. Wenn Sie beispielsweise nur 10 % der Logeinträge exportieren möchten, die mit der aktuellen Abfrage übereinstimmen, fügen Sie Folgendes hinzu:

sample(insertId, 0.10) AND ...

Weitere Informationen finden Sie unter der Funktion sample.

Weitere Informationen zu Cloud Logging-Abfragen erhalten Sie unter Logging-Abfragesprache.

Preise

Für exportierte Logs fallen keine Cloud Logging-Gebühren an. Es können aber Gebühren am Ziel erhoben werden. Weitere Informationen finden Sie auf der Preisseite des jeweiligen Produkts: