Logs Ihrer Organisation zusammenfassen und speichern

In diesem Dokument wird beschrieben, wie Sie die von den Ressourcen in Ihrer Google Cloud-Organisation generierten Logeinträge mithilfe eines nicht abfangenden aggregierten Sinks verwalten.

Sie können eine aggregierte Senke so konfigurieren, dass sie Logs abfängt oder nicht, je nachdem, ob Sie steuern möchten, welche Protokolleinträge abgefragt oder über die Senken in untergeordneten Ressourcen weitergeleitet werden. In dieser Anleitung erstellen Sie eine zusammengefasste Senke, die die Audit-Logs Ihrer Organisation an ein Google Cloud-Projekt weiterleitet, das die zusammengefassten Audit-Logs dann an einen Log-Bucket weiterleitet.

Weitere Informationen zu aggregierten Senken finden Sie unter Logs auf Organisations- und Ordnerebene sortieren und an unterstützte Ziele weiterleiten.

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

  1. Erstellen Sie zuerst einen Log-Bucket und eine Log-Senke im Google Cloud-Projekt, in dem Sie Ihre aggregierten Logeinträge speichern möchten.

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

  3. Konfigurieren Sie dann den Lesezugriff auf die Logansichten im neuen Log-Bucket.

  4. Abschließend können Sie Ihre Logeinträge auf der Seite „Log-Explorer“ abfragen und aufrufen.

Hinweise

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 eines aggregierten Sinks benötigen:

    • So erstellen Sie Log-Buckets und Senken in einem Projekt: Logs Configuration Writer (roles/logging.configWriter) – Ihr Projekt
    • So erstellen Sie eine aggregierte Senke: Autor von Logkonfigurationen (roles/logging.configWriter) – Ihre Organisation
    • So gewähren Sie Hauptbevollmächtigten Rollen: Inhaber (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 Regel für eingehenden Traffic hinzufügen. Weitere Informationen zu den Einschränkungen von VPC Service Controls finden Sie unter Zusammengeführte Senken und Einschränkungen von VPC Service Controls.
  • 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.

Log-Bucket erstellen

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

Führen Sie die folgenden 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.

    So verwenden Sie beispielsweise Cloud Shell:

    1. Öffnen Sie die 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.

    Bevor Sie den folgenden Befehl ausführen, ersetzen Sie die folgenden 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 Standort nicht mehr ändern.
    • PROJECT_ID: Die Kennung des Projekts, in dem der Log-Bucket erstellt werden soll.

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

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

    gcloud logging buckets list --project=PROJECT_ID
    

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

  4. Log-Buckets haben konfigurierbare Aufbewahrungsdauern. Wenn Sie die Aufbewahrungsdauer der 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 Optionen finden Sie unter gcloud logging buckets update.

Logsenke auf Projektebene erstellen

Um Logeinträge zu einem Log-Bucket weiterzuleiten, können Sie eine Senke erstellen. Eine Senke enthält einen Einschlussfilter, Ausschlussfilter und ein Ziel. In diesem Tutorial 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.

Bevor Sie den folgenden Befehl ausführen, ersetzen Sie die folgenden Werte:

  • PROJECT_LEVEL_SINK_NAME: Der Name der Protokollsenke auf Projektebene.
  • SINK_DESTINATION: Der Log-Bucket, in den Ihre Logeinträge weitergeleitet werden. Das Format des Zielpfads für einen Log-Bucket sieht so aus:

    logging.googleapis.com/projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME
    
  • PROJECT_ID: Die Kennung des Projekts, in dem der Log-Sink 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 : Verwenden Sie diese Option, um einen Filter festzulegen, der den Logeinträgen entspricht, die Sie in die Senke aufnehmen möchten. In dieser Anleitung ist der Filter so eingestellt, dass alle Audit-Logeinträge ausgewählt werden. Wenn Sie keinen Filter festlegen, werden alle Protokolleinträge aus Ihrem Google Cloud-Projekt an das Ziel weitergeleitet.
    • --description: Verwenden Sie diese Option, um den Zweck oder den Anwendungsfall für die Senke zu beschreiben.

Führen Sie den Befehl gcloud logging sinks create 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 einer Organisation oder eines Ordners an ein Ziel weiter.

In dieser Anleitung erstellen Sie einen aggregierten Datenablauf, der keine Daten abfängt. Das bedeutet, dass jeder Logeintrag, der über die aggregierte Senke weitergeleitet wird, auch über die Senken in der Ressource weitergeleitet wird, aus der der Logeintrag stammt. Ein Prüfprotokoll, das in einem Projekt generiert wird, wird beispielsweise über die zusammengefasste Senke und die Senken in diesem Projekt weitergeleitet. Daher ist es möglich, mehrere Kopien eines Logeintrags zu speichern.

Sie können Abfangen-Auffangbecken erstellen. Weitere Informationen finden Sie unter Logs auf Organisations- und Ordnerebene sortieren und an unterstützte Ziele weiterleiten.

Senke auf Organisationsebene einrichten

So erstellen Sie eine aggregierte Senke, die keine Daten abfängt und Logeinträge an ein Projekt weiterleitet:

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

    Bevor Sie den folgenden Befehl ausführen, ersetzen Sie die folgenden Werte:

    • SINK_NAME: Der Name der Log-Senke. Sie können den Namen eines Sinks nach dem Erstellen nicht mehr ändern.
    • PROJECT_ID: Die Kennung des Projekts, in dem der Protokoll-Bucket gespeichert ist.
    • ORGANIZATION_ID: Die Kennung 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 werden Logeinträge aus allen Google Cloud-Projekten und -Ordnern in Ihrer Organisation weitergeleitet. 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 ihr die Berechtigung erteilen, Protokolleinträge in das Projekt zu schreiben, das Sie als Ziel festgelegt haben. Sie können die Berechtigung über die Google Cloud Console oder durch Bearbeiten der IAM-Richtlinie (Identity and Access Management) gewähren, wie unter Zielanberechtigungen festlegen beschrieben.

So gewähren Sie der Senke die Berechtigung zum Schreiben von Logeinträgen:

  1. Öffnen Sie in der Google Cloud Console die Seite IAM:

    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 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. Geben Sie nicht das Präfix serviceAccount: an.

  4. Wählen Sie im Menü Rolle auswählen die Option Logautor aus.

  5. Klicken Sie auf Speichern.

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

So prüfen Sie, ob Ihre aggregierte Senke richtig konfiguriert ist:

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

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

    • Andernfalls rufen Sie ein anderes Projekt auf, erstellen Sie eine Compute Engine-VM-Instanz und löschen Sie die erstellte Instanz. Audit-Logs werden geschrieben, wenn eine VM erstellt, gestartet und gelöscht wird.

  2. Folgen Sie der Anleitung im Abschnitt Protokolle auf der Seite „Log-Explorer“ ansehen, um die Prüfprotokolle aufzurufen. Wählen Sie die Ansicht _AllLogs aus.

Lesezugriff auf eine Logansicht in einem Log-Bucket konfigurieren

Wenn Sie einen Log-Bucket erstellen, wird in Cloud Logging automatisch eine Logansicht mit dem Namen _AllLogs erstellt. Diese Ansicht enthält jeden im Log-Bucket gespeicherten Logeintrag.

Wenn Sie einem Nutzer nur Zugriff auf bestimmte Logeinträge gewähren möchten, erstellen Sie eine Logansicht und führen Sie dann einen der folgenden Schritte aus:

  • Weisen Sie ihm die Rolle roles/logging.viewAccessor zusammen mit einer IAM-Bedingung zu, die die Berechtigung auf die Protokollansicht beschränkt.

  • Gewähren Sie in der mit der Log-Ansicht verknüpften IAM-Richtlinie dem Hauptkonto Zugriff. Wir empfehlen diesen Ansatz, wenn Sie eine große Anzahl von Protokollansichten erstellen.

Weitere Informationen zu diesen beiden Ansätzen finden Sie unter Zugriff auf eine Logansicht steuern.

In den folgenden Schritten gewähren Sie einem Hauptkonto die Rolle roles/logging.viewAccessor und eine IAM-Bedingung, die die Berechtigung auf die Ansicht _AllLogs beschränkt:

  1. Öffnen Sie in der Google Cloud Console die Seite IAM:

    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 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 Protokollansichten in allen benutzerdefinierten Protokoll-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“ ansehen

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

  1. Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf.

    Zum Log-Explorer

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

  2. Wählen Sie Bereich eingrenzen aus.

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

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

  5. Klicken Sie auf Anwenden.

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