Logs Ihrer Organisation zusammenfassen und speichern

In diesem Dokument wird beschrieben, wie Sie die Logeinträge verwalten, die von den Ressourcen in Ihrer Google Cloud Organisation generiert werden, indem Sie eine nicht abfangende aggregierte Senke verwenden.

Sie können eine aggregierte Senke so konfigurieren, dass sie abfangend oder nicht abfangend ist. Das hängt davon ab, ob Sie steuern möchten, welche Logeinträge in den Senken in untergeordneten Ressourcen abgefragt oder über diese weitergeleitet werden können. In dieser Anleitung erstellen Sie eine aggregierte Senke, die die Audit-Logs Ihrer Organisation an ein Google Cloud Projekt weiterleitet. Dieses leitet die aggregierten Audit-Logs dann an einen Log-Bucket weiter. Weitere Informationen finden Sie unter Übersicht über aggregierte Senken.

In dieser Anleitung führen Sie die folgenden Schritte aus:

  1. Zuerst erstellen Sie einen Log-Bucket und eine Logsenke in dem Google Cloud Projekt, in dem Sie Ihre aggregierten Logeinträge speichern möchten.

  2. Als Nächstes erstellen Sie eine nicht abfangende aggregierte Senke auf Organisationsebene, um Logeinträge an das Google Cloud Projekt weiterzuleiten, das den Log-Bucket enthält.

  3. Anschließend konfigurieren Sie den Lesezugriff auf Logansichten für den neuen Log-Bucket.

  4. Zum Schluss fragen Sie Ihre Logeinträge auf der Seite „Log-Explorer“ ab und rufen sie auf.

Hinweis

Prüfen Sie dabei Folgendes:

  • Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihre Organisation zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Konfigurieren einer aggregierten Senke benötigen:

    • Zum Erstellen von Log-Buckets und -Senken in einem Projekt: Autor von Logkonfigurationen (roles/logging.configWriter) – Ihr Projekt
    • Zum Erstellen einer aggregierten Senke: Autor von Logkonfigurationen (roles/logging.configWriter) – Ihre Organisation
    • Zum Zuweisen von Rollen zu Prinzipalen: Owner (roles/owner) – Ihr Projekt

    Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

    Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

  • Wenn Sie VPC Service Controls verwenden, müssen Sie dem Dienstperimeter eine Eingangsregel hinzufügen. Weitere Informationen zu den Einschränkungen von VPC Service Controls finden Sie unter Einschränkungen.
  • Aktivieren Sie Cloud Shell in der Google Cloud Console.

    Cloud Shell aktivieren

    Unten in der Google Cloud Console wird eine Cloud Shell Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.

Log-Bucket erstellen

Log-Buckets speichern die Logeinträge, die von anderen Google Cloud Projekten, Ordnern oder Organisationen weitergeleitet werden. Weitere Informationen finden Sie unter Log-Buckets konfigurieren.

Führen Sie folgende Schritte aus, um den Log-Bucket in dem Google Cloud Projekt zu erstellen, in dem Sie Logeinträge zusammenfassen möchten:

  1. Öffnen Sie eine Shell.

    Wenn Sie beispielsweise die Cloud Shell verwenden möchten, gehen Sie so vor:

    1. Zur Google Cloud Console:

      Zur Google Cloud Console

    2. Klicken Sie in der Symbolleiste auf  Cloud Shell aktivieren.
  2. Führen Sie in der Shell den Befehl gcloud logging buckets create aus.

    Ersetzen Sie vor dem Ausführen des folgenden Befehls die Platzhalter durch die entsprechenden Werte:

    • BUCKET_NAME: Der Name des Log-Buckets.
    • LOCATION: Der Speicherort des Log-Buckets. Nachdem Sie den Log-Bucket erstellt haben, können Sie seinen Speicherort nicht mehr ändern.
    • PROJECT_ID: Die ID des Projekts, in dem der Log-Bucket erstellt werden soll.

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

     gcloud logging buckets create BUCKET_NAME \
       --location=LOCATION --project=PROJECT_ID
    
  3. Prüfen Sie, ob der Log-Bucket erstellt wurde:

    gcloud logging buckets list --project=PROJECT_ID
    

    Die Antwort des Befehls ist eine Liste der Log-Buckets in Ihrem Projekt.

  4. Für Log-Buckets können Aufbewahrungszeiträume konfiguriert werden. Wenn Sie den Aufbewahrungszeitraum für die Logeinträge in Ihrem Log-Bucket festlegen möchten, verwenden Sie den Befehl gcloud logging buckets update. Mit dem folgenden Befehl wird beispielsweise die Aufbewahrungsdauer von im Log-Bucket gespeicherten Logeinträgen auf 365 Tage verlängert:

    gcloud logging buckets update BUCKET_NAME \
       --location=LOCATION --project=PROJECT_ID \
       --retention-days=365
    

    Weitere Informationen zu den Optionen finden Sie unter gcloud logging buckets update.

Logsenke auf Projektebene erstellen

Um Logeinträge an einen Log-Bucket weiterzuleiten, können Sie eine Senke erstellen. Eine Senke enthält einen Einschlussfilter, Ausschlussfilter und ein Ziel. In dieser Anleitung konfigurieren Sie einen Einschlussfilter und das Ziel für Ihren neuen Log-Bucket. Ihre Senke enthält keine Ausschlussfilter. Weitere Informationen zu Senken finden Sie unter Logs an unterstützte Ziele weiterleiten.

Führen Sie den Befehl gcloud logging sinks create aus, um eine Senke zu erstellen, die Logeinträge an den gerade erstellten Log-Bucket weiterleitet.

Ersetzen Sie vor dem Ausführen des folgenden Befehls die Platzhalter durch die entsprechenden Werte:

  • PROJECT_LEVEL_SINK_NAME: Der Name der Logsenke auf Projektebene.
  • SINK_DESTINATION: Der Log-Bucket, an den Ihre Logeinträge weitergeleitet werden. Das Format des Zielpfads für einen Log-Bucket ist das folgende:

    logging.googleapis.com/projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME
    
  • PROJECT_ID: Die ID des Projekts, in dem die Logsenke erstellt werden soll. Legen Sie für diese Option dasselbe Projekt fest, in dem Sie den Log-Bucket erstellt haben.

  • Fügen Sie die folgenden Optionen hinzu:

    • --log-filter : Mit dieser Option können Sie einen Filter festlegen, der den Log einträgen entspricht, die Sie in die Senke aufnehmen möchten. In dieser Anleitung ist der Filter so festgelegt, dass alle Audit-Log-Einträge ausgewählt werden. Wenn Sie keinen Filter festlegen, werden alle Logeinträge aus Ihrem Google Cloud Projekt an das Ziel weitergeleitet.
    • --description: Mit dieser Option können Sie den Zweck oder Anwendungsfall für die Senke beschreiben.

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

gcloud logging sinks create PROJECT_LEVEL_SINK_NAME SINK_DESTINATION
--project=PROJECT_ID
--log-filter='logName:cloudaudit.googleapis.com' \
--description="Audit logs from my organization" \

Aggregierte Senke erstellen

Aggregierte Senken kombinieren und leiten Logeinträge aus den Ressourcen, die in einer Organisation oder einem Ordner enthalten sind, an ein Ziel weiter.

In dieser Anleitung erstellen Sie eine nicht abfangende aggregierte Senke. Das bedeutet, dass jeder Logeintrag, der von der aggregierten Senke weitergeleitet wird, auch von den Senken in der Ressource weitergeleitet wird, aus der der Logeintrag stammt. Ein Audit-Log, das aus einem Projekt stammt, wird beispielsweise von der aggregierten Senke und den Senken in diesem Projekt weitergeleitet. Daher ist es möglich, mehrere Kopien eines Logeintrags zu speichern.

Sie können abfangende Senken erstellen. Weitere Informationen finden Sie unter Übersicht über aggregierte Senken.

Senke auf Organisationsebene einrichten

Führen Sie die folgenden Schritte aus, um eine nicht abfangende aggregierte Senke zu erstellen, die Logeinträge an ein Projekt weiterleitet:

  1. Führen Sie den gcloud logging sinks create Befehl aus.

    Ersetzen Sie vor dem Ausführen des folgenden Befehls die Platzhalter durch die entsprechenden Werte:

    • SINK_NAME: Der Name der Logsenke. Nachdem Sie eine Senke erstellt haben, können Sie ihren Namen nicht mehr ändern.
    • PROJECT_ID: Die ID des Projekts, in dem der Log-Bucket gespeichert ist.
    • ORGANIZATION_ID: Die ID der Organisation.

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

    gcloud logging sinks create SINK_NAME \
    logging.googleapis.com/projects/PROJECT_ID  \
      --log-filter='logName:cloudaudit.googleapis.com' \
      --description="Audit logs from my organization" \
      --organization=ORGANIZATION_ID \
      --include-children
    

    Die Option --include-children ist wichtig. Mit dieser Option wird sichergestellt, dass Logeinträge aus allen den Google Cloud Projekten und Ordnern in Ihrer Organisation weitergeleitet werden. Weitere Informationen finden Sie unter Logs auf Organisationsebene sortieren und an unterstützte Ziele weiterleiten.

  2. Prüfen Sie, ob die Senke erstellt wurde:

    gcloud logging sinks list --organization=ORGANIZATION_ID
    
  3. Rufen Sie den Namen des Dienstkontos ab:

    gcloud logging sinks describe SINK_NAME --organization=ORGANIZATION_ID
    

    Die Ausgabe sieht dann ungefähr so aus:

    writerIdentity: serviceAccount:o1234567890-ORGANIZATION_ID@gcp-sa-logging.iam.gserviceaccount.com
    
  4. Kopieren Sie den Wert des Felds serviceAccount in die Zwischenablage.

Zugriff auf die Senke gewähren

Nachdem Sie die aggregierte Senke erstellt haben, müssen Sie der Senke die Berechtigung erteilen, Logeinträge in das Projekt zu schreiben, das Sie als Ziel festgelegt haben. Sie können die Berechtigung über die Google Cloud Konsole erteilen oder die IAM-Richtlinie (Identity and Access Management) bearbeiten, wie unter Zielberechtigungen festlegenbeschrieben.

So erteilen Sie Ihrer Senke die Berechtigung, Logeinträge zu schreiben:

  1. Rufen Sie in der Google Cloud 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 das Google Cloud Projekt aus, das Ihren Log-Bucket enthält.

  3. Klicken Sie auf „Zugriff gewähren und fügen Sie das Dienstkonto als neues Hauptkonto hinzu. Lassen Sie das Präfix serviceAccount: weg.

  4. Wählen Sie im Menü Rolle auswählen die Option Log-Autor aus.

  5. Klicken Sie auf Speichern.

Logeinträge generieren, um die Senkenprüfung zu unterstützen

So prüfen Sie, ob Ihre aggregierte Senke ordnungsgemäß konfiguriert ist:

  1. Generieren Sie Audit-Log-Einträge, die an Ihren Log-Bucket weitergeleitet werden sollen.

    • Wenn Sie viele Google Cloud Projekte in Ihrer Organisation haben, dann haben Sie möglicherweise genügend Audit-Log-Traffic, um keine für Validierungszwecke erstellen zu müssen. Fahren Sie mit dem nächsten Schritt fort.

    • Andernfalls wechseln Sie zu einem anderen Projekt, erstellen Sie eine Compute Engine-VM-Instanz und löschen Sie dann die erstellte Instanz. Audit-Logs werden geschrieben, wenn eine VM erstellt, gestartet und gelöscht wird.

  2. Folgen Sie der Anleitung im Abschnitt mit dem Titel Logs auf der Seite „Log-Explorer“ aufrufen, um Ihre Audit-Logs aufzurufen. Achten Sie darauf, dass Sie die Ansicht _AllLogs auswählen.

Lesezugriff auf eine Logansicht für einen Log-Bucket konfigurieren

Wenn Sie einen Log-Bucket erstellen, erstellt Cloud Logging automatisch eine Logansicht mit dem Namen _AllLogs. Diese Ansicht enthält alle im Log-Bucket gespeicherten Logeinträge.

Wenn Sie den Zugriff eines Hauptkontos auf bestimmte Logeinträge beschränken möchten, erstellen Sie eine Logansicht und führen Sie dann einen der folgenden Schritte aus:

  • Weisen Sie dem Hauptkonto die Rolle roles/logging.viewAccessor zusammen mit einer IAM-Bedingung zu, die die Zuweisung auf die Logansicht beschränkt.

  • Erteilen Sie einem Prinzipal Zugriff auf die mit der Logansicht verknüpfte IAM-Richtlinie. Diese Methode empfiehlt sich, wenn Sie eine große Anzahl von Logansichten erstellen.

Weitere Informationen zu diesen beiden Methoden finden Sie unter Zugriff auf eine Logansicht steuern.

In den folgenden Schritten weisen Sie einem Prinzipal die Rolle roles/logging.viewAccessor zusammen mit einer IAM-Bedingung zu, die die Zuweisung auf die Ansicht _AllLogs beschränkt:

  1. Rufen Sie in der Google Cloud 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 das Google Cloud Projekt aus, das den Log-Bucket enthält.

  3. Klicken Sie auf Hinzufügen.

  4. Fügen Sie im Feld Neues Hauptkonto ein Hauptkonto hinzu.

  5. Wählen Sie im Menü Rolle auswählen die Option Logs-Ansicht-Zugriffsfunktion aus.

    Wenn Sie dieser Rolle keine Bedingung hinzufügen, hat das Hauptkonto Zugriff auf alle Logansichten für alle benutzerdefinierten Log-Buckets im Google Cloud Projekt.

  6. Fügen Sie der Bindung eine IAM-Bedingung hinzu:

    1. Klicken Sie auf Bedingung hinzufügen und geben Sie einen Titel und eine Beschreibung ein.
    2. Scrollen Sie im Menü Bedingungstyp zu Ressource und wählen Sie dann Name aus.
    3. Wählen Sie im Menü Operator die Option Endet mit aus.
    4. Geben Sie im Feld Wert den vollständigen Namen der Logansicht ein:

      locations/LOCATION/buckets/BUCKET_NAME/views/_AllLogs
      
    5. Klicken Sie auf Speichern , um die Bedingung zu speichern.

  7. Klicken Sie auf Speichern , um die Bindung zu speichern.

Logeinträge auf der Seite „Log-Explorer“ aufrufen

So rufen Sie die Logeinträge in Ihrem Log-Bucket auf:

  1. Rufen Sie in der Google Cloud Console das Segment und die Seite Log-Explorer auf:

    Zum Log-Explorer

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

  2. Wählen Sie Bereich eingrenzen aus.

  3. Wählen Sie im Steuerfeld Bereich eingrenzen die Option Logansicht aus.

  4. Wählen Sie die Logansicht oder die Logansichten aus, deren Logeinträge Sie sehen möchten. Wenn Sie beispielsweise alle Logeinträge aufrufen möchten, wählen Sie die Ansicht _AllLogs aus.

  5. Klicken Sie auf Übernehmen.

    Der Log-Explorer wird aktualisiert und zeigt die Logeinträge aus Ihrem Log-Bucket an. Informationen zur Verwendung des Log-Explorers finden Sie unter Log-Explorer verwenden.