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 bestimmte Google Cloud-Ressourcen zu gewähren und unerwünschten Zugriff auf andere Ressourcen zu verhindern. 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 die Protokollierung aufgeführt. Für jede Rolle werden in der Tabelle der Rollentitel, die Beschreibung, die enthaltenen Berechtigungen und der Ressourcentyp der untersten 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 einem übergeordneten Typ in der Ressourcenhierarchie zuweisen. Wenn Sie die Rolle „Zugriffsberechtigter für Protokollansicht“ auf eine Protokollansicht in einem Bucket beschränken möchten, verwenden Sie Ressourcenattribute für IAM-Bedingungen.

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

logging.buckets.delete

logging.buckets.deleteTagBinding

logging.buckets.get

logging.buckets.list

logging.buckets.listEffectiveTags

logging.buckets.listTagBindings

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.sqlAlerts.*

  • logging.sqlAlerts.create
  • logging.sqlAlerts.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

observability.scopes.get

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

logging.buckets.delete

logging.buckets.deleteTagBinding

logging.buckets.get

logging.buckets.list

logging.buckets.listEffectiveTags

logging.buckets.listTagBindings

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.sqlAlerts.*

  • logging.sqlAlerts.create
  • logging.sqlAlerts.update

logging.views.create

logging.views.delete

logging.views.get

logging.views.getIamPolicy

logging.views.list

logging.views.update

observability.scopes.get

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

observability.scopes.get

resourcemanager.projects.get

(roles/logging.sqlAlertWriter)

Ability to write SQL Alerts.

logging.sqlAlerts.*

  • logging.sqlAlerts.create
  • logging.sqlAlerts.update

(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

observability.scopes.get

resourcemanager.projects.get

In den folgenden Abschnitten finden Sie weitere 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, gewähren Sie den Rolle „Logging-Administrator“ (roles/logging.admin).

  • Damit ein Nutzer Logging-Konfigurationen erstellen und ändern kann, Die Rolle „Autor von Logkonfigurationen“ (roles/logging.configWriter) wird gewährt. Mit dieser Rolle können Sie Folgendes erstellen oder ändern:

    Diese Rolle reicht nicht aus, um [logbasierte Messwerte][log-overview-lbm] oder [logbasierte Benachrichtigungsrichtlinien][log-overview-lba] zu erstellen. Weitere Informationen zum Rollen, die für diese Aufgaben erforderlich sind, siehe Berechtigungen für logbasierte Messwerte und Berechtigungen für logbasierte Benachrichtigungsrichtlinien.

  • So erlauben Sie einem Nutzer, Logs in den Buckets _Required und _Default zu lesen: oder die Seiten Log-Explorer und Loganalysen verwenden, Gewähren Sie eine der folgenden Rollen:

    • Wenn Sie Zugriff auf alle Logs im Bucket _Required und auf die Ansicht _Default im Bucket _Default benötigen, gewähren Sie die Rolle „Log-Betrachter“ (roles/logging.viewer).
    • Wenn Sie Zugriff auf alle Logs in den Buckets _Required und _Default benötigen, einschließlich Logs zum Datenzugriff, gewähren Sie die Rolle „Betrachter privater Logs“ (roles/logging.privateLogViewer).
  • Wenn ein Nutzer Protokolle in allen Protokollansichten eines Projekts lesen soll, weisen Sie ihm die IAM-Rolle roles/logging.viewAccessor für das Projekt zu.

  • Wenn Sie einem Nutzer nur das Lesen von Logs in einer bestimmten Protokollansicht erlauben möchten, 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.

    • Weisen Sie dem Hauptkonto die IAM-Rolle roles/logging.viewAccessor für das Projekt zu, das die Protokollansicht enthält, fügen Sie aber eine IAM-Bedingung hinzu, um die Berechtigung auf die spezifische Protokollansicht zu beschränken.

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

  • Wenn Sie einem Nutzer Zugriff auf eingeschränkte LogEntry-Felder in einem bestimmten Log-Bucket gewähren möchten, weisen Sie ihm die Rolle „Zugriffsberechtigter für Logs-Feld“ (roles/logging.fieldAccessor) zu. 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.

  • Wenn das Dienstkonto eines Sinks Logs an einen Bucket in einem anderen Google Cloud-Projekt weiterleiten soll, weisen Sie dem Dienstkonto die Rolle „Logs Bucket Writer“ (roles/logging.bucketWriter) zu. Eine Anleitung zum Erteilen von Berechtigungen für ein Dienstkonto finden Sie unter Zielberechtigungen festlegen.

Rollen auf Projektebene

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

    Diese Rolle enthält alle Berechtigungen der Rolle „Logbetrachter“ (roles/logging.viewer).

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

    Diese Rolle enthält 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 Mit dieser Rolle können Nutzer jedoch keine Senken erstellen, keine Audit-Logs zum Datenzugriff im Bucket _Default lesen und keine 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 Informationen zu benutzerdefinierten Rollen finden Sie unter Informationen zu benutzerdefinierten IAM-Rollen

Cloud Logging-Berechtigungen

In der folgenden Tabelle sind die Berechtigungen aufgeführt, die für bestimmte Funktionen von Cloud Logging. In dieser Tabelle finden Sie die Berechtigungen, die Sie benötigen, um Seiten wie den Log-Explorer zu verwenden.

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
Audit-Logs zum Datenzugriff ansehen logging.privateLogEntries.list
Logbasierte Messwerte aufrufen logging.logMetrics.[list, get]
Senken ansehen logging.sinks.[list, get]
Protokollnutzung ansehen logging.usage.get
Logs ausschließen logging.exclusions.[list, create, get, update, delete]

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.

Senken erstellen und verwenden logging.sinks.[list, create, get, update, delete]

Wenn Sie eine Senke erstellen, müssen Sie dem Dienstkonto außerdem eine IAM-Rolle zuweisen, mit der es Logeinträge an das Ziel schreiben kann. Weitere Informationen finden Sie unter Zielberechtigungen festlegen.

Nachdem Ihre Logeinträge an ein unterstütztes Ziel weitergeleitet wurden, wird der Zugriff auf die Logeinträge ausschließlich von IAM-Berechtigungen und -Rollen für das Ziel.

Logbasierte Benachrichtigungen erstellen Siehe Erforderliche Rollen zum Erstellen und Logbasierte Benachrichtigungsrichtlinien verwenden
Logbasierte Messwerte erstellen logging.logMetrics.[list, create, get, update, delete]

Informationen zu anderen IAM-Rollen, die Sie Logbasierte Messwerte erstellen und verwenden müssen, siehe Erforderliche Rollen zum Erstellen und Logbasierte Messwerte verwenden

Private Abfragen speichern und verwenden logging.queries.usePrivate
logging.queries.[listShared,getShared]
Freigegebene Abfragen speichern und verwenden logging.queries.[share, getShared, updateShared, deleteShared, listShared]
Aktuelle Abfragen verwenden logging.queries.[create, list]

Berechtigungen für die Befehlszeile

gcloud logging-Befehle werden durch IAM-Berechtigungen gesteuert.

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

Ein Hauptkonto muss außerdem die IAM-Rolle haben, die der Ressource des Logs und dem Anwendungsfall entspricht. Weitere Informationen finden Sie unter Berechtigungen für die Befehlszeile.

Rollen, die zum Erstellen und Verwenden logbasierter Messwerte erforderlich sind

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.

  • Die Rolle Log-Betrachter (roles/logging.viewer) umfasst Berechtigungen zum Aufrufen vorhandener Messwerte. Konkret kann ein Direktor benötigt die Berechtigungen logging.logMetrics.get und logging.logMetrics.list um vorhandene Messwerte zu sehen.

  • Die Rolle Monitoring-Betrachter (roles/monitoring.viewer) umfasst die Berechtigungen zum Lesen von 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.

Rollen, die zum Erstellen und Verwenden logbasierter Benachrichtigungsrichtlinien erforderlich sind

Zum Erstellen und Verwalten von logbasierten Benachrichtigungsrichtlinien benötigt ein Nutzer die folgenden Rollen und Berechtigungen für Logging und Monitoring:

Wenn Sie Ihre Benachrichtigungsrichtlinie in der Google Cloud CLI erstellen, gilt Folgendes: Rolle oder Berechtigung ist ebenfalls erforderlich:

  • Um die Berechtigung zu erhalten, die Sie zum Erstellen einer Benachrichtigungsrichtlinie mithilfe der Google Cloud CLI benötigen, bitten Sie Ihren Administrator, Ihnen Die IAM-Rolle Service Usage-Nutzer (roles/serviceusage.serviceUsageConsumer) für Ihr Projekt. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

    Diese vordefinierte Rolle enthält die Berechtigung serviceusage.services.use, die zum Erstellen einer Benachrichtigungsrichtlinie mit der Google Cloud CLI erforderlich ist.

    Sie können diese Berechtigung auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Wenn Ihr Google Cloud-Projekt bereits Benachrichtigungskanäle hat, können Sie Ihre Benachrichtigungsrichtlinie so konfigurieren, dass ein vorhandener Kanal ohne zusätzliche Rollen oder Berechtigungen verwendet wird. Wenn Sie jedoch einen Benachrichtigungskanal für Ihre logbasierte Benachrichtigungsrichtlinie erstellen möchten, ist die folgende Rolle oder Berechtigung erforderlich:

  • Um die Berechtigung zu erhalten, die Sie zum Erstellen eines Benachrichtigungskanals für eine logbasierte Benachrichtigungsrichtlinie benötigen, bitten Sie Ihren Administrator, Ihnen IAM-Rolle Bearbeiter von Monitoring-Benachrichtigungskanälen (roles/monitoring.notificationChannelEditor) für Ihr Projekt.

    Diese vordefinierte Rolle enthält die Berechtigung monitoring.notificationChannels.create, die zum Erstellen eines Benachrichtigungskanals für eine protokollbasierte Benachrichtigungsrichtlinie erforderlich ist.

Berechtigungen für SQL-basierte Benachrichtigungsrichtlinien

Bei SQL-basierten Benachrichtigungsrichtlinien werden die Ergebnisse einer SQL-Abfrage anhand von Daten aus Gruppen von Logeinträgen ausgewertet. Informationen zu den Rollen, die zum Erstellen und Verwalten von SQL-basierten Benachrichtigungsrichtlinien erforderlich sind, finden Sie im Abschnitt Vorab des Artikels SQL-Abfrageergebnisse mit einer Benachrichtigungsrichtlinie überwachen.

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 alten Methode zum Festlegen der Zugriffsebenen Ihrer Dienstkonten finden Sie unter Berechtigungen für Dienstkonten.