In diesem Dokument wird beschrieben, wie Sie mit Rollen und Berechtigungen der Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM) den Zugriff auf Logdaten in der Logging API, im Log-Explorer und in der Google Cloud CLI steuern.
Überblick
IAM-Berechtigungen und -Rollen bestimmen, ob Sie in der Logging API, im Log-Explorer und in der Google Cloud CLI auf Logdaten zugreifen können.
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, einem Ordner, einem Bucket oder einer 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 bei Bedarf automatisch, z. B. wenn Logging neue Features hinzufügt.
In der folgenden Tabelle sind die vordefinierten Rollen für Logging aufgeführt. In der Tabelle werden für jede Rolle der Titel, die Beschreibung, die enthaltenen Berechtigungen und der Ressourcentyp der niedrigsten Ebene angezeigt, für den die Rollen gewährt werden können. Sie können die vordefinierten Rollen auf Google Cloud-Projektebene oder in den meisten Fällen auf allen Typen weiter oben in der Google Cloud-Hierarchie zuweisen. Sie können die Rolle „Zugriffsfunktion für die Logansicht“ mithilfe von Ressourcenattributen für IAM-Bedingungen eingrenzen.
Eine Liste aller einzelnen Berechtigungen, die in einer Rolle enthalten sind, finden Sie unter Rollenmetadaten abrufen.
Role | Permissions |
---|---|
Logging Admin( Provides all permissions necessary to use all features of Cloud Logging. Lowest-level resources where you can grant this role:
|
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 |
Logs Bucket Writer( Ability to write logs to a log bucket. Lowest-level resources where you can grant this role:
|
logging.buckets.write |
Logs Configuration Writer( Provides permissions to read and write the configurations of logs-based metrics and sinks for exporting logs. Lowest-level resources where you can grant this role:
|
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 |
Log Field Accessor( Ability to read restricted fields in a log bucket. Lowest-level resources where you can grant this role:
|
logging.fields.access |
Log Link Accessor( Ability to see links for a bucket. |
logging.links.get logging.links.list |
Logs Writer( Provides the permissions to write log entries. Lowest-level resources where you can grant this role:
|
logging.logEntries.create logging.logEntries.route |
Private Logs Viewer( Provides permissions of the Logs Viewer role and in addition, provides read-only access to log entries in private logs. Lowest-level resources where you can grant this role:
|
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 |
Logs View Accessor( Ability to read logs in a view. Lowest-level resources where you can grant this role:
|
logging.logEntries.download logging.views.access logging.views.listLogs logging.views.listResourceKeys logging. |
Logs Viewer( Provides access to view logs. Lowest-level resources where you can grant this role:
|
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, die Ihnen bei der Entscheidung helfen, welche Rollen für die Anwendungsfälle Ihrer Hauptkonten gelten.
Loggingrollen
Damit ein Nutzer alle Aktionen in Logging ausführen kann, weisen Sie die Rolle „Logging-Administrator“ (
roles/logging.admin
) zu.Damit Nutzer Logging-Konfigurationen wie Senken, Buckets, Ansichten, Links, logbasierte Messwerte oder Ausschlüsse erstellen und ändern können, müssen Sie die Rolle „Autor von Logkonfigurationen“ (
roles/logging.configWriter
) zuweisen.Damit Nutzer Logs in den Buckets
_Required
und_Default
lesen können, weisen Sie ihnen im Log-Explorer und auf der Seite „Log Analytics“ eine der folgenden Rollen zu:- Erteilen Sie die Rolle der Loganzeige (
roles/logging.viewer
), um Zugriff auf alle Logs im Bucket_Required
und auf die Ansicht_Default
im Bucket_Default
zu gewähren. - Weisen Sie die Rolle „Betrachter privater Logs“ (
roles/logging.privateLogViewer
) zu, um Zugriff auf alle Logs in den Buckets_Required
und_Default
, einschließlich Datenzugriffslogs, zu erhalten.
- Erteilen Sie die Rolle der Loganzeige (
Damit Nutzer Logs lesen können, die in einem benutzerdefinierten Bucket gespeichert sind, müssen Sie die Rolle „Zugriffsfunktion für Logbetrachtung“ (
roles/logging.viewAccessor
) erteilen. Mit einer IAM-Bedingung können Sie die Autorisierung auf eine bestimmte Logansicht in einem bestimmten Bucket beschränken. Ein Beispiel finden Sie unter Logs aus einem Bucket lesen.Wenn Sie einem Nutzer Zugriff auf eingeschränkte Felder vom Typ
LogEntry
in einem bestimmten Bucket gewähren möchten, weisen Sie ihm die Rolle „Zugriffsfunktion für Logfelder (roles/logging.fieldAccessor
)“ zu. Weitere Informationen finden Sie unter Zugriff auf Feldebene konfigurieren.Damit Nutzer Logs mithilfe der Logging API schreiben können, müssen Sie die Rolle "Log-Autor" (
roles/logging.logWriter
) zuweisen. 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, weisen Sie dem Dienstkonto die Rolle „Log-Bucket-Autor“ (
roles/logging.bucketWriter
) zu. Eine Anleitung zum Gewähren von Berechtigungen für ein Dienstkonto finden Sie unter Zielberechtigungen festlegen.
Rollen auf Projektebene
Erteilen 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.Um Bearbeiterzugriff auf die meisten Google Cloud-Dienste zu gewähren, weisen Sie die Rolle „Bearbeiter“ (
roles/editor
) zu.Diese Rolle umfasst alle Berechtigungen, die mit der Rolle „Logbetrachter“ (
roles/logging.viewer
) gewährt werden, sowie die Berechtigungen zum Schreiben von Logeinträgen, zum Löschen von Logs und zum Erstellen logbasierter Messwerte. Mit dieser Rolle können Nutzer jedoch weder Senken erstellen noch Audit-Logs zum Datenzugriff im Bucket_Default
lesen oder Logs lesen, die sich in benutzerdefinierten Log-Buckets befinden.Erteilen Sie die Rolle „Inhaber“ (
roles/owner
), um vollen Zugriff auf die meisten Google Cloud-Dienste zu gewähren.
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 auf eine Google Cloud-Ressource zugreifen möchten und nicht die erforderlichen Berechtigungen haben, wenden Sie sich an das Hauptkonto, das als Inhaber der 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.
Berechtigungen für die Logging API
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 in Google Cloud-Organisationen, -Rechnungskonten und -Ordnern interessieren, beachten Sie, dass diese Ressourcen ihre eigenen API-Methoden für logs
und sinks
haben. 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 |
Projekt |
Berechtigungen für die Google Cloud Console
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 |
Berechtigungen für die Befehlszeile
gcloud logging
-Befehle werden durch IAM-Berechtigungen gesteuert.
Damit Sie einen der gcloud logging
-Befehle verwenden können, müssen Hauptkonten die Berechtigung serviceusage.services.use
haben.
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 Befehlszeilenschnittstelle.
Berechtigungen für verknüpfte BigQuery-Datasets
In der folgenden Liste werden die vordefinierten Rollen und die entsprechenden Berechtigungen für die Verwaltung Ihrer verknüpften BigQuery-Datasets beschrieben:
Die Rollen Logging-Administrator (
roles/logging.admin
) und Autor von Logkonfigurationen (roles/logging.configWriter
) enthalten die folgenden Berechtigungen:logging.links.list
logging.links.create
logging.links.get
logging.links.delete
Die Rollen Loglink-Zugriffsfunktion (
roles/logging.linkViewer
), Betrachter privater Logs (roles/logging.privateLogViewer
) und Loganzeige (roles/logging.viewer
) enthalten die folgenden Berechtigungen:logging.links.list
logging.links.get
Die zuvor aufgeführten Rollen und Berechtigungen gelten nur für Logging-Seiten wie die Log Analytics-Seite. Wenn Sie Ihre Datasets über die BigQuery-Benutzeroberfläche verwalten, benötigen Sie möglicherweise separate BigQuery-Rollen und -Berechtigungen. Weitere Informationen finden Sie unter Zugriffssteuerung mit IAM für BigQuery.
Berechtigungen für das Routing von Logs
Informationen zum Festlegen der Zugriffssteuerung beim Erstellen und Verwalten von Senken zum Weiterleiten 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 der Rolle Autor von Logkonfigurationen (
roles/logging.configWriter
) können Hauptkonten logbasierte Messwerte auflisten, erstellen, abrufen, aktualisieren und löschen.Die Rolle Loganzeige (
roles/logging.viewer
) enthält Berechtigungen zum Aufrufen vorhandener Messwerte. Insbesondere benötigt ein Hauptkonto die Berechtigungenlogging.logMetrics.get
undlogging.logMetrics.list
, um vorhandene Messwerte aufzurufen.Die Rolle Monitoring-Betrachter (
roles/monitoring.viewer
) enthält die Berechtigungen zum Lesen von TimeSeries-Daten. Insbesondere benötigt ein Hauptkonto die Berechtigungmonitoring.timeSeries.list
, um Zeitachsendaten zu lesen.Die Rollen Logging-Administrator (
roles/logging.admin
), Projektbearbeiter (roles/editor
) und Projektinhaber (roles/owner
) enthalten die Berechtigungen zum Erstellen logbasierter Messwerte. Insbesondere benötigt ein Hauptkonto die Berechtigunglogging.logMetrics.create
, um logbasierte Messwerte zu erstellen.
Berechtigungen für logbasierte Benachrichtigungen
Zum Erstellen und Verwalten logbasierter Benachrichtigungen benötigt ein Hauptkonto die Rollen und Berechtigungen für Logging und Monitoring.
Der Logging-Administrator (
roles/logging.admin
) enthält die Berechtigungen, die zum Lesen von Logs und zum Verwalten von Logging-Benachrichtigungsregeln erforderlich sind:logging.logs.list
logging.logEntries.list
logging.notificationRules.create
logging.notificationRules.update
Wenn Sie diese Rolle nicht zuweisen möchten, gehen Sie so vor:
- Weisen Sie die Rollen Autor von Logkonfigurationen (
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.
Die Rollen Bearbeiter von Monitoring-Benachrichtigungsrichtlinien (
roles/monitoring.alertPolicyEditor
) und Bearbeiter von Monitoring-Benachrichtigungskanälen (roles/monitoring.notificationChannelEditor
) umfassen zusammen die Berechtigungen, die zum Verwalten der von logbasierten Benachrichtigungen verwendeten Benachrichtigungsrichtlinien und -kanäle erforderlich sind:monitoring.alertPolicies.{create, delete, get, list, update}
monitoring.notificationChannelDescriptors.{get, list}
monitoring.notificationChannels.{create, delete, get, list, sendVerificationCode, update, verify}
Die Rollen Monitoring Editor (
roles/monitoring.editor
) und Monitoring Admin (roles/monitoring.admin
) enthalten jeweils alle Berechtigungen, die zum Verwalten von Benachrichtigungsrichtlinien und Benachrichtigungskanälen erforderlich sind.Wenn Sie keine der Standardrollen für Monitoring zuweisen möchten, erstellen Sie eine benutzerdefinierte Rolle und fügen Sie die Berechtigungen der Rollen „Bearbeiter von Monitoring-Benachrichtigungsrichtlinien“ (
roles/monitoring.alertPolicyEditor
) und „Bearbeiter von Monitoring-Benachrichtigungskanälen“ (roles/monitoring.notificationChannelEditor
) ein.- Informationen zu benutzerdefinierten Rollen finden Sie unter Benutzerdefinierte Rollen erstellen und verwalten.
- Weitere Informationen zu Monitoring-Rollen und -Berechtigungen finden Sie unter Zugriffssteuerung mit IAM.
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 für Ihre Dienstkonten finden Sie unter Dienstkontoberechtigungen.