Auf dieser Seite wird beschrieben, wie Cloud Logging mithilfe von IAM (Identity and Access Management) den Zugriff auf Logging-Daten in Google Cloud-Ressourcen steuert.
Übersicht
IAM-Berechtigungen und -Rollen bestimmen, wie Sie die Logging API, den Log-Explorer und das gcloud
-Befehlszeilentool verwenden können.
Logs sind in Log-Buckets von Google Cloud-Projekten, Organisationen, Ordnern und Rechnungskonten enthalten. Jede dieser Google Cloud-Ressourcen kann eigene Mitglieder mit eigenen Cloud Logging-Rollen und -Berechtigungen haben.
Wenn Sie Logging für die Logging-Daten in einem Google Cloud-Projekt nutzen möchten, müssen Sie Mitglied sein und eine IAM-Rolle haben, die Ihnen die Berechtigung zur Anwendung von Logging gewährt. Die folgenden IAM-Rollen sind für Logging relevant:
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. Diese Rolle gilt nur für
_Required
- und_Default
-Buckets.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.bucketWriter (Autor von Log-Buckets) kann Dienstkonten zugewiesen 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 sowie Senken zu exportieren. Um den Log-Explorer (Console) für diese Aktionen zu verwenden, fügen Sie roles/logging.viewer hinzu.
roles/logging.admin (Logging-Administrator) gewährt Ihnen alle Berechtigungen im Zusammenhang mit Logging.
roles/logging.viewAccessor (Zugriffssteuerung für Logs) gibt Ihnen die Berechtigung, Logs in einer Ansicht zu lesen. Verwenden Sie eine IAM-Bedingung, um diese Rolle auf eine Ansicht in einem bestimmten Bucket einzuschränken. Ein Beispiel finden Sie unter Logs aus einem Bucket lesen.
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. Diese Rolle gilt nur für
_Required
- und_Default
-Buckets.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 IAM-Rollen aufgeführt, die Zugriff auf Cloud Logging gewähren. Zu jeder Rolle gehört ein bestimmter 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.exclusions. {list ,
get }logging.locations. {list ,
get }logging.logEntries.list logging.logMetrics. {list ,
get }logging.views. {list ,
get }logging.logs.list logging.logServiceIndexes.list logging.logServices.list logging.queries.listShared logging.sinks. {list ,
get }logging.buckets. {list ,
get }logging.usage.get resourcemanager.projects.get logging.queries. {get ,
list ,
update ,
create ,
delete }
|
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 Log-Konfigurationen | logging.buckets. {list ,
create ,
get ,
update ,
delete ,
undelete }logging.cmekSettings. {get ,
update }logging.exclusions. {list ,
create ,
get ,
update ,
delete }logging.locations. {list ,
get }logging.logMetrics. {list ,
create ,
get ,
update ,
delete }logging.logs.list logging.logServiceIndexes.list logging.logServices.list logging.sinks. {list ,
create ,
get ,
update ,
delete }logging.views. {list ,
create ,
get ,
update ,
delete }resourcemanager.projects. {get ,
list }
|
Projekt, Organisation, Ordner, Rechnungskonto |
roles/ logging.bucketWriter |
Log-Bucket-Autor | logging.buckets.write |
Projekt |
roles/ logging.viewAccessor |
Zugriffsberechtigter für Logbetrachtung | logging.views. {access ,
listLogs ,
listResourceKeys ,
listResourceValues } |
Projekt, Organisation, Ordner, Rechnungskonto |
roles/ logging.admin |
Logging-Administrator | logging.exclusions. {list ,
create ,
get ,
update ,
delete }logging.locations. {list ,
get }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 }logging.buckets. {list ,
get ,
update ,
create ,
delete ,
undelete }logging.views. {list ,
access ,
create ,
get ,
update ,
delete ,
listLogs ,
listResourceKeys ,
listResourceValues }logging.cmekSettings. {get ,
update }logging.usage.get resourcemanager.projects. {get ,
list }logging.queries. {get ,
list ,
update ,
create ,
delete ,
share ,
updateShared ,
listShared } |
Projekt, Organisation, Ordner, Rechnungskonto |
roles/viewer |
Betrachter | logging.buckets. {list ,
get }logging.cmekSettings.get logging.exclusions. {list ,
get }logging.locations. {list ,
get }logging.logEntries. {list ,
download }logging.logMetrics. {list ,
get }logging.logs.list logging.logServiceIndexes.list logging.logServices.list logging.sinks. {list ,
get }logging.usage.get logging.views. {list ,
get ,
listLogs ,
listResourceValues ,
listResourceKeys }resourcemanager.projects.get logging.queries. {get ,
list ,
update ,
create ,
delete ,
listShared } |
Projekt, Organisation, Ordner |
roles/editor |
Editor | roles/viewer Logging-Berechtigungen sowie:logging.cmekSettings.update logging.logEntries.create logging.logMetrics. {create ,
update ,
delete }logging.logs.delete logging.queries. {get ,
list ,
update ,
create ,
delete ,
listShared }logging.views. {create ,
update ,
delete } |
Projekt, Organisation, Ordner |
roles/owner |
Inhaber | roles/editor Logging-Berechtigungen sowie:logging.buckets. {create ,
update ,
delete ,
undelete }logging.exclusions. {create ,
update ,
delete }logging.privateLogEntries.list logging.sinks. {create ,
update ,
delete }logging.queries. {get ,
list ,
update ,
create ,
delete ,
share ,
updateShared ,
listShared }logging.views.access |
Projekt, Organisation, Ordner |
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 von Log-Explorer 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 zumgcloud
-Tool auf.
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.
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.* ) |
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 |
Konsolenberechtigungen
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 |
Erlaubnis zum Ansehen 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 durch IAM-Berechtigungen gesteuert.
Um einen der gcloud logging
-Befehle zu verwenden, benötigen Sie die Berechtigung serviceusage.services.use
.
Sie müssen außerdem die 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 IAM-Berechtigungen und -Rollen des Ziels – Cloud Storage, BigQuery oder Pub/Sub – gesteuert.
Zugriffsbereiche in Logging
Zugriffsbereiche sind die alte 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 | 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 |
Best Practices
Nachdem nun 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 IAM-Rollen zuweisen, um den Zugriff auf bestimmte APIs einzuschränken. Weitere Informationen finden Sie unter Dienstkontoberechtigungen.
Wenn Sie eine benutzerdefinierte Rolle erstellen, die Berechtigungen zum Verwalten von Ausschlüssen enthält, empfehlen wir, die Rolle
logging.sinks.*
statt der Berechtigungenlogging.exclusions.*
zu gewähren.Die Verwaltung von Ausschlüssen ist Teil der Log-Senken. Daher sind alle Berechtigungen für die Verwaltung von Senken, einschließlich Ausschlüssen, in den
logging.sinks.*
-Berechtigungen enthalten.