Anleitung zur Zugriffssteuerung

Auf dieser Seite wird beschrieben, wie Sie mithilfe von IAM-Rollen (Identity and Access Management) den Zugriff auf Cloud Logging-Daten in Google Cloud-Ressourcen steuern.

Übersicht

IAM-Berechtigungen und Rollen von IAM bestimmen Ihre Fähigkeit, auf Logdaten in der Logging API, der Logs Explorer und das gcloud-Befehlszeilentool verwenden.

Eine Rolle ist eine Sammlung von Berechtigungen. Sie können einem Mitglied keine Berechtigungen direkt erteilen. Stattdessen weisen Sie ihnen eine Rolle zu. Wenn Sie einem Mitglied eine Rolle zuweisen, erhält es alle mit ihr verknüpften Berechtigungen. Sie können demselben Mitglied mehrere Rollen zuweisen.

Wenn Sie Logging in einer Google Cloud-Ressource wie einem Google Cloud-Projekt, einem Ordner, einem Bucket oder einer Organisation verwenden möchten, benötigen Sie eine IAM-Rolle mit den entsprechenden Berechtigungen.

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, wenn z. B. neue Logging-Funktionen hinzugefügt werden.

In der folgenden Tabelle sind die Logging-Rollen, die Titel der Rollen, ihre Beschreibungen, Berechtigungen und der Ressourcentyp der untersten Ebene aufgeführt, für den die Rollen festgelegt werden können. Eine bestimmte Rolle kann für diesen Ressourcentyp oder in den meisten Fällen einen übergeordneten Typ in der Google Cloud-Hierarchie gewährt werden.

Eine Liste der einzelnen in einer Rolle enthaltenen Berechtigungen finden Sie unter Rollenmetadaten abrufen.

Rolle Titel Beschreibung Berechtigungen Niedrigste Ressource
roles/logging.admin Loggingadministrator Alle Berechtigungen zum Verwenden aller Features von Cloud Logging
  • logging.buckets.copyLogEntries
  • logging.buckets.create
  • logging.buckets.delete
  • logging.buckets.get
  • logging.buckets.list
  • logging.buckets.undelete
  • logging.buckets.update
  • logging.cmekSettings.*
  • logging.exclusions.*
  • logging.fields.*
  • logging.locations.*
  • logging.logEntries.*
  • logging.logMetrics.*
  • logging.logServiceIndexes.*
  • logging.logServices.*
  • logging.logs.*
  • logging.notificationRules.*
  • logging.operations.*
  • logging.privateLogEntries.*
  • logging.queries.*
  • logging.sinks.*
  • logging.usage.*
  • logging.views.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Projekt
roles/logging.bucketWriter Log-Bucket-Autor Kann Logs in einen Log-Bucket schreiben
  • logging.buckets.write
Bucket
roles/logging.configWriter Autor von Log-Konfigurationen Berechtigungen zum Lesen und Schreiben der Konfigurationen logbasierter Messwerte und Senken zum Exportieren von Logs
  • logging.buckets.create
  • logging.buckets.delete
  • logging.buckets.get
  • logging.buckets.list
  • logging.buckets.undelete
  • logging.buckets.update
  • logging.cmekSettings.*
  • logging.exclusions.*
  • logging.locations.*
  • logging.logMetrics.*
  • logging.logServiceIndexes.*
  • logging.logServices.*
  • logging.logs.list
  • logging.operations.*
  • logging.sinks.*
  • logging.views.create
  • logging.views.delete
  • logging.views.get
  • logging.views.list
  • logging.views.update
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Projekt
roles/logging.fieldAccessor Zugriffsberechtigter für Logfelder Fähigkeit zum Lesen eingeschränkter Felder in einem Log-Bucket.
  • logging.fields.*
Bucket
roles/logging.logWriter Log-Autor Berechtigung zum Schreiben von Log-Einträgen
  • logging.logEntries.create
Projekt
roles/logging.privateLogViewer Betrachter privater Logs Berechtigungen der Logbetrachter-Rolle und Lesezugriff auf Logeinträge in privaten Logs
  • logging.buckets.get
  • logging.buckets.list
  • logging.exclusions.get
  • logging.exclusions.list
  • logging.locations.*
  • logging.logEntries.list
  • logging.logMetrics.get
  • logging.logMetrics.list
  • logging.logServiceIndexes.*
  • logging.logServices.*
  • logging.logs.list
  • logging.privateLogEntries.*
  • 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.*
  • logging.views.access
  • logging.views.get
  • logging.views.list
  • resourcemanager.projects.get
Projekt
roles/logging.viewAccessor Zugriffsberechtigter für Logbetrachtung Kann Logs in einer Ansicht lesen
  • logging.logEntries.download
  • logging.views.access
  • logging.views.listLogs
  • logging.views.listResourceKeys
  • logging.views.listResourceValues
Projekt
roles/logging.viewer Loganzeige Berechtigung zum Aufrufen von Logs
  • logging.buckets.get
  • logging.buckets.list
  • logging.exclusions.get
  • logging.exclusions.list
  • logging.locations.*
  • logging.logEntries.list
  • logging.logMetrics.get
  • logging.logMetrics.list
  • logging.logServiceIndexes.*
  • logging.logServices.*
  • 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.*
  • logging.views.get
  • logging.views.list
  • resourcemanager.projects.get
Projekt

Weitere Hinweise

Berücksichtigen Sie bei der Entscheidung, welche Berechtigungen und Rollen für die Anwendungsfälle Ihrer Ressourcenmitglieder gelten, die folgenden Punkte:

  • roles/logging.viewer (Loganzeige) bietet Ihnen Lesezugriff auf alle Features von Logging mit Ausnahme von Access Transparency-Logs und Audit-Logs zum Datenzugriff, die sich in den Buckets _Required und _Default befinden. aus.

  • roles/logging.privateLogViewer (Betrachter privater Logs) bietet roles/logging.viewer sowie die Möglichkeit, Access Transparency-Logs und Audit-Logs zum Datenzugriff in den Buckets _Required und _Default zu lesen.

    Wenn diese privaten Logs in benutzerdefinierten Buckets gespeichert sind, kann jeder Nutzer, der Berechtigungen zum Lesen von Logs in diesen Buckets hat, die privaten Logs lesen. Weitere Informationen zu Log-Buckets finden Sie unter Routing und Speicher.

  • roles/logging.logWriter (Log-Autor) kann Dienstkonten gewährt werden, um Anwendungen die nötigen Berechtigungen zum Schreiben von Logs zu gewähren. Diese Rolle gewährt keine Leseberechtigungen.

  • roles/logging.bucketWriter (Log-Buckets-Autor) können Dienstkonten gewährt werden, um Cloud Logging ausreichend Berechtigungen zum Schreiben von Logs in einen Log-Bucket zu gewähren. Verwenden Sie eine IAM-Bedingung, um diese Rolle auf einen bestimmten Bucket zu beschränken. Ein Beispiel finden Sie unter Logs von einem Projekt zu einem anderen Bucket in einem anderen Projekt weiterleiten.

  • roles/logging.configWriter (Autor von Logkonfigurationen) gibt Ihnen die Berechtigung, logbasierte Messwerte, Ausschlüsse, Buckets und Ansichten zu erstellen und Senken zu verwenden. Fügen Sie roles/logging.viewer hinzu, um den Log-Explorer (Konsole) für diese Aktionen zu verwenden.

  • roles/logging.admin (Logging-Administrator) gewährt Ihnen alle Berechtigungen im Zusammenhang mit Logging.

  • roles/logging.viewAccessor (Zugriff auf Log-Ansicht) gewährt Ihnen Berechtigungen zum Herunterladen von Logs und zum Lesen von Logs, Ressourcenschlüsseln und Werten in einer Log-Ansicht. Wenn Sie diese Rolle auf eine Ansicht in einem bestimmten Bucket beschränken möchten, verwenden Sie eine IAM-Bedingung. Ein Beispiel finden Sie unter Logs aus einem Bucket lesen.

  • roles/logging.fieldAccessor (Logfeldzugriff) gewährt Berechtigungen zum Lesen von Logs, Ressourcenschlüsseln und Werten für einen Teil der LogEntry-Felder für einen bestimmten Log-Bucket. Weitere Informationen finden Sie unter Zugriffssteuerung auf Feldebene.

  • roles/viewer (Projektbetrachter) ist mit roles/logging.viewer identisch. Die Rolle bietet Lesezugriff auf alle Logging-Features mit Ausnahme von Access Transparency-Logs und Audit-Logs zum Datenzugriff, die sich in den Buckets _Required und _Default befinden.

  • roles/editor (Projektbearbeiter) enthält die Berechtigungen von roles/logging.viewer sowie Berechtigungen zum Schreiben von Logeinträgen, zum Löschen von Logs und zum Erstellen von logbasierten Messwerten. Sie können jedoch keine Senken erstellen oder Access Transparency-Logs oder das Audit zum Datenzugriff lesen, die sich in den Buckets _Required und _Default befinden.

  • roles/owner (Projektinhaber) bietet Ihnen vollständigen Zugriff auf Logging, einschließlich des Lesens von Access Transparency-Logs und Audit-Logs zum Datenzugriff.

Rollen werden gewährt

Informationen zum Zuweisen einer Rolle für ein Mitglied finden Sie unter Zugriff gewähren, ändern und widerrufen.

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 Mitglied, das als Inhaber für die Ressource aufgeführt ist.

Benutzerdefinierte Rollen

So erstellen Sie eine benutzerdefinierte Rolle mit Logging-Berechtigungen:

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 an Logs von Google Cloud-Organisationen, -Rechnungskonten und -Ordnern interessiert sind, beachten Sie, dass diese Ressourcen eigene API-Methoden für logs und sinks haben. Statt alle Methoden in der Tabelle zu wiederholen, werden nur die projects-Methoden einzeln angezeigt.

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 oder
logging.privateLogEntries.list
Projekte, Organisationen,
Ordner, Rechnungskonten
entries.tail logging.logEntries.list oder
logging.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 Projekte

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 Ansehen von Access Transparency-Logs hinzufügen logging.privateLogEntries.list hinzufügen
Funktion zum Ansehen logbasierter Messwerte hinzufügen logging.logMetrics.{list, get} hinzufügen
Funktion 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
Funktion für Senken hinzufügen logging.sinks.{list, create, get, update, delete} hinzufügen
Funktion zum Erstellen logbasierter Messwerte hinzufügen logging.logMetrics.{list, create, get, update, delete} hinzufügen
Funktion zum Speichern von Abfragen hinzufügen logging.queries.{list, create, get, update, delete} hinzufügen
Funktion zum Teilen von Abfragen hinzufügen logging.queries.share hinzufügen
Funktion zur Verwendung kürzlich verwendeter Abfragen hinzufügen logging.queries.{create, list} hinzufügen

Befehlszeilenberechtigungen

gcloud logging-Befehle werden durch IAM-Berechtigungen gesteuert.

Um einen der gcloud logging-Befehle zu verwenden, benötigen Sie die Berechtigung serviceusage.services.use.

Sie müssen auch die IAM-Rolle haben, die der Ressource des Logs und Ihrem Anwendungsfall entspricht. Weitere Informationen finden Sie unter Berechtigungen der Befehlszeilenschnittstelle.

Berechtigungen zum Logrouting

Informationen zum Festlegen von Zugriffssteuerungen beim Erstellen und Verwalten von Senken zum Weiterleiten von Logs finden Sie unter Senken konfigurieren: Zielberechtigungen festlegen.

Die Verwaltung von Ausschlussfiltern ist in die Konfiguration von Senken eingebunden. Alle Berechtigungen zum Verwalten von Senken, einschließlich des Festlegens von Ausschlussfiltern, sind in den Berechtigungen vom Typ logging.sinks.* enthalten. Wenn Sie eine benutzerdefinierte Rolle erstellen, die Berechtigungen zum Verwalten von Ausschlussfiltern enthält, fügen Sie der Rolle die Berechtigungen logging.sinks.* statt der 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

Im Folgenden finden Sie eine Zusammenfassung der allgemeinen Rollen und Berechtigungen, die ein Mitglied eines Cloud-Projekts benötigt, um auf logbasierte Messwerte zuzugreifen:

  • Mit Logkonfigurationsautor (roles/logging.configWriter) können Sie logbasierte Messwerte auflisten, erstellen, abrufen, aktualisieren und löschen.

  • In der Loganzeige (roles/logging.viewer) können Sie vorhandene Messwerte ansehen. Sie können den Berechtigungen logging.logMetrics.get und logging.logMetrics.list auch einer benutzerdefinierten Rolle hinzufügen.

  • Mit Monitoring-Betrachter (roles/monitoring.viewer) können Sie TimeSeries-Daten lesen. Sie können die Berechtigung monitoring.timeSeries.list auch einer benutzerdefinierten Rolle hinzufügen.

  • Logging-Administrator (roles/logging.admin), Projektbearbeiter (roles/editor) und Projektinhaber (roles/owner können Sie logbasierte Messwerte (logging.logMetrics.create) erstellen.

Zugriffsbereiche in Logging

Zugriffsbereiche sind die alte Methode, Berechtigungen für die Dienstkonten auf Ihren Compute Engine-VM-Instanzen anzugeben.

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 dazu, wie Sie mit dieser Legacy-Methode die Zugriffsebenen für Ihre Dienstkonten festlegen, finden Sie unter Dienstkontoberechtigungen.