Identitäts- und Zugriffsverwaltung

Google Cloud bietet mit der Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM) die Möglichkeit, bestimmten Google Cloud-Ressourcen detaillierte Zugriffsrechte zuzuweisen und den unerwünschten Zugriff auf andere Ressourcen zu verhindern. Auf dieser Seite werden die IAM-Rollen für Firestore im Datastore-Modus beschrieben. Eine genaue Beschreibung von IAM finden Sie in der IAM-Dokumentation.

Mit IAM können Sie außerdem das Sicherheitsprinzip der geringsten Berechtigung anwenden und somit nur den erforderlichen Zugriff auf Ihre Ressourcen gewähren.

Mit IAM steuern Sie, welche Nutzer welche Rollen haben und somit berechtigt sind, auf bestimmte Ressourcen zuzugreifen, indem Sie IAM-Richtlinien festlegen. IAM-Richtlinien gewähren einem Nutzer bestimmte Rollen und dadurch bestimmte Berechtigungen. Sie können einem Nutzer beispielsweise die Rolle datastore.indexAdmin zuweisen und der Nutzer kann dadurch Indexe erstellen, ändern, löschen, auflisten oder aufrufen.

Berechtigungen und Rollen

In diesem Abschnitt werden die Berechtigungen und Rollen zusammengefasst, die Firestore im Datastore-Modus unterstützt.

Berechtigungen

In der folgenden Tabelle sind die Berechtigungen aufgelistet, die der Aufrufer besitzen muss, um eine bestimmte Methode aufrufen zu können:

Methode Erforderliche Berechtigung(en)
allocateIds datastore.entities.allocateIds
beginTransaction datastore.databases.get
commit für Insert-Vorgang datastore.entities.create
commit für Upsert-Vorgang datastore.entities.create
datastore.entities.update
commit für Update-Vorgang datastore.entities.update
commit für Delete-Vorgang datastore.entities.delete
commit für Lookup-Vorgang datastore.entities.get

Informationen zum Nachschlagen von Metadaten oder Statistiken finden Sie unter Erforderliche Berechtigungen für Metadaten und Statistiken.
commit für eine Abfrage datastore.entities.list
datastore.entities.get (wenn die Abfrage keine ausschließlich schlüsselbasierte Abfrage ist)

Informationen zum Abfragen von Metadaten oder Statistiken finden Sie unter Erforderliche Berechtigungen für Metadaten und Statistiken.
lookup datastore.entities.get

Informationen zum Nachschlagen von Metadaten oder Statistiken finden Sie unter Erforderliche Berechtigungen für Metadaten und Statistiken.
rollback datastore.databases.get
runQuery datastore.entities.list
datastore.entities.get (wenn die Abfrage keine ausschließlich schlüsselbasierte Abfrage ist)

Informationen zum Abfragen von Metadaten oder Statistiken finden Sie unter Erforderliche Berechtigungen für Metadaten und Statistiken.

Erforderliche Berechtigungen für Metadaten und Statistiken

In der folgenden Tabelle werden die Berechtigungen aufgeführt, die zum Aufrufen der Methoden für Metadaten und Statistiken benötigt werden.

Methode Erforderliche Berechtigung(en)
lookup von Entitäten mit Artnamen, die mit __Stat_*__ übereinstimmen datastore.statistics.get
runQuery unter Verwendung von Arten mit Namen, die mit __ Stat _*__ übereinstimmen datastore.statistics.get
datastore.statistics.list
runQuery unter Verwendung der Art __ Namespace __ datastore.namespaces.get
datastore.namespaces.list

Rollen

In IAM wird für jede Datastore API-Methode vorausgesetzt, dass das Konto, von dem die API-Anfrage ausgeht, die entsprechenden Berechtigungen zur Verwendung der Ressource hat. Berechtigungen werden durch die Festlegung von Richtlinien gewährt, die wiederum einem Nutzer, einer Gruppe oder einem Dienstkonto Rollen zuweist. Zusätzlich zu den einfachen Rollen Inhaber, Bearbeiter und Betrachter können Sie den Nutzern Ihres Projekts für Firestore im Datastore-Modus Rollen zuweisen.

In der folgenden Tabelle werden die IAM-Rollen von Firestore im Datastore-Modus aufgeführt. Sie können einem Nutzer, einer Gruppe oder einem Dienstkonto mehrere Rollen zuweisen.

Rolle Berechtigungen Beschreibung
roles/datastore.owner
mit
roles/appengine.appAdmin
appengine.applications.get
datastore.databases.*
datastore.entities.*
datastore.indexes.*
datastore.namespaces.*
datastore.operations.*
datastore.statistics.*
resourcemanager.projects.get
resourcemanager.projects.list
Uneingeschränkter Zugriff auf die Datenbankinstanz.
roles/datastore.owner
ohne
roles/appengine.appAdmin
appengine.applications.get
datastore.databases.*
datastore.entities.*
datastore.indexes.*
datastore.namespaces.*
datastore.operations.*
datastore.statistics.*
resourcemanager.projects.get
resourcemanager.projects.list
Uneingeschränkter Zugriff auf die Datenbankinstanz mit folgenden Ausnahmen: der Nutzer, die Gruppe oder das Dienstkonto kann nicht:
roles/datastore.user appengine.applications.get
datastore.databases.get
datastore.entities.*
datastore.indexes.list
datastore.namespaces.get
datastore.namespaces.list
datastore.statistics.get
datastore.statistics.list
resourcemanager.projects.get
resourcemanager.projects.list
Lese-/Schreibzugriff auf Daten in einer Datenbank im Datastore-Modus. Für Anwendungsentwickler und Dienstkonten bestimmt.
roles/datastore.viewer appengine.applications.get
datastore.databases.get
datastore.entities.get
datastore.entities.list
datastore.indexes.get
datastore.indexes.list
datastore.namespaces.get
datastore.namespaces.list
datastore.statistics.get
datastore.statistics.list
resourcemanager.projects.get
resourcemanager.projects.list
Lesezugriff auf alle Ressourcen der Datenbank im Datastore-Modus.
roles/datastore.importExportAdmin appengine.applications.get
datastore.databases.export
datastore.databases.import
datastore.operations.cancel
datastore.operations.get
datastore.operations.list
resourcemanager.projects.get
resourcemanager.projects.list
Vollzugriff für die Verwaltung von Importen und Exporten.
roles/datastore.indexAdmin appengine.applications.get
datastore.indexes.*
resourcemanager.projects.get
resourcemanager.projects.list
Vollzugriff zurVerwaltung von Indexdefinitionen.

Berechtigungen

In der folgenden Tabelle werden die Berechtigungen aufgeführt, die Firestore im Datastore-Modus unterstützt.

Name der Datenbankberechtigung Beschreibung
datastore.databases.export Entitäten aus einer Datenbank exportieren.
datastore.databases.get Transaktion beginnen oder Rollback der Transaktion durchführen.
Metadaten aus einer Datenbank lesen.
datastore.databases.import Entitäten in eine Datenbank importieren.
Name der Entitätsberechtigungen Beschreibung
datastore.entities.allocateIds IDs für Schlüssel mit unvollständigem Schlüsselpfad zuordnen.
datastore.entities.create Entität erstellen.
datastore.entities.delete Entität löschen.
datastore.entities.get Entität lesen.
datastore.entities.list Schlüssel der Entitäten in einem Projekt auflisten.
(datastore.entities.get ist für den Zugriff auf die Entitätsdaten erforderlich.)
datastore.entities.update Entität aktualisieren.
Name der Indexberechtigung Beschreibung
datastore.indexes.create Index erstellen.
datastore.indexes.delete Index löschen.
datastore.indexes.get Metadaten aus einem Index lesen.
datastore.indexes.list Indexe in einem Projekt auflisten.
datastore.indexes.update Index aktualisieren.
Name der Namespace-Berechtigung Beschreibung
datastore.namespaces.get Metadaten aus einem Namespace abrufen.
datastore.namespaces.list Namespaces in einem Projekt auflisten.
Name der Vorgangsberechtigung Beschreibung
datastore.operations.cancel Einen lange laufenden Vorgang abbrechen.
datastore.operations.delete Einen lange laufenden Vorgang löschen.
datastore.operations.get Ruft den letzten Status eines lange laufende Vorgangs ab.
datastore.operations.list Lange laufende Vorgänge auflisten.
Name der Projektberechtigung Beschreibung
resourcemanager.projects.get Ressourcen im Projekt durchsuchen.
resourcemanager.projects.list Eigene Projekte auflisten.
Name der Statistikberechtigung Beschreibung
datastore.statistics.get Statistikentitäten abrufen.
datastore.statistics.list Schlüssel der Statistikentitäten auflisten.
(datastore.statistics.get ist für den Zugriff auf die Entitätsdaten erforderlich.)
Name der App Engine-Berechtigung Beschreibung
appengine.applications.get Lesezugriff auf die gesamte App Engine-Anwendungskonfiguration und die Einstellungen.

Erforderliche Rollen zum Erstellen einer Datenbankinstanz im Datastore-Modus

Zum Erstellen einer neuen Datenbankinstanz im Datastore-Modus benötigen Sie entweder die Rolle Inhaber oder die Rolle Datastore-Inhaber.

Datenbanken im Datastore-Modus erfordern eine aktive App Engine-Anwendung. Wenn im Projekt keine Anwendung vorhanden ist, erstellt Firestore im Datastore-Modus eine Anwendung für Sie. In diesem Fall ist die Berechtigung appengine.applications.create der Inhaber-Rolle oder eine benutzerdefinierte IAM-Rolle mit dieser Berechtigung erforderlich.

Latenz der Rollenänderung

Firestore im Datastore-Modus speichert die IAM-Berechtigungen für fünf Minuten im Cache, sodass es bis zu fünf Minuten dauern kann, bis eine Rollenänderung wirksam wird.

IAM verwalten

Sie können IAM-Richtlinien mithilfe der Google Cloud Console, der IAM-Methoden oder des gcloud-Befehlszeilentools abrufen und festlegen.

Weitere Informationen