In diesem Dokument wird beschrieben, wie Sie Rollen und Berechtigungen der Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM) verwenden, um den Zugriff auf Logdaten in der Logging API, dem Log-Explorer und der Google Cloud CLI zu steuern.
Übersicht
IAM-Berechtigungen und -Rollen bestimmen die Fähigkeit, auf Logdaten in der Logging API, dem Log-Explorer und der Google Cloud CLI zuzugreifen.
Eine Rolle ist eine Sammlung von Berechtigungen. Sie können einem Hauptkonto Berechtigungen nicht direkt erteilen. Stattdessen weisen Sie ihm eine Rolle zu. Wenn Sie einem Hauptkonto eine Rolle zuweisen, erhält er alle mit ihr verknüpften Berechtigungen. Einem Hauptkonto können mehrere Rollen zugewiesen werden.
Wenn Sie Logging in einer Google Cloud-Ressource wie einem Google Cloud-Projekt, -Ordner, -Bucket oder -Organisation verwenden möchten, muss ein Hauptkonto eine IAM-Rolle mit den entsprechenden Berechtigungen haben.
Vordefinierte Rollen
IAM bietet vordefinierte Rollen, um detaillierten Zugriff auf bestimmte Google Cloud-Ressourcen zu gewähren und unerwünschten Zugriff auf andere Ressourcen zu verhindern. Google Cloud erstellt und verwaltet diese Rollen und aktualisiert ihre Berechtigungen nach Bedarf, z. B. wenn in Logging neue Features hinzugefügt werden.
In der folgenden Tabelle sind die vordefinierten Rollen für Logging aufgeführt. Für jede Rolle werden in der Tabelle der Rollentitel, die Beschreibung, die enthaltenen Berechtigungen und der Ressourcentyp der untersten Ebene angezeigt, in dem die Rollen gewährt werden können. Sie können die vordefinierten Rollen auf Cloud-Projektebene oder in den meisten Fällen weiter oben in der Google Cloud-Hierarchie zuweisen. Wenn Sie die Rollen der Rolle „Log-Bucket-Autor“ oder „Log-Anzeige“ stärker auf die Bucket-Ebene anwenden möchten, verwenden Sie Ressourcenattribute für IAM-Bedingungen.
Eine Liste aller einzelnen Berechtigungen, die in einer Rolle enthalten sind, finden Sie unter Rollenmetadaten abrufen.
Rolle | Berechtigungen |
---|---|
Logging-Administrator( Alle Berechtigungen zum Verwenden aller Features von Cloud Logging Ressourcen auf der niedrigsten Ebene, für die Sie diese Rolle zuweisen können:
Enthält 15 Inhaberberechtigungen |
logging.buckets.copyLogEntries logging.buckets.create logging.buckets.delete logging.buckets.get logging.buckets.list logging.buckets.undelete logging.buckets.update logging.exclusions.*
logging.fields.access logging.links.*
logging.locations.*
logging.logEntries.*
logging.logMetrics.*
logging.logServiceIndexes.list logging.logServices.list logging.logs.*
logging.notificationRules.*
logging.operations.*
logging.privateLogEntries.list logging.queries.*
logging.settings.*
logging.sinks.*
logging.usage.get logging.views.*
resourcemanager.projects.get resourcemanager.projects.list |
Log-Bucket-Autor( Kann Logs in einen Log-Bucket schreiben Ressourcen auf der niedrigsten Ebene, für die Sie diese Rolle zuweisen können:
|
logging.buckets.write |
Autor von Log-Konfigurationen( Berechtigungen zum Lesen und Schreiben der Konfigurationen logbasierter Messwerte und Senken zum Exportieren von Logs Ressourcen auf der niedrigsten Ebene, für die Sie diese Rolle zuweisen können:
Enthält 10 Inhaberberechtigungen |
logging.buckets.create logging.buckets.delete logging.buckets.get logging.buckets.list logging.buckets.undelete logging.buckets.update logging.exclusions.*
logging.links.*
logging.locations.*
logging.logMetrics.*
logging.logServiceIndexes.list logging.logServices.list logging.logs.list logging.notificationRules.*
logging.operations.*
logging.settings.*
logging.sinks.*
logging.views.create logging.views.delete logging.views.get logging.views.list logging.views.update resourcemanager.projects.get resourcemanager.projects.list |
Zugriffsberechtigter für Logfelder( Fähigkeit zum Lesen eingeschränkter Felder in einem Log-Bucket. Ressourcen auf der niedrigsten Ebene, für die Sie diese Rolle zuweisen können:
Enthält 1 Inhaberberechtigung |
logging.fields.access |
Zugriffsberechtigter für Loglinks Beta( Kann Links für einen Bucket ansehen. |
logging.links.get logging.links.list |
Log-Autor( Berechtigung zum Schreiben von Log-Einträgen Ressourcen auf der niedrigsten Ebene, für die Sie diese Rolle zuweisen können:
|
logging.logEntries.create |
Betrachter privater Logs( Berechtigungen der Logbetrachter-Rolle und Lesezugriff auf Logeinträge in privaten Logs Ressourcen auf der niedrigsten Ebene, für die Sie diese Rolle zuweisen können:
Enthält 2 Inhaberberechtigungen |
logging.buckets.get logging.buckets.list logging.exclusions.get logging.exclusions.list logging.links.get logging.links.list logging.locations.*
logging.logEntries.list logging.logMetrics.get logging.logMetrics.list logging.logServiceIndexes.list logging.logServices.list logging.logs.list logging.privateLogEntries.list logging.queries.create logging.queries.delete logging.queries.get logging.queries.list logging.queries.listShared logging.queries.update logging.sinks.get logging.sinks.list logging.usage.get logging.views.access logging.views.get logging.views.list resourcemanager.projects.get |
Zugriffsberechtigter für Logbetrachtung( Kann Logs in einer Ansicht lesen Ressourcen auf der niedrigsten Ebene, für die Sie diese Rolle zuweisen können:
Enthält 1 Inhaberberechtigung |
logging.logEntries.download logging.views.access logging.views.listLogs logging.views.listResourceKeys logging. |
Loganzeige( Berechtigung zum Aufrufen von Logs Ressourcen auf der niedrigsten Ebene, für die Sie diese Rolle zuweisen können:
|
logging.buckets.get logging.buckets.list logging.exclusions.get logging.exclusions.list logging.links.get logging.links.list logging.locations.*
logging.logEntries.list logging.logMetrics.get logging.logMetrics.list logging.logServiceIndexes.list logging.logServices.list logging.logs.list logging.operations.get logging.operations.list logging.queries.create logging.queries.delete logging.queries.get logging.queries.list logging.queries.listShared logging.queries.update logging.sinks.get logging.sinks.list logging.usage.get logging.views.get logging.views.list resourcemanager.projects.get |
Die folgenden Abschnitte enthalten zusätzliche Informationen, mit denen Sie entscheiden können, welche Rollen für die Anwendungsfälle Ihrer Hauptkonten gelten.
Loggingrollen
Erteilen Sie die Rolle „Logging-Administrator“ (
roles/logging.admin
), damit ein Nutzer alle Aktionen in Logging ausführen kann.Damit Nutzer Logging-Konfigurationen wie Senken, Buckets, Datenansichten, Links, logbasierte Messwerte oder Ausschlüsse erstellen und ändern können, muss ihnen die Rolle
roles/logging.configWriter
für Logkonfigurationsautoren zugewiesen werden.Damit ein Nutzer Logs in den Buckets
_Required
und_Default
lesen kann, verwenden Sie den Log-Explorer und verwenden Sie die Seite „Loganalyse“. Weisen Sie ihm eine der folgenden Rollen zu:- Gewähren Sie die Rolle „Logbetrachter“ (
roles/logging.viewer
) für den Zugriff auf alle Logs im Bucket_Required
und den Zugriff auf die Ansicht_Default
im Bucket_Default
. - Weisen Sie dem Zugriff auf alle Logs in den Buckets
_Required
und_Default
sowie den Datenzugriffslogs die Rolle „Betrachter privater Logs“ (roles/logging.privateLogViewer
) zu.
- Gewähren Sie die Rolle „Logbetrachter“ (
Damit ein Nutzer Logs mit einer Logansicht in einem benutzerdefinierten Bucket lesen kann, müssen Sie ihm die Rolle „Zugriffsberechtigter (Loganzeige)“ (
roles/logging.viewAccessor
) zuweisen. Sie können die Autorisierung mit einer IAM-Bedingung auf eine bestimmte Ansicht in einem bestimmten Bucket beschränken. Ein Beispiel finden Sie unter Logs aus einem Bucket lesen.Wenn Sie einem Nutzer Zugriff auf eingeschränkte
LogEntry
-Felder gewähren möchten, gewähren Sie ihm in einem bestimmten Bucket die Rolle „Logfeldzugriffsfunktion“ (roles/logging.fieldAccessor
). Weitere Informationen finden Sie unter Zugriff auf Feldebene konfigurieren.Damit ein Nutzer Logs mit der Logging API schreiben kann, müssen Sie die Rolle „Logautor“ (
roles/logging.logWriter
) gewähren. Diese Rolle gewährt keine Berechtigungen zum Betrachten.Damit das Dienstkonto einer Senke Logs an einen Bucket in einem anderen Google Cloud-Projekt weiterleiten kann, gewähren Sie dem Dienstkonto die Rolle „Log-Bucket-Autor“ (
roles/logging.bucketWriter
). Eine Anleitung zum Gewähren von Berechtigungen für ein Dienstkonto finden Sie unter Zielberechtigungen festlegen.
Rollen auf Projektebene
Gewähren Sie die Rolle „Betrachter“ (
roles/viewer
), um Lesezugriff auf die meisten Google Cloud-Dienste zu gewähren.Diese Rolle enthält alle Berechtigungen, die von der Rolle „Logbetrachter“ (
roles/logging.viewer
) gewährt werden.Wenn Sie Bearbeiterzugriff auf die meisten Google Cloud-Dienste gewähren möchten, gewähren Sie die Rolle „Bearbeiter“ (
roles/editor
).Diese Rolle umfasst alle Berechtigungen, die durch die Rolle „Logbetrachter“ (
roles/logging.viewer
) gewährt werden, sowie die Berechtigungen zum Schreiben von Logeinträgen, zum Löschen von Logs und zum Erstellen von logbasierten Messwerten. Mit dieser Rolle können Nutzer jedoch keine Senken erstellen oder Audit-Logs zum Datenzugriff lesen, die sich im Bucket_Default
befinden.Um uneingeschränkten Zugriff auf die meisten Google Cloud-Dienste zu gewähren, gewähren Sie die Rolle „Inhaber“ (
roles/owner
).
Rollen werden gewährt
Informationen zum Zuweisen von Rollen an Hauptkonto finden Sie unter Zugriff erteilen, ändern und entziehen.
Einem Nutzer können mehrere Rollen zugewiesen werden. Eine Liste der in einer Rolle enthaltenen Berechtigungen finden Sie unter Rollenmetadaten abrufen.
Wenn Sie versuchen, auf eine Google Cloud-Ressource zuzugreifen und nicht die erforderlichen Berechtigungen haben, wenden Sie sich an das Hauptkonto, das als Inhaber für die Ressource aufgeführt ist.
Benutzerdefinierte Rollen
So erstellen Sie eine benutzerdefinierte Rolle mit Logging-Berechtigungen:
Wählen Sie für eine Rolle, die Berechtigungen für die Logging API gewährt, Berechtigungen unter API-Berechtigungen aus. Folgen Sie dann der Anleitung zum Erstellen einer benutzerdefinierten Rolle.
Wählen Sie für eine Rolle, die Berechtigungen zur Verwendung von Log-Explorer gewährt, aus Berechtigungsgruppen aus , die sind in Console-Berechtigungen und folgen Sie dann der Anleitung zum Erstellen einer Benutzerdefinierte Rolle.
Für eine Rolle, die Berechtigungen zur Verwendung von
gcloud logging
gewährt, finden Sie im Abschnitt Befehlszeilenberechtigungen auf dieser Seite Informationen. Folgen Sie dann der Anleitung zum Erstellen einer benutzerdefinierten Rolle.
Weitere Details zu benutzerdefinierten Rollen finden Sie unter Informationen zu benutzerdefinierten IAM-Rollen.
API-Berechtigungen
Für Logging API-Methoden sind spezielle IAM-Berechtigungen erforderlich. In der folgenden Tabelle finden Sie die für die API-Methoden notwendigen Berechtigungen.
Wenn Sie sich für Logs interessieren, die in Google Cloud-Organisationen, -Rechnungskonten und -Ordnern gespeichert sind, haben diese Ressourcen ihre eigenen API-Methoden für logs
und sinks
. Statt alle Methoden in der Tabelle zu wiederholen, werden nur die projects
-Methoden einzeln aufgeführt.
Logging-Methode | Erforderliche Berechtigung | Ressourcentyp |
---|---|---|
billingAccounts.logs.* |
logging.logs.* (siehe projects.logs.* ) |
Rechnungskonten |
billingAccounts.sinks.* |
logging.sinks.* (siehe projects.sinks.* ) |
Rechnungskonten |
billingAccounts.locations.buckets.* |
logging.buckets.* (siehe projects.locations.buckets.* ) |
Rechnungskonten |
entries.list |
logging.logEntries.list oderlogging.privateLogEntries.list |
Projekte, Organisationen, Ordner, Rechnungskonten |
entries.tail |
logging.logEntries.list oderlogging.privateLogEntries.list |
Projekte, Organisationen, Ordner, Rechnungskonten |
entries.write |
logging.logEntries.create |
Projekte, Organisationen, Ordner, Rechnungskonten |
folders.logs.* |
logging.logs.* (siehe projects.logs.* ) |
Ordner |
folders.sinks.* |
logging.sinks.* (siehe projects.sinks.* ) |
Ordner |
folders.locations.buckets.* |
logging.buckets.* (siehe projects.locations.buckets.* ) |
Ordner |
monitoredResourceDescriptors.list |
(keine) | (keine) |
organizations.logs.* |
logging.logs.* (siehe projects.logs.* ) |
Organisationen |
organizations.sinks.* |
logging.sinks.* (siehe projects.sinks.* ) |
Organisationen |
organizations.locations.buckets.* |
logging.buckets.* (siehe projects.locations.buckets.* ) |
Organisationen |
projects.exclusions.create |
logging.exclusions.create |
Projekte |
projects.exclusions.delete |
logging.exclusions.delete |
Projekte |
projects.exclusions.get |
logging.exclusions.get |
Projekte |
projects.exclusions.list |
logging.exclusions.list |
Projekte |
projects.exclusions.patch |
logging.exclusions.update |
Projekte |
projects.logs.list |
logging.logs.list |
Projekte |
projects.logs.delete |
logging.logs.delete |
Projekte |
projects.sinks.list |
logging.sinks.list |
Projekte |
projects.sinks.get |
logging.sinks.get |
Projekte |
projects.sinks.create |
logging.sinks.create |
Projekte |
projects.sinks.update |
logging.sinks.update |
Projekte |
projects.sinks.delete |
logging.sinks.delete |
Projekte |
projects.locations.buckets.list |
logging.buckets.list |
Projekte |
projects.locations.buckets.get |
logging.buckets.get |
Projekte |
projects.locations.buckets.patch |
logging.buckets.update |
Projekte |
projects.locations.buckets.create |
logging.buckets.create |
Projekte |
projects.locations.buckets.delete |
logging.buckets.delete |
Projekte |
projects.locations.buckets.undelete |
logging.buckets.undelete |
Projekte |
projects.metrics.list |
logging.logMetrics.list |
Projekte |
projects.metrics.get |
logging.logMetrics.get |
Projekte |
projects.metrics.create |
logging.logMetrics.create |
Projekte |
projects.metrics.update |
logging.logMetrics.update |
Projekte |
projects.metrics.delete |
logging.logMetrics.delete |
projects |
Google Cloud Console-Berechtigungen
In der folgenden Tabelle sind die Berechtigungen aufgeführt, die für die Verwendung des Log-Explorers erforderlich sind.
a.b.{x,y}
bedeutet in der Tabelle a.b.x
und a.b.y
.
Console-Aktivität | Erforderliche Berechtigung |
---|---|
Minimaler Lesezugriff | logging.logEntries.list logging.logs.list logging.logServiceIndexes.list logging.logServices.list resourcemanager.projects.get |
Erlaubnis zum Ansehen von Audit-Logs zum Datenzugriff hinzufügen | logging.privateLogEntries.list hinzufügen |
Erlaubnis zum Anzeigen log-basierter Messwerte hinzufügen | logging.logMetrics. {list , get } hinzufügen |
Erlaubnis zum Ansehen von Senken hinzufügen | logging.sinks. {list , get } hinzufügen |
Erlaubnis zum Anzeigen der Lognutzung hinzufügen | logging.usage.get hinzufügen |
Erlaubnis zum Ausschließen von Logs hinzufügen | logging.exclusions. {list , create , get , update , delete } hinzufügen |
Erlaubnis zur Verwendung von Senken hinzufügen | logging.sinks.{list , create , get , update , delete } hinzufügen |
Erlaubnis zum Erstellen log-basierter Messwerte hinzufügen | logging.logMetrics. {list , create , get , update , delete } hinzufügen |
Erlaubnis zum Speichern von Abfragen hinzufügen | logging.queries. {list , create , get , update , delete } hinzufügen |
Erlaubnis zum Freigeben von Abfragen hinzufügen | logging.queries.share hinzufügen |
Erlaubnis zum Verwenden der letzten Abfragen hinzufügen | logging.queries. {create , list } hinzufügen |
Befehlszeilenberechtigungen
gcloud logging
-Befehle werden durch IAM-Berechtigungen gesteuert.
Hauptkonten müssen die Berechtigung serviceusage.services.use
haben, um einen der gcloud logging
-Befehle verwenden zu können.
Ein Hauptkonto muss auch die IAM-Rolle haben, die der Ressource des Logs und dem Anwendungsfall entspricht. Weitere Informationen finden Sie unter Berechtigungen für die Befehlszeile.
Mit BigQuery-Dataset-Berechtigungen verknüpfen
In der folgenden Liste werden die vordefinierten Rollen und die entsprechenden Berechtigungen zum Verwalten Ihrer verknüpften BigQuery-Datasets beschrieben:
Logging-Administrator (
roles/logging.admin
) und Autor von Logkonfigurationen (roles/logging.configWriter
) gewähren die folgenden Berechtigungen:logging.links.list
logging.links.create
logging.links.get
logging.links.delete
Log Link-Zugriffsfunktion (
roles/logging.linkViewer
), Betrachter privater Logs (roles/logging.privateLogViewer
) und Logbetrachter (roles/logging.viewer
) gewährt die folgenden Berechtigungen:logging.links.list
logging.links.get
Die zuvor aufgeführten Rollen und Berechtigungen gelten nur für Logging-Seiten wie die Loganalyse-Seite. Wenn Sie die BigQuery-Benutzeroberfläche zum Verwalten Ihrer Datasets verwenden, benötigen Sie möglicherweise separate BigQuery-Rollen und -Berechtigungen. Weitere Informationen finden Sie unter Zugriffssteuerung mit IAM.
Berechtigungen für Log-Routing
Informationen zum Festlegen von Zugriffssteuerungen beim Erstellen und Verwalten von Senken zum Routing von Logs finden Sie unter Zielberechtigungen festlegen.
Die Verwaltung von Ausschlussfiltern ist in die Konfiguration von Senken integriert. Alle Berechtigungen im Zusammenhang mit der Verwaltung von Senken, einschließlich der Einstellung von Ausschlussfiltern, sind in den logging.sinks.*
-Berechtigungen enthalten. Wenn Sie eine benutzerdefinierte Rolle erstellen, die Berechtigungen zum Verwalten von Ausschlussfiltern enthält, fügen Sie der Rolle die Berechtigungen logging.sinks.*
und nicht die Berechtigungen logging.exclusions.*
hinzu.
Nachdem Ihre Logeinträge an ein unterstütztes Ziel weitergeleitet wurden, wird der Zugriff auf die Logkopien vollständig durch IAM-Berechtigungen und -Rollen für die Ziele gesteuert – Cloud Storage, BigQuery oder Pub/Sub.
Berechtigungen für logbasierte Messwerte
Es folgt eine Zusammenfassung der allgemeinen Rollen und Berechtigungen, die ein Hauptkonto benötigt, um auf logbasierte Messwerte zuzugreifen:
Mit Autor von Logkonfigurationen (
roles/logging.configWriter
) können Hauptkonten logbasierte Messwerte auflisten, erstellen, abrufen, aktualisieren und löschen.Mit der Loganzeige (
roles/logging.viewer
) können Hauptkonten vorhandene Messwerte ansehen. Sie können einer benutzerdefinierten Rolle auch die Berechtigungenlogging.logMetrics.get
undlogging.logMetrics.list
hinzufügen.Mit Monitoring-Betrachter (
roles/monitoring.viewer
) können Hauptkonten TimeSeries-Daten lesen. Sie können die Berechtigungmonitoring.timeSeries.list
auch einer benutzerdefinierten Rolle hinzufügen.Mit Logging-Administratoren (
roles/logging.admin
), Projektbearbeiter (roles/editor
) und Projektinhaber (roles/owner
) können Hauptkonten logbasierte Messwerte (logging.logMetrics.create
) erstellen.
Berechtigungen für logbasierte Benachrichtigungen
Im Folgenden finden Sie eine Zusammenfassung der allgemeinen Rollen und Berechtigungen, die ein Hauptkonto zum Erstellen und Verwalten logbasierter Benachrichtigungen benötigt:
Logging-Administrator (
roles/logging.admin
). Ein Hauptkonto benötigt insbesondere die folgenden Berechtigungen, um Logs zu lesen und Logging-Benachrichtigungsregeln zu verwalten:logging.logs.list
logging.logEntries.list
logging.notificationRules.create
logging.notificationRules.update
Diese Berechtigungen sind in der Rolle „Logging-Administrator“ enthalten. Wenn Sie diese Rolle nicht gewähren möchten, gehen Sie so vor:
- Weisen Sie die Rollen Logkonfigurationsautor (
roles/logging.configWriter
) und Logbetrachter (roles/logging.viewer
) zu. - Erstellen Sie eine benutzerdefinierte Rolle und fügen Sie diese Berechtigungen hinzu. Weitere Informationen finden Sie unter Benutzerdefinierte Rollen erstellen und verwalten.
Bearbeiter von Monitoring-Benachrichtigungsrichtlinien (
roles/monitoring.alertPolicyEditor
) und Monitoring-Benachrichtigungskanal-Bearbeiter (roles/monitoring.notificationChannelEditor
) enthalten die Berechtigungen, die zum Verwalten der Benachrichtigungsrichtlinien erforderlich sind und der Benachrichtigungskanäle, die von logbasierten Benachrichtigungen verwendet werden:monitoring.alertPolicies.{create, delete, get, list, update}
monitoring.notificationChannelDescriptors.{get, list}
monitoring.notificationChannels.{create, delete, get, list, sendVerificationCode, update, verify}
Die erforderlichen Berechtigungen sind auch in den Rollen Monitoring-Bearbeiter (
roles/monitoring.editor
) und Monitoring-Administrator (roles/monitoring.admin
) enthalten.Wenn Sie keine dieser Rollen zuweisen möchten, erstellen Sie eine benutzerdefinierte Rolle und fügen Sie die Berechtigungen den Rollen Monitoring Editor für Benachrichtigungsrichtlinien und Monitoring NotificationChannel hinzu.
- Informationen zu benutzerdefinierten Rollen finden Sie unter Benutzerdefinierte Rollen erstellen und verwalten.
- Weitere Informationen zu Monitoring-Rollen und -Berechtigungen finden Sie unter Zugriffssteuerung.
Zugriffsbereiche in Logging
Zugriffsbereiche sind die Legacy-Methode zum Festlegen von Berechtigungen für die Dienstkonten in Ihren Compute Engine-VM-Instanzen.
Für die Logging API gelten folgende Zugriffsbereiche:
Zugriffsbereich | Erteilte Berechtigungen |
---|---|
https://www.googleapis.com/auth/logging.read | roles/logging.viewer |
https://www.googleapis.com/auth/logging.write | roles/logging.logWriter |
https://www.googleapis.com/auth/logging.admin | Uneingeschränkter Zugriff auf die Logging API |
https://www.googleapis.com/auth/cloud-platform | Uneingeschränkter Zugriff auf die Logging API sowie alle anderen aktivierten Google Cloud APIs |
Informationen zur Verwendung dieser Legacy-Methode zum Festlegen der Zugriffsebenen Ihrer Dienstkonten finden Sie unter Dienstkontoberechtigungen.