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 kombinieren und an einen zentralen Speicherort weiterleiten, die von den Google Cloud-Ressourcen in Ihrer Organisation oder Ihrem Ordner generiert werden.

Übersicht

Aggregierte Senken kombinieren und leiten Logeinträge aus den Ressourcen einer Organisation oder eines Ordners an ein Ziel weiter.

Wenn Sie steuern möchten, welche Logeinträge in diesen Ressourcen abgefragt werden können, oder weitergeleitet über die Senken in diesen Ressourcen, dann können Sie eine aggregierte Senke nicht abfangen oder abfangen:

  • Eine nicht abfangende aggregierte Senke leitet Logeinträge über Senken in einer untergeordneten Senke weiter. Ressourcen. Mit dieser Senke behalten Sie die Sichtbarkeit der Logeinträge in der Ressourcen, in denen sie generiert wurden. Nicht abfangende Senken sind nicht sichtbar an untergeordnete Ressourcen an.

    Sie könnten z. B. eine nicht abfangende aggregierte Senke erstellen, die Alle Logeinträge, die aus den Ordnern einer Organisation generiert wurden in einem zentralen Log-Bucket gespeichert. Die Logeinträge werden in der zentralen Log-Bucket und auch in den Ressourcen, in denen die Logeinträge generiert wurden.

  • Eine abfangende aggregierte Senke verhindert, dass Logeinträge über Senken in untergeordneten Ressourcen weitergeleitet werden, mit Ausnahme von _Required-Senken. Diese Senke kann um zu verhindern, dass Kopien von Log-Einträgen in an unterschiedlichen Orten.

    Sehen Sie sich beispielsweise Audit-Logs zum Datenzugriff an, die sehr groß sein und das Speichern mehrerer Kopien kostspielig sein. Wenn Sie Audit-Logs zum Datenzugriff aktiviert haben, können Sie eine abfangende Senke auf Ordnerebene erstellen, die alle Audit-Logs zum Datenzugriff zur Analyse an ein zentrales Projekt weiterleitet. Diese abfangende Senke verhindert auch, dass Senken in untergeordneten Ressourcen Kopien der Protokolle an andere Stellen weiterleiten.

    Abfangende Senken verhindern, dass Logs über den Log Router von untergeordneten Ressourcen übergeben werden, es sei denn, die Logs stimmen auch mit der _Required-Senke überein. Da die abgefangen werden, zählen sie nicht zu logbasierten Messwerten oder logbasierte Benachrichtigungsrichtlinien in den untergeordneten Ressourcen. Sie können abfangende Senken auf der Seite Log-Router der untergeordneten Ressourcen aufrufen.

Informationen zum Verwalten von Senken finden Sie unter Logs an unterstützte Ziele weiterleiten: Senken verwalten.

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

Unterstützte Ziele

Sie können nicht abfangende aggregierte Senken verwenden, um Logeinträge innerhalb oder zwischen denselben Organisationen und Ordnern an die folgenden Ziele weiterzuleiten:

  • Cloud Logging-Bucket: Stellt Speicher in Cloud Logging bereit. In einem Log-Bucket können Logeinträge gespeichert werden, die von mehreren Google Cloud-Projekten empfangen werden. Der Log-Bucket kann sich in dem Projekt befinden, aus dem die Logeinträge stammen, oder die sich in einem anderen Projekt befinden. Informationen zum Ansehen von Logeinträgen, die in Log-Buckets gespeichert sind, finden Sie unter Logs abfragen und ansehen und An Cloud Logging-Buckets weitergeleitete Logs ansehen.

    Sie können Ihre Cloud Logging-Daten mit anderen Daten kombinieren, indem Sie einen Log-Bucket auf Log Analytics umstellen und dann einen verknüpften Datenpool erstellen. Das ist ein schreibgeschützter Datenpool, der auf den Seiten BigQuery Studio und Looker Studio abgefragt werden kann.

  • BigQuery-Dataset: Ermöglicht das Speichern von Logeinträgen in einem beschreibbaren BigQuery-Dataset. Das BigQuery-Dataset kann sich im selben Projekt wie die Logeinträge oder in einem anderen Projekt befinden. Sie können Big-Data-Analysefunktionen auf die gespeicherten Logeinträge anwenden. Informationen zum Aufrufen von an BigQuery weitergeleiteten Logeinträgen finden Sie unter An BigQuery weitergeleitete Logs ansehen

  • Cloud Storage-Bucket: Bietet die Speicherung von Logeinträgen in Cloud Storage. Der Cloud Storage-Bucket kann sich in demselben Projekt befinden, in dem Logeinträge enthalten sind aus einem anderen Projekt stammen. Logeinträge werden als JSON-Dateien gespeichert. Informationen zum Ansehen von Logeinträgen, die an Cloud Storage weitergeleitet wurden, finden Sie unter An Cloud Storage weitergeleitete Logs ansehen.
  • Pub/Sub-Thema: Bietet Unterstützung für Integrationen von Drittanbietern. Logeinträge werden als JSON formatiert und dann an ein Pub/Sub weitergeleitet . Das Thema kann sich im selben Projekt befinden, in dem Logeinträge enthalten sind aus einem anderen Projekt stammen. Informationen zum Ansehen von Logeinträgen, die an Pub/Sub weitergeleitet werden, finden Sie unter An Pub/Sub weitergeleitete Logs ansehen.

  • Google Cloud-Projekt: Leiten Sie Logeinträge an ein anderes Google Cloud-Projekt weiter. In verarbeiten die Senken im Zielprojekt Logeinträge.

Best Practices für Abfangen von Sinks

Beim Erstellen eines Abfang-Sinks empfehlen wir Folgendes:

  • Überlegen Sie, ob untergeordnete Ressourcen eine unabhängige Kontrolle über das Routing ihrer Ressourcen benötigen. Logeinträge. Benötigt eine untergeordnete Ressource unabhängige Kontrolle über bestimmte Log-Einträgen ein, stellen Sie sicher, dass die abfangende Senke diese Logeinträge.

  • Fügen Sie der Beschreibung eines Abfang-Sinks Kontaktdaten hinzu. Das kann hilfreich sein, wenn die Personen, die den Abfang-Sink verwalten, nicht dieselben sind wie die, die die Projekte verwalten, deren Logeinträge abgefangen werden.

  • Testen Sie die Senkenkonfiguration, indem Sie zuerst eine nicht abfangende aggregierte um sicherzustellen, dass die richtigen Logeinträge weitergeleitet werden.

Aggregierte Senken und VPC Service Controls

Bei der Verwendung von aggregierten Senken und VPC Service Controls gelten die folgenden Einschränkungen:

  • Aggregierte Senken können auf Daten von Projekten innerhalb eines Dienstperimeters zugreifen. Um zu verhindern, dass aggregierte Senken auf Daten in einem Perimeter definieren, empfehlen wir die Verwendung von IAM zur Verwaltung Logging-Berechtigungen.

  • VPC Service Controls unterstützt das Hinzufügen von Ordner- oder Organisationsressourcen zu Dienstperimetern nicht. Daher können Sie nicht VPC Service Controls zum Schutz von Logs auf Ordner- und Organisationsebene, einschließlich aggregierter Logs. Logging verwalten Berechtigungen auf Ordner- oder Organisationsebene haben, IAM

  • Wenn Sie Logs mithilfe einer Logsenke auf Ordner- oder Organisationsebene an eine Ressource weiterleiten, die durch einen Dienstperimeter geschützt wird, müssen Sie dem Dienstperimeter eine Regel für eingehenden Traffic hinzufügen. Die Regel für eingehenden Traffic muss Zugriff zulassen vom Dienstkonto, das die aggregierte Senke verwendet, zur Ressource. Weitere Informationen finden Sie auf den folgenden Seiten:

  • Wenn Sie eine Richtlinie für eingehenden oder ausgehenden Traffic für einen Dienstperimeter festlegen, Sie können ANY_SERVICE_ACCOUNT und ANY_USER_ACCOUNT als Identitätstyp, wenn Sie eine Logsenke verwenden um Logs an Cloud Storage-Ressourcen weiterzuleiten. Sie können jedoch ANY_IDENTITY als Identitätstyp verwenden.

Hinweis

Prüfen Sie vor dem Erstellen einer Senke Folgendes:

  • Sie haben einen Google Cloud-Ordner oder eine Google Cloud-Organisation mit Logeinträgen zum Beispiel finden Sie im Log-Explorer.

  • Sie haben eine der folgenden IAM-Rollen für die Google Cloud-Organisation oder den Google Cloud-Ordner, von dem Sie Protokolleinträge weiterleiten.

    • Inhaber (roles/owner)
    • Logging-Administrator (roles/logging.admin)
    • Autor von Log-Konfigurationen (roles/logging.configWriter)

    Mit den Berechtigungen, die in diesen Rollen enthalten sind, können Sie Senken ändern. Informationen zum Festlegen von IAM-Rollen finden Sie in der Anleitung zur Zugriffssteuerung für Logging.

  • Sie haben eine Ressource in einem unterstützten Ziel oder die Erlaubnis, eine Ressource zu erstellen.

    Das Ziel muss vor der Senke erstellt werden: entweder über die Google Cloud CLI, die Google Cloud Console oder APIs Sie können das Ziel in jedem Google Cloud-Projekt jeder Organisation erstellen. Das Dienstkonto aus der Senke muss jedoch Berechtigungen zum Schreiben in das Ziel haben.

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

      Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init

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

Aggregierte Senke 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 Monitoring 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. Führen Sie einen der folgenden Schritte aus:

    • Um eine abfangende Senke zu erstellen, führen Sie im Menü Senkendienst auswählen die folgenden Schritte aus: Wählen Sie Google Cloud-Projekt aus und geben Sie den voll qualifizierten Namen ein für das Ziel. Informationen zur Syntax finden Sie unter Zielordstrichpfadformate.

    • Rufen Sie Senkendienst auswählen auf, um eine nicht abfangende Senke zu erstellen. und führen Sie einen der folgenden Schritte aus:

      • So leiten Sie Logeinträge an ein anderes Google Cloud-Projekt weiter: wählen Sie Google Cloud-Projekt aus und geben Sie Name für das Ziel. Informationen zur Syntax finden Sie unter Zielordstrichpfade.

      • So leiten Sie Logeinträge an einen Dienst weiter, der sich im selben Google Cloud-Projekt eine der folgenden Optionen aus:

        • Cloud Logging-Bucket: Wählen Sie einen Logging-Bucket aus oder erstellen Sie einen.
        • BigQuery-Dataset: Wählen Sie das spezifische Dataset aus, das die weitergeleiteten Logeinträge erhalten soll, oder erstellen Sie es. Sie haben auch die Möglichkeit, zu verwenden Partitionierte Tabellen.
        • Cloud Storage-Bucket: Wählen Sie den spezifischen Cloud Storage-Bucket aus, der die weitergeleiteten Logeinträge erhalten soll, oder erstellen Sie ihn.
        • Pub/Sub-Thema: Wählen Sie das spezifische Thema aus, das die weitergeleiteten Logeinträge erhalten soll, oder erstellen Sie es.
        • Splunk: Wählen Sie das Pub/Sub-Thema für den Splunk-Dienst aus.
      • So leiten Sie Logeinträge an einen Dienst in einem anderen Google Cloud-Projekt weiter:

        1. Wählen Sie Andere Ressource aus.
        2. Geben Sie den voll qualifizierten Namen für das Ziel ein. Informationen zur Syntax finden Sie in der Zielpfadformate:

          Wenn Ihr Senkenziel beispielsweise ein Pub/Sub-Thema ist, sieht die destination so aus:

          pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
          
  6. Führen Sie im Bereich Logs zum Einbeziehen in Senke auswählen einen der folgenden Schritte aus:

    • Wenn Sie eine Abfangsenke erstellen möchten, wählen Sie Logs abfangen, die von dieser Organisation und allen untergeordneten Ressourcen aufgenommen wurden aus.

    • Wenn Sie eine nicht abfangende aggregierte Senke erstellen möchten, wählen Sie Von dieser Ressource aufgenommene Logs und alle untergeordneten Ressourcen einschließen aus.

  7. Schließen Sie das Dialogfeld ab, indem Sie einen Filterausdruck im Feld Feld Einschlussfilter erstellen, der den gewünschten Logeinträgen entspricht aufgenommen werden. 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 Prüfprotokolle für den Datenzugriff an einen einzelnen Logging-Bucket weiterzuleiten. Dieser Filter sieht wie zum Beispiel so:

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

    Filterbeispiele finden Sie unter Filter für aggregierte Senken erstellen

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

  8. Optional: Um zu überprüfen, ob Sie den richtigen Filter eingegeben haben, wählen Sie Logs als Vorschau ansehen Dadurch wird der Log-Explorer in einem neuen Tab mit den automatisch ausgefüllt.

  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 Logeinträge aus einem bestimmten Projekt Wesen 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 erstellen. pro Senke. Beachten Sie, dass ein Filter nicht länger als 20.000 Zeichen sein darf.

  10. Wählen Sie Senke erstellen aus.

  11. Gewähren Sie dem Dienstkonto für die Senke die Berechtigung zum Schreiben Logeinträge an das Senkenziel. Weitere Informationen finden Sie unter Zielberechtigungen festlegen.

gcloud

Verwenden Sie zum Erstellen einer aggregierten Senke die Methode logging sinks create Befehl:

  1. Rufen Sie zum Erstellen einer Senke den Befehl gcloud logging sinks create auf und geben Sie die Option --include-children an.

    Bevor Sie den folgenden Befehl verwenden, nehmen Sie die folgenden Ersetzungen vor:

    • SINK_NAME: Der Name der Logsenke. Sie können den Namen eines Sinks nach dem Erstellen nicht mehr ändern.
    • SINK_DESTINATION: Der Dienst oder das Projekt, an das Ihre Logeinträge weitergeleitet werden sollen.
    • 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 erstellen möchten, auf Organisationsebene erstellen und dann --folder=FOLDER_ID mit -- 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 Folgendes angeben:

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

    Wenn Sie beispielsweise eine aggregierte Senke auf Ordnerebene erstellen, und deren Ziel ein Pub/Sub-Thema ist, könnte 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 Schreibzugriff auf das Senkenziel. Weitere Informationen finden Sie unter Legen Sie Zielberechtigungen fest.

REST

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

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

    • Setzen Sie includeChildren auf True.

    • Um eine abfangende Senke zu erstellen, legen Sie auch den Parameter interceptChildren auf True.

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

    Filterbeispiele finden Sie unter Filter für aggregierte Senken erstellen

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

  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 organizations.sinks.create oder folders.sinks.create auf, um die Senke zu erstellen.

  6. Dem Dienstkonto der Senke die Berechtigung zum Schreiben in die Senke gewähren Ziel. Weitere Informationen finden Sie unter Legen Sie Zielberechtigungen fest.

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

Filter für aggregierte Senken erstellen

Wie alle anderen Senken enthält auch die zusammengefasste Senke einen Filter für die Auswahl einzelner Logeinträge. Beispiele für Filter, die Sie zum Erstellen der aggregierten Senke verwenden können, finden Sie unter Beispielabfragen mit dem Log-Explorer.

Im Folgenden finden Sie einige Beispiele für Filtervergleiche, 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 Filtervergleiche.
  • Variablen sind durch farbigen Text gekennzeichnet. Ersetzen Sie sie durch gültige Werte.

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

Weitere Informationen zur Filtersyntax finden Sie unter Logging-Abfragesprache.

Protokollquelle auswählen

Bei einer aggregierten Senke gilt für jede untergeordnete Ressource der Organisation oder des Ordners werden die Einschluss- und Ausschlussfilter der Senke auf jeden Logeintrag angewendet, an die untergeordnete Ressource gesendet. Ein Logeintrag, der mit einer Einschlussfilter und nicht ausgeschlossen werden, wird weitergeleitet.

Wenn die Senke Logeinträge aus allen untergeordneten Ressourcen weiterleiten soll, geben Sie in den Einschluss- 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 untergeordnetes Element dieser Organisation geschrieben werden werden von der aggregierten Senke an das Ziel weitergeleitet.

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 können Sie beispielsweise Audit-Logs aus bestimmten Ordnern oder Projekten in einem eigenen Cloud Storage-Bucket speichern. Konfigurieren Sie in diesen Fällen die Einschlussfilter, um alle untergeordneten Ressourcen anzugeben, deren Logeinträge Sie abrufen möchten weitergeleitet. Wenn Sie Logeinträge aus einem Ordner und allen Projekten in diesem Ordner weiterleiten möchten, muss der Filter den Ordner und alle darin enthaltenen Projekte auflisten und die Anweisungen mit einer OR-Klausel verknüpfen.

Die folgenden Filter beschränken Logeinträge auf Bestimmte Google Cloud-Projekte, -Ordner oder -Organisationen:

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 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, einschließlich Logeinträgen, die in Google Cloud-Projekte geschrieben wurden, die Untergeordnete von my-folder werden nicht an das Ziel weitergeleitet.

Überwachte Ressource auswählen

Verwenden Sie mehrere Vergleiche, um die Ressource genau anzugeben, um nur Logeinträge von bestimmten überwachten Ressourcen in einem Google 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 Berechtigungen zu Identity and Access Management, um Logeinträge in das Senkenziel zu schreiben. Eine vollständige Liste der Logging-Rollen und -Berechtigungen finden Sie unter Zugriffssteuerung.

Wenn Sie eine Senke erstellen oder aktualisieren, die Logeinträge an ein anderes Ziel als einen Log-Bucket im aktuellen Projekt weiterleitet, ist ein Dienstkonto für diese Senke erforderlich. Das Dienstkonto wird automatisch erstellt und verwaltet:

  • Seit dem 22. Mai 2023 gilt, wenn Sie eine Senke und keinen Dienst erstellen. Konto für die zugrunde liegende Ressource vorhanden ist, erstellt Logging Dienstkonto. Für die Protokollierung wird dasselbe Dienstkonto für alle Senken in der zugrunde liegenden Ressource verwendet. Ressourcen können Google Cloud-Projekte, eine Organisation, ein Ordner oder eine Rechnungskonto.
  • Vor dem 22. Mai 2023 wurde in Logging ein Dienst erstellt für jede Senke. Seit dem 22. Mai 2023 Logging verwendet ein freigegebenes Dienstkonto für alle Senken im zugrunde liegende Ressource.

Die Identität des Autors einer Senke ist die Kennung des Dienstes Konto verknüpft ist, das mit dieser Senke verknüpft ist. Alle Senken haben eine Identität des Autors, es sei denn, sie schreiben in einen Log-Bucket im aktuellen Google Cloud-Projekt.

So leiten Sie Logeinträge an eine Ressource weiter, die durch ein Dienstperimeter müssen Sie das Dienstkonto für diese Senke einer Zugriffsebene hinzufügen. Weisen Sie ihn dem Zieldienstperimeter zu. 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 Ihren Datenablauf 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 Monitoring ist.

    2. Wählen Sie  Menü und dann Senkendetails ansehen aus. Die Identität des Autors erscheint in der Bereich Senkendetails:

    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, Zielberechtigungen konfigurieren müssen.

    4. Kopieren Sie die Autorenidentität der Senke in die Zwischenablage. Der String serviceAccount: ist Teil der Dienstkontoidentität sein. Beispiel:

      serviceAccount:service-123456789012@gcp-sa-logging.iam.gserviceaccount.com
      
    5. Fügen Sie das Dienstkonto als IAM-Hauptkonto im Zielprojekt hinzu:

      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 und Verwaltung ist.

      2. Wählen Sie das Zielprojekt aus.

      3. Klicken Sie auf Zugriff erlauben.

      4. Gewähren Sie dem Dienstkonto die erforderliche IAM-Rolle:

        • Fügen Sie für Cloud Storage-Ziele die Identität des Autors der Senke hinzu. mithilfe von IAM als Hauptkonto festlegen und ihm dann die Rolle „Storage Object Creator“ (roles/storage.objectCreator).
        • Wenn Sie BigQuery-Ziele verwenden, fügen Sie die Identität des Autors der Senke mithilfe von IAM als Principal hinzu und weisen Sie ihr dann die Rolle BigQuery-Datenbearbeiter (roles/bigquery.dataEditor) zu.
        • Fügen Sie für Pub/Sub-Ziele, einschließlich Splunk, die Identität des Autors der Senke hinzu. mithilfe von IAM als Hauptkonto festlegen und ihm dann die Rolle „Pub/Sub-Publisher“ (roles/pubsub.publisher).
        • Wenn Sie Logging-Bucket-Ziele in verschiedenen Google Cloud-Projekten verwenden möchten, fügen Sie die Autorenidentität der Senke mithilfe von IAM als Principal hinzu und weisen Sie ihr dann die Rolle Logs Bucket Writer (roles/logging.bucketWriter) zu.
        • Fügen Sie für Ziele in Google Cloud-Projekten die Identität des Autors der Senke mithilfe von IAM als Hauptkonto hinzu und gewähren Sie ihm dann die Rolle Logautor (roles/logging.logWriter). Insbesondere benötigt ein Hauptkonto die Berechtigung logging.logEntries.route.

gcloud

  1. Sie benötigen Inhaberzugriff auf das Google Cloud-Projekt, das das Ziel enthält. Wenn Sie nicht die Rolle Inhaber für das Ziel der Senke haben, bitten Sie einen Projektinhaber, die Identität des Autors als Hauptbenutzer hinzuzufügen.

  2. Um Informationen zum Dienstkonto für Ihre Senke zu erhalten, rufen Sie die Methode gcloud logging sinks describe-Methode.

    Bevor Sie den folgenden Befehl verwenden, nehmen Sie die folgenden Ersetzungen vor:

    • SINK_NAME: Der Name der Logsenke. Sie können den Namen eines Sinks 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 Details zum Datensink ein Feld mit der Bezeichnung writerIdentity enthalten, fahren Sie mit dem nächsten Schritt fort. Wenn die Details kein writerIdentity enthalten müssen Sie keine Zielberechtigungen für die Senke konfigurieren.

  4. Kopieren Sie die Autorenidentität der Senke in die Zwischenablage. Der String serviceAccount: ist Teil der Dienstkontoidentität sein.

    Die Identität des Autors für das Dienstkonto sieht in etwa so aus:

    serviceAccount:service-123456789012@gcp-sa-logging.iam.gserviceaccount.com
    
  5. Wenn Sie das Dienstkonto als IAM-Hauptkonto im Zielprojekt hinzufügen möchten, rufen Sie den Befehl gcloud projects add-iam-policy-binding auf.

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

    • PROJECT_ID: Die Kennung des Projekts.
    • PRINCIPAL: Eine Kennung für das Hauptkonto, dem Sie die Rolle zuweisen möchten. Haupt-IDs haben in der Regel das folgende Format: PRINCIPAL-TYPE:ID Beispiel: user:my-user@example.com Eine vollständige Liste der Formate für PRINCIPAL finden Sie unter Hauptkonto-Kennungen.
    • ROLE: Eine IAM-Rolle.

      • Fügen Sie für Cloud Storage-Ziele die Identität des Autors der Senke hinzu. mithilfe von IAM als Hauptkonto festlegen und ihm dann die Rolle „Storage Object Creator“ (roles/storage.objectCreator).
      • Wenn Sie BigQuery-Ziele verwenden, fügen Sie die Identität des Autors der Senke mithilfe von IAM als Principal hinzu und weisen Sie ihr dann die Rolle BigQuery-Datenbearbeiter (roles/bigquery.dataEditor) zu.
      • Wenn Sie Pub/Sub-Ziele, einschließlich Splunk, verwenden, fügen Sie die Autorenidentität der Senke mithilfe von IAM als Hauptkonto hinzu und weisen Sie ihr dann die Rolle Pub/Sub-Publisher (roles/pubsub.publisher) zu.
      • Für Logging-Bucket-Ziele in verschiedenen Google Cloud-Projekte hinzufügen, fügen Sie die Identität des Autors der Senke als Hauptkonto hinzu. und gewähren Sie dann die Rolle „Log-Bucket-Autor“ (roles/logging.bucketWriter).
      • Fügen Sie für Google Cloud-Projektziele den Wert der Senke hinzu. Identität des Autors mithilfe von IAM als Hauptkonto festlegen und ihm dann den Rolle „Logautor“ (roles/logging.logWriter). Insbesondere benötigt ein Auftraggeber Berechtigung „logging.logEntries.route“.

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

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

REST

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

Nächste Schritte