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 oder über die Senken in diesen Ressourcen weitergeleitet werden können, können Sie einen aggregierten Empfänger so konfigurieren, dass er keine oder nur bestimmte Protokolle abfängt:
Eine nicht abfangende aggregierte Senke leitet Logeinträge über Senken in untergeordneten Ressourcen weiter. Mit diesem Auffangsystem bleiben die Logeinträge in den Ressourcen sichtbar, in denen sie generiert wurden. Senken ohne Abfangfunktion sind für untergeordnete Ressourcen nicht sichtbar.
Sie können beispielsweise eine nicht abfangende aggregierte Senke erstellen, die alle Logeinträge, die in den Ordnern einer Organisation generiert werden, an einen zentralen Log-Bucket weiterleitet. Die Logeinträge werden im zentralen Log-Bucket und in den Ressourcen gespeichert, in denen sie 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 nützlich sein, um zu verhindern, dass doppelte Kopien von Logeinträgen an mehreren Stellen gespeichert werden.Denken Sie beispielsweise an Audit-Logs für den Datenzugriff, die sehr groß sein können und deren Speicherung in mehreren Kopien teuer ist. 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 Protokolle abgefangen werden, werden sie nicht für logbasierte Messwerte oder logbasierte Benachrichtigungsrichtlinien in den untergeordneten Ressourcen gezählt. 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: Bietet Speicherplatz in Cloud Logging. In einem Log-Bucket können Logeinträge gespeichert werden, die von mehreren Google Cloud-Projekten empfangen werden. Der Log-Bucket kann sich im selben Projekt befinden, in dem die Logeinträge stammen, oder in einem anderen Projekt. 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 zu BigQuery weitergeleiteten Logeinträgen finden Sie unter Zu BigQuery weitergeleitete Logs ansehen.
- Cloud Storage-Bucket: Ermöglicht das Speichern von Logeinträgen in Cloud Storage. Der Cloud Storage-Bucket kann sich im selben Projekt wie die Protokolleinträge oder in einem anderen Projekt befinden. 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 in JSON formatiert und dann an ein Pub/Sub-Thema weitergeleitet. Das Thema kann sich im selben Projekt wie die Protokolleinträge oder in einem anderen Projekt befinden. Informationen zum Ansehen von Logeinträgen, die an Pub/Sub weitergeleitet werden, finden Sie unter An Pub/Sub weitergeleitete Logs ansehen.
Google Cloud-Projekt: Sie können Protokolleinträge an ein anderes Google Cloud-Projekt weiterleiten. Bei dieser Konfiguration werden die Logeinträge von den Senken im Zielprojekt verarbeitet.
Best Practices für Abfangen von Sinks
Beim Erstellen eines Abfang-Sinks empfehlen wir Folgendes:
Überlegen Sie, ob untergeordnete Ressourcen eine unabhängige Steuerung für das Routing ihrer Protokolleinträge benötigen. Wenn eine untergeordnete Ressource eine unabhängige Steuerung bestimmter Protokolleinträge benötigt, achten Sie darauf, dass diese Protokolleinträge nicht von Ihrem abfangenden Sink weitergeleitet werden.
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 Senke erstellen, um sicherzustellen, dass die richtigen Logeinträge weitergeleitet werden.
Aggregierte Abläufe 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. Wenn Sie verhindern möchten, dass aggregierte Senken auf Daten innerhalb eines Perimeters zugreifen, verwenden Sie IAM, um Logging-Berechtigungen zu verwalten.
VPC Service Controls unterstützt das Hinzufügen von Ordner- oder Organisationsressourcen zu Dienstperimetern nicht. Daher können Sie VPC Service Controls nicht zum Schutz von Logs auf Ordner- und Organisationsebene verwenden, einschließlich aggregierter Logs. Zum Verwalten von Logging-Berechtigungen auf Ordner- oder Organisationsebene empfehlen wir 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 den Zugriff auf die Ressource über das Dienstkonto zulassen, das von der aggregierten Senke verwendet wird. Weitere Informationen finden Sie auf den folgenden Seiten:
Wenn Sie eine Richtlinie für eingehenden oder ausgehenden Traffic für einen Dienstperimeter angeben, können Sie
ANY_SERVICE_ACCOUNT
undANY_USER_ACCOUNT
nicht als Identitätstyp verwenden, wenn Sie Logs mithilfe eines Log-Sinks an Cloud Storage-Ressourcen weiterleiten. Sie können jedochANY_IDENTITY
als Identitätstyp verwenden.
Hinweise
Prüfen Sie vor dem Erstellen einer Senke Folgendes:
Sie haben einen Google Cloud-Ordner oder eine Organisation mit Logeinträgen, die Sie im Log-Explorer sehen können.
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 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.
- Inhaber (
Sie haben eine Ressource in einem unterstützten Ziel oder die Erlaubnis, eine Ressource zu erstellen.
Das Ziel muss vor der Senke erstellt werden. Dies erfolgt über die Google Cloud CLI, die Google Cloud Console oder die Google Cloud 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.
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:
-
Rufen Sie in der Google Cloud Console die Seite Log Router auf.
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Logging ist.
Wählen Sie einen vorhandenen Ordner oder eine vorhandene Organisation aus.
Wählen Sie Senke erstellen aus.
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.
Führen Sie einen der folgenden Schritte aus:
Wenn Sie eine abfangende Senke erstellen möchten, wählen Sie im Menü Sink-Dienst auswählen die Option Google Cloud-Projekt aus und geben Sie dann den vollqualifizierten Namen für das Ziel ein. Informationen zur Syntax finden Sie unter Zielordstrichpfadformate.
Wenn Sie eine nicht abfangende Senke erstellen möchten, gehen Sie zum Menü Senkendienst auswählen und führen Sie einen der folgenden Schritte aus:
Wenn Sie Protokolleinträge an ein anderes Google Cloud-Projekt weiterleiten möchten, wählen Sie Google Cloud-Projekt aus und geben Sie dann den vollqualifizierten Namen für das Ziel ein. Informationen zur Syntax finden Sie unter Zielordstrichpfade.
Wenn Sie Protokolleinträge an einen Dienst im selben Google Cloud-Projekt weiterleiten möchten, wählen Sie 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 können auch partitionierte Tabellen verwenden.
- 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:
- Wählen Sie Sonstige Ressource aus.
Geben Sie den voll qualifizierten Namen für das Ziel ein. Informationen zur Syntax finden Sie unter Zielordstrichpfade.
Wenn Ihr Senkenziel beispielsweise ein Pub/Sub-Thema ist, sieht die
destination
so aus:pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
Führen Sie im Bereich Logs auswählen, die in der Senke enthalten sind 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.
Schließen Sie das Dialogfeld ab, indem Sie im Feld Einschlussfilter erstellen einen Filterausdruck eingeben, der den Logeinträgen entspricht, die Sie aufnehmen 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 Prüfprotokolle für den Datenzugriff an einen einzelnen Logging-Bucket weiterzuleiten. Dieser Filter sieht in etwa so aus:
LOG_ID("cloudaudit.googleapis.com/data_access") OR LOG_ID("externalaudit.googleapis.com/data_access")
Beispiele für Filter finden Sie unter Filter für aggregierte Senken erstellen.
Beachten Sie, dass ein Filter nicht länger als 20.000 Zeichen sein darf.
Optional: Wählen Sie Vorschau von Logs aus, um zu prüfen, ob Sie den richtigen Filter eingegeben haben. Dadurch wird der Log-Explorer in einem neuen Tab geöffnet, auf dem der Filter bereits ausgefüllt ist.
Optional: Gehen Sie im Bereich Logs auswählen, die aus der Senke ausgeschlossen werden sollen so vor:
Geben Sie in das Feld Name des Ausschlussfilters einen Namen ein.
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 die Weiterleitung der Logeinträge eines bestimmten Projekts an das 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 OR-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.
Wählen Sie Senke erstellen aus.
Gewähren Sie dem Dienstkonto für die Senke die Berechtigung, Protokolleinträge an das Ziel der Senke zu schreiben. Weitere Informationen finden Sie unter Zielberechtigungen festlegen.
gcloud
Verwenden Sie den Befehl
logging sinks create
, um eine aggregierte Senke zu erstellen: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 Log-Senke. 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 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"
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 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"
Gewähren Sie dem Dienstkonto für die Senke Schreibzugriff auf das Senkenziel. Weitere Informationen finden Sie unter Zielberechtigungen festlegen.
REST
Verwenden Sie zum Erstellen einer aggregierten Senke die Logging API-Methode
organizations.sinks.create
oderfolders.sinks.create
. Bereiten Sie die Argumente für die Methode so vor: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
Gehen Sie im
LogSink
-Objekt im Methodenanfragetext so vor:Setzen Sie
includeChildren
aufTrue
.Wenn Sie eine abfangende Senke erstellen möchten, legen Sie auch das Feld
interceptChildren
aufTrue
fest.
Legen Sie das Feld
filter
so fest, dass es den Logeinträgen entspricht, die Sie aufnehmen möchten.Beispiele für Filter finden Sie unter Filter für aggregierte Senken erstellen.
Die Länge eines Filters darf 20.000 Zeichen nicht überschreiten.
Legen Sie die verbleibenden
LogSink
-Felder wie gewohnt für Senken fest. Weitere Informationen finden Sie unter Logs an unterstützte Ziele weiterleiten.Rufen Sie
organizations.sinks.create
oderfolders.sinks.create
auf, um die Senke zu erstellen.Gewähren Sie dem Dienstkonto für die Senke Schreibzugriff auf das Senkenziel. Weitere Informationen finden Sie unter Zielberechtigungen festlegen.
Es kann einige Minuten dauern, bis alle Änderungen an einem Sink angewendet 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 werden die Einschluss- und Ausschlussfilter der Senke auf jeden Logeintrag angewendet, der an die untergeordnete Ressource gesendet wird. Ein Logeintrag, der mit dem Einschlussfilter übereinstimmt und nicht ausgeschlossen ist, 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, vom aggregierten Datensink 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 den Einschlussfilter 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, muss der Filter den Ordner und alle darin enthaltenen Projekte auflisten und die Anweisungen mit einer
OR
-Klausel verknüpfen.Mit den folgenden Filtern werden Logeinträge auf bestimmte Google Cloud-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 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
geschrieben werden, einschließlich Logeinträgen, die in Google Cloud-Projekte geschrieben werden, die untergeordnet sindmy-folder
, 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 die IAM-Berechtigungen (Identity and Access Management) zum Schreiben von Logeinträgen an das Ziel der Senke gewähren. 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:
- Ab dem 22. Mai 2023 wird in Logging ein Dienstkonto erstellt, wenn Sie eine Senke erstellen und kein Dienstkonto für die zugrunde liegende Ressource vorhanden ist. Für die Protokollierung wird dasselbe Dienstkonto für alle Senken in der zugrunde liegenden Ressource verwendet. Ressourcen können ein Google Cloud-Projekt, eine Organisation, ein Ordner oder ein Rechnungskonto sein.
- Vor dem 22. Mai 2023 wurde in Logging für jede Senke ein Dienstkonto erstellt. Seit dem 22. Mai 2023 wird für Logging ein gemeinsames Dienstkonto für alle Senken in der zugrunde liegenden Ressource verwendet.
Die Identität des Autors eines Sinks ist die Kennung des Dienstkontos, das mit diesem Sink 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.
Wenn Sie Logeinträge an eine Ressource weiterleiten möchten, die durch einen Dienstperimeter geschützt ist, müssen Sie das Dienstkonto für diese Senke einer Zugriffsebene hinzufügen und es dann dem Zieldienstperimeter zuweisen. 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
So rufen Sie Informationen zum Dienstkonto für Ihren Datenablauf ab:
-
Rufen Sie in der Google Cloud Console die Seite Log Router auf.
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Logging ist.
Wählen Sie more_vert Menü und dann Senkendetails ansehen aus. Die Identität des Autors wird im Feld Senkendetails angezeigt.
Wenn der Wert des Felds
writerIdentity
eine E-Mail-Adresse enthält, fahren Sie mit dem nächsten Schritt fort. Wenn der WertNone
ist, müssen Sie keine Zielberechtigungen konfigurieren.Kopieren Sie die Identität des Autors der Senke in die Zwischenablage. Der String
serviceAccount:
ist Teil der Dienstkontoidentität. Beispiel:serviceAccount:service-123456789012@gcp-sa-logging.iam.gserviceaccount.com
Fügen Sie das Dienstkonto als IAM-Hauptkonto im Zielprojekt hinzu:
-
Ö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.
Wählen Sie das Zielprojekt aus.
Klicken Sie auf
Zugriff erlauben.Weisen Sie dem Dienstkonto die erforderliche IAM-Rolle zu:
- Wenn Sie Cloud Storage-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 Storage-Objekt-Ersteller (
roles/storage.objectCreator
) zu. - 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. - 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 Berechtigunglogging.logEntries.route
.
- Wenn Sie Cloud Storage-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 Storage-Objekt-Ersteller (
-
-
gcloud
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.
Rufen Sie die Methode
gcloud logging sinks describe
auf, um Informationen zum Dienstkonto für Ihren Datenablauf zu erhalten.Bevor Sie den folgenden Befehl verwenden, nehmen Sie die folgenden Ersetzungen vor:
- SINK_NAME: Der Name der Log-Senke. 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
Wenn die Details zum Datensink ein Feld mit der Bezeichnung
writerIdentity
enthalten, fahren Sie mit dem nächsten Schritt fort. Wenn die Details keinwriterIdentity
-Feld enthalten, müssen Sie keine Zielberechtigungen für die Senke konfigurieren.Kopieren Sie die Identität des Autors der Senke in die Zwischenablage. Der String
serviceAccount:
ist Teil der Dienstkontoidentität.Die Identität des Autors für das Dienstkonto sieht in etwa so aus:
serviceAccount:service-123456789012@gcp-sa-logging.iam.gserviceaccount.com
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, nehmen Sie die folgenden Ersetzungen vor:
- PROJECT_ID: Die Kennung des Projekts.
- PRINCIPAL: Eine Kennung für das Hauptkonto, dem Sie die Rolle zuweisen möchten. Hauptkonto-Kennzeichnungen haben normalerweise das folgende Format:
PRINCIPAL-TYPE:ID
. Beispiel:user:my-user@example.com
Eine vollständige Liste der Formate fürPRINCIPAL
finden Sie unter Hauptkonto-IDs. ROLE: Eine IAM-Rolle.
- Wenn Sie Cloud Storage-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 Storage-Objekt-Ersteller (
roles/storage.objectCreator
) zu. - 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. - 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 Berechtigunglogging.logEntries.route
.
- Wenn Sie Cloud Storage-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 Storage-Objekt-Ersteller (
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 Google Cloud Console oder die Google Cloud CLI zu verwenden, um dem Dienstkonto eine Rolle zuzuweisen.
Nächste Schritte
Weitere Informationen zum Erstellen von Protokollansichten in einem Protokoll-Bucket Mit Logansichten können Sie Berechtigten Lesezugriff auf eine Teilmenge der in einem Log-Bucket gespeicherten Logeinträge gewähren.
Informationen zum Verwalten vorhandener Senken finden Sie unter Logs an unterstützte Ziele weiterleiten: Senken verwalten.
Wenn bei der Weiterleitung von Logs über Senken Probleme auftreten, lesen Sie Fehlerbehebung bei Routing und Senken.
Informationen zum Aufrufen von Logs in ihren Zielen sowie zum Formatieren und Organisieren der Logs finden Sie unter Logs in Senkenzielen ansehen.
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2024-12-22 (UTC).
-