In diesem Dokument wird beschrieben, wie Sie mit IAM-Rollen (Identity and Access Management) 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 automatisch nach Bedarf, z. B. wenn Logging neue Funktionen hinzufügt.
In der folgenden Tabelle sind die vordefinierten Rollen für Logging aufgeführt. In der Tabelle werden für jede Rolle der Rollentitel, 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 für jeden Typ weiter oben in der Google Cloud-Hierarchie zuweisen. Verwenden Sie Ressourcenattribute für IAM-Bedingungen, um die Rolle des Zugriffs auf die Logansicht noch stärker auf die Bucket-Ebene einzugrenzen.
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:
|
|
Logs Bucket Writer( Ability to write logs to a log bucket. Lowest-level resources where you can grant this role:
|
|
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:
|
|
Log Field Accessor( Ability to read restricted fields in a log bucket. Lowest-level resources where you can grant this role:
|
|
Log Link Accessor( Ability to see links for a bucket. |
|
Logs Writer( Provides the permissions to write log entries. Lowest-level resources where you can grant this role:
|
|
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:
|
|
Logs View Accessor( Ability to read logs in a view. Lowest-level resources where you can grant this role:
|
|
Logs Viewer( Provides access to view logs. Lowest-level resources where you can grant this role:
|
|
Die folgenden Abschnitte enthalten zusätzliche Informationen, damit Sie besser entscheiden können, welche Rollen für die Anwendungsfälle Ihrer Hauptkonten gelten.
Loggingrollen
Damit ein Nutzer alle Aktionen in Logging ausführen kann, müssen Sie die Rolle „Logging Admin“ (
roles/logging.admin
) zuweisen.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, müssen Sie ihnen im Log-Explorer und auf der Seite „Loganalysen“ eine der folgenden Rollen zuweisen:- Erteilen Sie die Rolle „Loganzeige“ (
roles/logging.viewer
) für den Zugriff auf alle Logs im Bucket_Required
und auf die Ansicht_Default
im Bucket_Default
. - Für den Zugriff auf alle Logs in den Buckets
_Required
und_Default
, einschließlich Datenzugriffslogs, gewähren Sie die Rolle „Betrachter privater Logs“ (roles/logging.privateLogViewer
).
- Erteilen Sie die Rolle „Loganzeige“ (
Damit ein Nutzer Logs lesen kann, die in einem benutzerdefinierten Bucket gespeichert sind, müssen Sie die Rolle „Zugriffsfunktion für Logansicht“ (
roles/logging.viewAccessor
) erteilen. Mit einer IAM-Bedingung können Sie die Autorisierung auf eine bestimmte Logansicht in einem bestimmten Bucket beschränken. Weitere Informationen finden Sie unter Zugriff auf eine Logansicht gewähren.Um einem Nutzer Zugriff auf eingeschränkte
LogEntry
-Felder in einem bestimmten Bucket zu gewähren, weisen Sie die Rolle „Zugriffsfunktion für Logfelder (roles/logging.fieldAccessor
)“ zu. Weitere Informationen finden Sie unter Zugriff auf Feldebene konfigurieren.Damit Nutzer Logs mit der Logging API schreiben können, müssen Sie die Rolle „Logautor“ (
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
Um Lesezugriff auf die meisten Google Cloud-Dienste zu gewähren, gewähren Sie die Rolle „Betrachter“ (
roles/viewer
).Diese Rolle umfasst alle Berechtigungen, die von der Rolle „Logbetrachter“ (
roles/logging.viewer
) gewährt werden.Um Bearbeitungszugriff auf die meisten Google Cloud-Dienste zu gewähren, müssen Sie die Rolle „Bearbeiter“ (
roles/editor
) zuweisen.Diese Rolle umfasst alle Berechtigungen, die von der Rolle der Loganzeige (
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 keine Senken erstellen und keine Audit-Logs zum Datenzugriff lesen, die sich im Bucket_Default
befinden, oder Logs lesen, die sich in benutzerdefinierten Log-Buckets befinden.Wenn Sie vollen Zugriff auf die meisten Google Cloud-Dienste gewähren möchten, 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 auf eine Google Cloud-Ressource zugreifen möchten 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.
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.* ) |
organizations |
organizations.sinks.* |
logging.sinks.* (siehe projects.sinks.* ) |
organizations |
organizations.locations.buckets.* |
logging.buckets.* (siehe projects.locations.buckets.* ) |
organizations |
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.
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.
Berechtigungen für verknüpfte BigQuery-Datasets
In der folgenden Liste werden die vordefinierten Rollen und die entsprechenden Berechtigungen zum Verwalten 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 Log-Link-Zugriffer (
roles/logging.linkViewer
), Betrachter privater Logs (roles/logging.privateLogViewer
) und Log-Betrachter (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 Loganalysen-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 Routinglogs
Informationen zum Festlegen von Zugriffssteuerungen 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 Log-Anzeige (
roles/logging.viewer
) enthält Berechtigungen zum Ansehen vorhandener Messwerte. Ein Hauptkonto benötigt insbesondere die Berechtigungenlogging.logMetrics.get
undlogging.logMetrics.list
, um vorhandene Messwerte anzusehen.Die Rolle Monitoring Viewer (
roles/monitoring.viewer
) enthält die Berechtigungen zum Lesen von TimeSeries. Insbesondere benötigt ein Hauptkonto die Berechtigungmonitoring.timeSeries.list
, um Zeitachsendaten zu lesen.Die Rollen Logging Admin (
roles/logging.admin
), Project Editor (roles/editor
) und Project Owner (roles/owner
) enthalten die Berechtigungen zum Erstellen logbasierter Messwerte. Ein Hauptkonto benötigt insbesondere 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 folgenden Rollen und Berechtigungen für Logging und Monitoring:
-
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Logging Admin (
roles/logging.admin
) für Ihr Projekt zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Lesen von Logs und zum Verwalten der Logging-Benachrichtigungsregeln benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.Möglicherweise können Sie die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
-
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Verwalten der Benachrichtigungsrichtlinien und -kanäle von logbasierten Benachrichtigungen benötigen:
-
Bearbeiter von Monitoring-Benachrichtigungsrichtlinien (
roles/monitoring.alertPolicyEditor
) -
Bearbeiter von Monitoring-Benachrichtigungskanälen (
roles/monitoring.notificationChannelEditor
)
-
Bearbeiter von Monitoring-Benachrichtigungsrichtlinien (
-
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Service Usage-Nutzer (
roles/serviceusage.serviceUsageConsumer
) für Ihr Projekt zu gewähren, damit Sie die Berechtigungen erhalten, die Sie zum Erstellen einer Benachrichtigungsrichtlinie in der Google Cloud CLI benötigen.
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 zum Festlegen der Zugriffsebenen für Ihre Dienstkonten mit dieser Legacy-Methode finden Sie unter Dienstkontoberechtigungen.