Anleitung zur Zugriffssteuerung

Auf dieser Seite wird beschrieben, wie Stackdriver Logging mithilfe von Cloud Identity and Access Management den Zugriff auf Logging-Daten in Google Cloud-Ressourcen steuert.

Überblick

Cloud IAM-Berechtigungen und -Rollen bestimmen, wie Sie die Logging API, die Loganzeige der Google Cloud Console sowie das gcloud-Befehlszeilentool verwenden können.

Logs befinden sich in Google Cloud-Projekten, -Organisationen, -Ordnern und -Rechnungskonten. Jede dieser Google Cloud-Ressourcen kann eigene Mitglieder mit eigenen Stackdriver Logging-Rollen und -Berechtigungen haben.

Wenn Sie Logging mit den Logging-Daten in einem Google Cloud-Projekt verwenden möchten, müssen Sie ein Mitglied sein und eine Cloud IAM-Rolle haben, die Ihnen die Berechtigung zur Verwendung von Logging gewährt. Die folgenden Cloud IAM-Rollen gelten für das Logging:

  • roles/logging.viewer (Logbetrachter) bietet Ihnen Lesezugriff auf alle Logging-Features mit Ausnahme von Access Transparency-Logs sowie Audit-Logs zum Datenzugriff.

  • roles/logging.privateLogViewer (Betrachter privater Logs) enthält roles/logging.viewer sowie die Möglichkeit, Access Transparency-Logs und Audit-Logs zum Datenzugriff zu lesen.

  • roles/logging.logWriter (Logautor) kann Dienstkonten zugewiesen werden, um Anwendungen genau die zum Schreiben von Logs erforderlichen Berechtigungen zu gewähren. Diese Rolle gewährt keine Berechtigungen zum Betrachten.

  • roles/logging.configWriter (Autor von Logkonfigurationen) gibt Ihnen die Berechtigung, logbasierte Messwerte und Ausschlüsse zu erstellen und Senken zu exportieren. Um für diese Aktionen die Loganzeige (Console) zu verwenden, fügen Sie roles/logging.viewer hinzu.

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

  • roles/viewer (Projektbetrachter) ist mit roles/logging.viewer identisch. Mit dieser Rolle erhalten Sie Lesezugriff auf alle Logging-Features mit Ausnahme von Access Transparency-Logs und Audit-Logs zum Datenzugriff.

  • roles/editor (Projektbearbeiter) umfasst die Berechtigungen von roles/logging.viewer sowie Berechtigungen zum Schreiben von Logeinträgen, zum Löschen von Logs und zum Erstellen logbasierter Messwerte. Mit dieser Rolle können Sie keine Exportsenken erstellen und keine Access Transparency-Logs oder Audit-Logs zum Datenzugriff lesen.

  • roles/owner (Projektinhaber) gewährt Ihnen vollen Zugriff auf Logging, einschließlich Access Transparency-Logs und Audit-Logs zum Datenzugriff.

Weitere Informationen zu den Rollen und Berechtigungen in Logging finden Sie auf dieser Seite unter Berechtigungen und Rollen.

Rollen zuweisen

Wenn Sie einem Mitglied eine Rolle zuweisen möchten, müssen Sie die Berechtigungen in roles/owner (Projektinhaber) haben. Informationen zum Gewähren von Rollen finden Sie unter Zugriff gewähren, ändern und aufheben.

Wenn Sie versuchen, auf eine Google Cloud-Ressource zuzugreifen und nicht die erforderlichen Berechtigungen haben, wenden Sie sich an das Mitglied, das als Inhaber der Ressource aufgeführt ist.

Berechtigungen und Rollen

In der folgenden Tabelle sind die Cloud IAM-Rollen aufgeführt, die Zugriff auf Stackdriver Logging gewähren. Jede Rolle verfügt über einen bestimmten Satz an Logging-Berechtigungen. Rollen können Mitgliedern der aufgelisteten Ressourcentypen zugewiesen werden.

a.b.{x,y} bedeutet in der Tabelle a.b.x und a.b.y.

Rollenname Rollentitel Logging-Berechtigungen Ressourcentyp
roles/
logging.viewer
Loganzeige logging.logEntries.list
logging.logMetrics.{list, get}
logging.logs.list
logging.logServiceIndexes.list
logging.logServices.list
logging.sinks.{list, get}
logging.usage.get
resourcemanager.projects.get
Projekt, Organisation,
Ordner, Rechnungskonto
roles/
logging.privateLogViewer
Betrachter privater Logs roles/logging.viewer-Berechtigungen sowie:
logging.privateLogEntries.list
Projekt, Organisation,
Ordner, Rechnungskonto
roles/
logging.logWriter
Logautor logging.logEntries.create Projekt, Organisation,
Ordner, Rechnungskonto
roles/
logging.configWriter
Autor von Logkonfigurationen logging.buckets.{list, create, get, update, delete}
logging.exclusions.{list, create, get, update, delete}
logging.logMetrics.{list, create, get, update, delete}
logging.logs.list
logging.logServiceIndexes.list
logging.logServices.list
logging.sinks.{list, create, get, update, delete}
resourcemanager.projects.{get, list}
Projekt, Organisation,
Ordner, Rechnungskonto
roles/
logging.admin
Logging-Administrator logging.exclusions.{list, create, get, update, delete}
logging.logEntries.{create, list}
logging.logMetrics.{list, create, get, update, delete}
logging.logs.{delete,list}
logging.logServiceIndexes.list
logging.logServices.list
logging.privateLogEntries.list
logging.sinks.{list, create, get, update, delete}
resourcemanager.projects.get
logging.usage.get
Projekt, Organisation,
Ordner, Rechnungskonto
roles/viewer Betrachter logging.logEntries.list
logging.logMetrics.{list, get}
logging.logs.list
logging.logServiceIndexes.list
logging.logServices.list
logging.sinks.{list, get}
resourcemanager.projects.get
Projekt
roles/editor Bearbeiter roles/viewer-Logging-Berechtigungen sowie:
logging.logEntries.create
logging.logMetrics.{create, update, delete}
logging.logs.delete
Projekt
roles/owner Inhaber roles/editor-Logging-Berechtigungen sowie:
logging.privateLogEntries.list
logging.sinks.{create, update, delete}
Projekt

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, aus den Berechtigungen unter API-Berechtigungen aus.

  • Wählen Sie für eine Rolle, die Berechtigungen zur Verwendung der Loganzeige gewährt, aus Berechtigungsgruppen unter Console-Berechtigungen aus.

  • Rufen Sie für eine Rolle, die Berechtigungen zur Verwendung von gcloud logging gewährt, die Übersicht zum gcloud-Tool auf.

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

API-Berechtigungen

Für Logging API-Methoden sind spezielle Cloud IAM-Berechtigungen erforderlich. In der folgenden Tabelle finden Sie die für die API-Methoden notwendigen Berechtigungen.

Logging-Methode Erforderliche Berechtigung Ressourcentyp
billingAccounts.logs.* logging.logs.* (siehe projects.logs.*) Rechnungskonten
billingAccounts.sinks.* logging.sinks.* (siehe projects.sinks.*) Rechnungskonten
entries.list 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
monitoredResourceDescriptors.list (keine) (keine)
organizations.logs.* logging.logs.* (siehe projects.logs.*) Organisationen
organizations.sinks.* logging.sinks.* (siehe projects.sinks.*) 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.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

Console-Berechtigungen

In der folgenden Tabelle sind die für die Verwendung der Loganzeige erforderlichen Berechtigungen aufgeführt.

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
Erlaubnis zum Anzeigen logbasierter Messwerte hinzufügen logging.logMetrics.{list, get} hinzufügen
Erlaubnis zum Anzeigen von Exporten 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 zum Exportieren von Logs hinzufügen logging.sinks.{list, create, get, update, delete} hinzufügen
Erlaubnis zum Erstellen logbasierter Messwerte hinzufügen logging.logMetrics.{list, create, get, update, delete} hinzufügen

Befehlszeilenberechtigungen

gcloud logging-Befehle werden von Cloud Identity and Access Management-Berechtigungen gesteuert.

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

Sie müssen außerdem die Cloud IAM-Rolle haben, die dem Speicherort des Logs und Ihrem Anwendungsfall entspricht. Weitere Informationen finden Sie unter Berechtigungen der Befehlszeilenschnittstelle.

Exportierte Logs aufrufen

Zum Erstellen einer Senke für den Export von Logs benötigen Sie die Berechtigung roles/logging.configWriter, roles/logging.admin oder roles/owner.

Sobald eine Senke mit dem Logexport beginnt, hat sie uneingeschränkten Zugriff auf alle eingehenden Logeinträge. Senken können private Logeinträge exportieren, einschließlich Access Transparency-Logs und Audit-Logs zum Datenzugriff.

Nachdem Ihre Logeinträge exportiert wurden, wird der Zugriff auf die exportierten Kopien vollständig durch die Cloud IAM-Berechtigungen und -Rollen des Ziels – Cloud Storage, BigQuery oder Pub/Sub – gesteuert.

Zugriffsbereiche in Logging

Zugriffsbereiche sind die Legacy-Methode zum Festlegen von Berechtigungen für Ihre Compute Engine-VM-Instanzen. Für die Logging API gelten folgende Zugriffsbereiche:

Zugriffsbereich Erteilte Berechtigungen
https://www.googleapis.com/auth/logging.read role/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

Best Practices

Nachdem nun Cloud IAM-Rollen verfügbar sind, ist es sinnvoll, allen Ihren VM-Instanzen den Berechtigungsumfang "Uneingeschränkter Zugriff auf alle aktivierten Google Cloud APIs" zuzuweisen:

https://www.googleapis.com/auth/cloud-platform

Sie können im Dienstkonto Ihrer VM-Instanz spezielle Cloud IAM-Rollen zuweisen, um den Zugriff auf bestimmte APIs einzuschränken. Weitere Informationen finden Sie unter Dienstkontoberechtigungen.