Zugriffssteuerung mit IAM

In diesem Dokument wird beschrieben, wie Sie IAM-Rollen (Identity and Access Management) sowie Berechtigungen für den Zugriff auf Logdaten im Logging API, die Log-Explorer und die Google Cloud CLI

Übersicht

IAM-Berechtigungen und Mit Rollen wird festgelegt, ob Sie auf Logs zugreifen können. in der Logging API verwendet, Log-Explorer und die Google Cloud CLI

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.

So verwenden Sie Logging in einer Google Cloud-Ressource wie Google Cloud-Projekt, -Ordner, -Bucket oder -Organisation gehört, muss ein Hauptkonto ein IAM-Rolle mit den entsprechenden Berechtigungen

Vordefinierte Rollen

IAM bietet vordefinierte Rollen, um detaillierten Zugriff auf Google Cloud-Ressourcen und verhindern unerwünschten Zugriff auf andere Ressourcen. Google Cloud erstellt und verwaltet diese Rollen und bei Bedarf aktualisiert, z. B. wenn Logging neuen Funktionen.

In der folgenden Tabelle sind die vordefinierten Rollen für Logging aufgeführt. Für jede Rolle enthält, werden in der Tabelle der Rollentitel, die Beschreibung und Berechtigungen und den Ressourcentyp der niedrigsten Ebene, in dem die Rollen gewährt werden können. Sie können die vordefinierten Rollen auf Google Cloud-Projektebene oder in in den meisten Fällen alle Typen weiter oben im Google Cloud-Hierarchie. Verwenden Sie den Ressourcenattribute für IAM Conditions

Um eine Liste aller die einzelnen Berechtigungen einer Rolle, siehe Metadaten einer Rolle abrufen

Role Permissions

(roles/logging.admin)

Provides all permissions necessary to use all features of Cloud Logging.

Lowest-level resources where you can grant this role:

  • Project

logging.buckets.copyLogEntries

logging.buckets.create

logging.buckets.delete

logging.buckets.get

logging.buckets.list

logging.buckets.undelete

logging.buckets.update

logging.exclusions.*

  • logging.exclusions.create
  • logging.exclusions.delete
  • logging.exclusions.get
  • logging.exclusions.list
  • logging.exclusions.update

logging.fields.access

logging.links.*

  • logging.links.create
  • logging.links.delete
  • logging.links.get
  • logging.links.list

logging.locations.*

  • logging.locations.get
  • logging.locations.list

logging.logEntries.*

  • logging.logEntries.create
  • logging.logEntries.download
  • logging.logEntries.list
  • logging.logEntries.route

logging.logMetrics.*

  • logging.logMetrics.create
  • logging.logMetrics.delete
  • logging.logMetrics.get
  • logging.logMetrics.list
  • logging.logMetrics.update

logging.logServiceIndexes.list

logging.logServices.list

logging.logs.*

  • logging.logs.delete
  • logging.logs.list

logging.notificationRules.*

  • logging.notificationRules.create
  • logging.notificationRules.delete
  • logging.notificationRules.get
  • logging.notificationRules.list
  • logging.notificationRules.update

logging.operations.*

  • logging.operations.cancel
  • logging.operations.get
  • logging.operations.list

logging.privateLogEntries.list

logging.queries.*

  • logging.queries.deleteShared
  • logging.queries.getShared
  • logging.queries.listShared
  • logging.queries.share
  • logging.queries.updateShared
  • logging.queries.usePrivate

logging.settings.*

  • logging.settings.get
  • logging.settings.update

logging.sinks.*

  • logging.sinks.create
  • logging.sinks.delete
  • logging.sinks.get
  • logging.sinks.list
  • logging.sinks.update

logging.usage.get

logging.views.*

  • logging.views.access
  • logging.views.create
  • logging.views.delete
  • logging.views.get
  • logging.views.getIamPolicy
  • logging.views.list
  • logging.views.listLogs
  • logging.views.listResourceKeys
  • logging.views.listResourceValues
  • logging.views.setIamPolicy
  • logging.views.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/logging.bucketWriter)

Ability to write logs to a log bucket.

Lowest-level resources where you can grant this role:

  • Project

logging.buckets.write

(roles/logging.configWriter)

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:

  • Project

logging.buckets.create

logging.buckets.delete

logging.buckets.get

logging.buckets.list

logging.buckets.undelete

logging.buckets.update

logging.exclusions.*

  • logging.exclusions.create
  • logging.exclusions.delete
  • logging.exclusions.get
  • logging.exclusions.list
  • logging.exclusions.update

logging.links.*

  • logging.links.create
  • logging.links.delete
  • logging.links.get
  • logging.links.list

logging.locations.*

  • logging.locations.get
  • logging.locations.list

logging.logMetrics.*

  • logging.logMetrics.create
  • logging.logMetrics.delete
  • logging.logMetrics.get
  • logging.logMetrics.list
  • logging.logMetrics.update

logging.logServiceIndexes.list

logging.logServices.list

logging.logs.list

logging.notificationRules.*

  • logging.notificationRules.create
  • logging.notificationRules.delete
  • logging.notificationRules.get
  • logging.notificationRules.list
  • logging.notificationRules.update

logging.operations.*

  • logging.operations.cancel
  • logging.operations.get
  • logging.operations.list

logging.settings.*

  • logging.settings.get
  • logging.settings.update

logging.sinks.*

  • logging.sinks.create
  • logging.sinks.delete
  • logging.sinks.get
  • logging.sinks.list
  • logging.sinks.update

logging.views.create

logging.views.delete

logging.views.get

logging.views.getIamPolicy

logging.views.list

logging.views.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/logging.fieldAccessor)

Ability to read restricted fields in a log bucket.

Lowest-level resources where you can grant this role:

  • Project

logging.fields.access

(roles/logging.linkViewer)

Ability to see links for a bucket.

logging.links.get

logging.links.list

(roles/logging.logWriter)

Provides the permissions to write log entries.

Lowest-level resources where you can grant this role:

  • Project

logging.logEntries.create

logging.logEntries.route

(roles/logging.privateLogViewer)

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:

  • Project

logging.buckets.get

logging.buckets.list

logging.exclusions.get

logging.exclusions.list

logging.links.get

logging.links.list

logging.locations.*

  • logging.locations.get
  • logging.locations.list

logging.logEntries.list

logging.logMetrics.get

logging.logMetrics.list

logging.logServiceIndexes.list

logging.logServices.list

logging.logs.list

logging.privateLogEntries.list

logging.queries.getShared

logging.queries.listShared

logging.queries.usePrivate

logging.sinks.get

logging.sinks.list

logging.usage.get

logging.views.access

logging.views.get

logging.views.list

resourcemanager.projects.get

(roles/logging.viewAccessor)

Ability to read logs in a view.

Lowest-level resources where you can grant this role:

  • Project

logging.logEntries.download

logging.views.access

logging.views.listLogs

logging.views.listResourceKeys

logging.views.listResourceValues

(roles/logging.viewer)

Provides access to view logs.

Lowest-level resources where you can grant this role:

  • Project

logging.buckets.get

logging.buckets.list

logging.exclusions.get

logging.exclusions.list

logging.links.get

logging.links.list

logging.locations.*

  • logging.locations.get
  • logging.locations.list

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.getShared

logging.queries.listShared

logging.queries.usePrivate

logging.sinks.get

logging.sinks.list

logging.usage.get

logging.views.get

logging.views.list

resourcemanager.projects.get

In den folgenden Abschnitten finden Sie weitere Informationen, die Ihnen bei der Entscheidung helfen, welche Rollen für Ihre Hauptkonten gelten Anwendungsfälle.

Loggingrollen

  • Damit ein Nutzer alle Aktionen in Logging ausführen kann, gewähren Sie den Rolle „Logging-Administrator“ (roles/logging.admin).

  • Damit ein Nutzer Logging-Konfigurationen erstellen und ändern kann, z. B. Senken, Buckets, Ansichten, Links, logbasierten Messwerten oder Ausschlüssen, gewähren Rolle "Autor von Logkonfigurationen" (roles/logging.configWriter).

  • Damit ein Nutzer Logs in den Buckets _Required und _Default lesen kann, Log-Explorer und die Loganalysen-Seite verwenden, Gewähren Sie eine der folgenden Rollen:

    • Für den Zugriff auf alle Logs im Bucket _Required und den Zugriff auf die _Default-Ansicht für den _Default-Bucket, gewähren Sie den Loganzeige (roles/logging.viewer)
    • Für den Zugriff auf alle Logs in den Buckets _Required und _Default: einschließlich Datenzugriffs-Logs, Gewähren Sie die Rolle „Betrachter privater Logs“ (roles/logging.privateLogViewer).
  • Damit ein Nutzer Logs in allen Logansichten eines Projekts lesen kann, müssen Sie diese Berechtigungen erteilen die IAM-Rolle roles/logging.viewAccessor für das Projekt

  • Wenn Sie möchten, dass ein Nutzer Logs nur in einer bestimmten Logansicht lesen kann, haben Sie zwei Möglichkeiten:

    • Erstellen Sie eine IAM-Richtlinie für die Logansicht und fügen Sie dann ein IAM-Bindung an diese Richtlinie, die das Hauptkonto gewährt Zugriff auf die Logansicht.

    • Dem Hauptkonto die IAM-Rolle gewähren von roles/logging.viewAccessor für das Projekt, das die Logansicht enthält aber hängen Sie eine IAM-Bedingung in Die Erteilung wird auf die jeweilige Logansicht beschränkt.

    Informationen zum Erstellen von Logansichten und zum Gewähren von Zugriff finden Sie unter Logansichten für einen Log-Bucket konfigurieren

  • So gewähren Sie einem Nutzer Zugriff auf eingeschränkte LogEntry-Felder (sofern vorhanden): in einem bestimmten Bucket zu gewähren, gewähren Sie den Rolle „Logfeld-Zugriffer“ (roles/logging.fieldAccessor). Weitere Informationen finden Sie unter Zugriff auf Feldebene konfigurieren

  • Damit ein Nutzer Logs mithilfe der Logging API schreiben kann, gewähren Sie Rolle „Logautor“ (roles/logging.logWriter) Diese Rolle gewährt keine Berechtigungen zum Betrachten.

  • Damit das Dienstkonto einer Senke Logs an einen Bucket in einem Google Cloud-Projekt zu verknüpfen, 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 Legen Sie Zielberechtigungen fest.

Rollen auf Projektebene

  • Um den meisten Google Cloud-Diensten Lesezugriff zu gewähren, Erteilen Sie die Rolle „Betrachter“ (roles/viewer).

    Diese Rolle umfasst alle Berechtigungen, die vom Rolle "Loganzeige (roles/logging.viewer)".

  • Um Bearbeitungszugriff auf die meisten Google Cloud-Dienste zu gewähren, Erteilen Sie die Rolle „Bearbeiter“ (roles/editor).

    Diese Rolle umfasst alle Berechtigungen, die vom Rolle "Log-Betrachter" (roles/logging.viewer) und die Berechtigungen für Logeinträge schreiben, Logs löschen und logbasierte Messwerte erstellen Sie können jedoch Mit dieser Rolle können Nutzer keine Senken, lesen Sie Audit-Logs zum Datenzugriff im Bucket _Default, oder Logs in benutzerdefinierten Log-Buckets lesen.

  • Um vollen Zugriff auf die meisten Google Cloud-Dienste zu gewähren, Erteilen Sie die Rolle „Inhaber“ (roles/owner).

Rollen werden gewährt

Informationen zum Zuweisen einer Rolle zu einem Hauptkonto 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 den erforderlichen und wenden Sie sich dann an das Hauptkonto, das als Inhaber für das .

Benutzerdefinierte Rollen

So erstellen Sie eine benutzerdefinierte Rolle mit Logging-Berechtigungen:

Weitere Details zu benutzerdefinierten Rollen finden Sie unter Informationen zu benutzerdefinierten IAM-Rollen.

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
Möglichkeit zur Verwendung von privat gespeicherten Abfragen hinzufügen logging.queries.{list, create, get, update, delete} hinzufügen
Möglichkeit zum Verwenden freigegebener gespeicherter Abfragen hinzufügen logging.queries.{share, getShared, updateShared, deleteShared, listShared} 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.

Zur Verwendung eines der gcloud logging-Befehle müssen Hauptkonten die Berechtigung „serviceusage.services.use“.

Ein Hauptkonto muss auch die IAM-Rolle haben, die der Log-Ressource und dem Anwendungsfall. Weitere Informationen finden Sie unter Berechtigungen für die Befehlszeile.

In der folgenden Liste werden die vordefinierten Rollen und zugehörigen Berechtigungen beschrieben. zur Verwaltung verknüpfter BigQuery-Datasets:

Die zuvor aufgeführten Rollen und Berechtigungen gelten nur für Google Cloud-Seiten zur Beobachtbarkeit, z. B. die Seite Loganalysen. Mit BigQuery zur Verwaltung von Datasets benötigen, benötigen Sie möglicherweise separate Rollen und Berechtigungen. Siehe Zugriffssteuerung mit IAM für BigQuery.

Berechtigungen zum Speichern von Abfragen

In diesem Abschnitt werden die vordefinierten Rollen und die Berechtigungen für Abfragen speichern, freigeben und verwenden auf der Seite Log-Explorer oder Loganalysen Unter Verwendung von „Privat“ gespeichert Abfragen, die nur für Sie sichtbar sind und in denen gespeicherte Abfragen verwendet werden, mit anderen Mitgliedern des Google Cloud-Projekts benötigen unterschiedliche Berechtigungen:

  • Um die Berechtigungen zu erhalten, die Sie zur Verwendung von privat gespeicherten Abfragen benötigen, bitten Sie Ihren Administrator, Ihnen IAM-Rolle Logbetrachter (roles/logging.viewer) für Ihr Projekt.

    Diese vordefinierte Rolle enthält Berechtigungen, die zum Verwenden von privat gespeicherten Abfragen erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

    Erforderliche Berechtigungen

    Die folgenden Berechtigungen sind erforderlich, um privat gespeicherte Abfragen zu verwenden:

    • logging.queries.list
    • logging.queries.create
    • logging.queries.get
    • logging.queries.update
    • logging.queries.delete
  • Um die Berechtigungen zu erhalten, die Sie zum Erstellen, Aktualisieren und Löschen freigegebener Abfragen benötigen, bitten Sie Ihren Administrator, Ihnen IAM-Rolle Logging Admin (roles/logging.admin) für Ihr Projekt

    Diese vordefinierte Rolle enthält Berechtigungen zum Erstellen, Aktualisieren und Löschen freigegebener Abfragen Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

    Erforderliche Berechtigungen

    Zum Erstellen, Aktualisieren und Löschen freigegebener Abfragen sind die folgenden Berechtigungen erforderlich:

    • logging.queries.share
    • logging.queries.updateShared
    • logging.queries.deleteShared
  • Um die Berechtigungen zu erhalten, die Sie zum Auflisten und Abrufen freigegebener Abfragen benötigen, bitten Sie Ihren Administrator, Ihnen IAM-Rolle Logbetrachter (roles/logging.viewer) für Ihr Projekt.

    Diese vordefinierte Rolle enthält Berechtigungen zum Auflisten und Abrufen freigegebener Abfragen. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

    Erforderliche Berechtigungen

    Die folgenden Berechtigungen sind erforderlich, um freigegebene Abfragen aufzulisten und abzurufen:

    • logging.queries.listShared
    • logging.queries.getShared

Berechtigungen für Routinglogs

Informationen zum Festlegen von Zugriffssteuerungen beim Erstellen und Verwalten von Senken zum Weiterleiten von Protokollen, siehe Legen Sie Zielberechtigungen fest.

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:

  • Autor von Logkonfigurationen (roles/logging.configWriter) kann Hauptkonten auflisten, erstellen, abrufen, Logbasierte Messwerte aktualisieren und löschen.

  • Rolle Loganzeige (roles/logging.viewer) enthält Berechtigungen zum Ansehen vorhandener Messwerte. Konkret kann ein Direktor benötigt die Berechtigungen logging.logMetrics.get und logging.logMetrics.list um vorhandene Messwerte zu sehen.

  • Monitoring Viewer Rolle (roles/monitoring.viewer) enthält Leseberechtigungen TimeSeries-Daten. Insbesondere benötigt ein Auftraggeber monitoring.timeSeries.list-Berechtigung zum Lesen von Zeitreihendaten.

  • Der Logging-Administrator (roles/logging.admin) Projektbearbeiter (roles/editor) und Rollen des Projektinhabers (roles/owner) die Berechtigungen zum Erstellen logbasierter Messwerte enthalten. Insbesondere Hauptkonto benötigt die Berechtigung logging.logMetrics.create zum Erstellen logbasierten Messwerten.

Berechtigungen für logbasierte Benachrichtigungsrichtlinien

Zum Erstellen und Verwalten logbasierter Benachrichtigungsrichtlinien benötigt ein Hauptkonto die Logging- und Monitoring-Rollen sowie Berechtigungen:

  • Um die Berechtigungen zu erhalten, die Sie zum Lesen von Logs und zum Verwalten von Logging-Benachrichtigungsregeln benötigen, bitten Sie Ihren Administrator, Ihnen IAM-Rolle Logging Admin (roles/logging.admin) für Ihr Projekt

    Diese vordefinierte Rolle enthält Berechtigungen zum Lesen von Logs und Verwalten von Logging-Benachrichtigungsregeln Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

    Erforderliche Berechtigungen

    Die folgenden Berechtigungen sind erforderlich, um Logs zu lesen und Logging-Benachrichtigungsregeln zu verwalten:

    • logging.queries.listShared
    • logging.queries.getShared
  • Um die Berechtigungen zu erhalten, die Sie zum Verwalten logbasierter Benachrichtigungsrichtlinien und ihrer Benachrichtigungskanäle benötigen, bitten Sie Ihren Administrator, Ihnen folgende IAM-Rollen für Ihr Projekt:

    Diese vordefinierten Rollen enthalten Berechtigungen zum Verwalten logbasierter Benachrichtigungsrichtlinien und ihrer Benachrichtigungskanäle Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

    Erforderliche Berechtigungen

    Die folgenden Berechtigungen sind erforderlich, um logbasierte Benachrichtigungsrichtlinien und ihre Benachrichtigungskanäle zu verwalten:

    • logging.queries.listShared
    • logging.queries.getShared
  • Um die Berechtigungen zu erhalten, die Sie zum Erstellen einer Benachrichtigungsrichtlinie in der Google Cloud CLI benötigen, bitten Sie Ihren Administrator, Ihnen Die IAM-Rolle Service Usage-Nutzer (roles/serviceusage.serviceUsageConsumer) für Ihr Projekt.

    Diese vordefinierte Rolle enthält die Berechtigungen, die zum Erstellen einer Benachrichtigungsrichtlinie in der Google Cloud CLI erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

    Erforderliche Berechtigungen

    Die folgenden Berechtigungen sind erforderlich, um eine Benachrichtigungsrichtlinie in der Google Cloud CLI zu erstellen:

    • logging.queries.listShared
    • logging.queries.getShared

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 Einstellung Stufen des Zugriffs finden Sie unter Dienstkontoberechtigungen: