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 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. | |
datastore.databases.import |
Entitäten in eine Datenbank importieren. | |
datastore.databases.getMetadata |
Metadaten aus einer Datenbank lesen. | |
datastore.databases.list |
Datenbanken in einem Projekt auflisten | |
datastore.databases.create |
Datenbank erstellen | |
datastore.databases.update |
Datenbank aktualisieren. | |
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. | |
Name der Standortberechtigung | Beschreibung | |
datastore.locations.get |
Rufen Sie Details zu einem Datenbankspeicherort ab. Dies ist erforderlich zum Erstellen einer neuen Datenbank. | |
datastore.locations.list |
Listen Sie die verfügbaren Datenbankspeicherorte auf. Dies ist erforderlich zum Erstellen einer neuen Datenbank. |
Vordefinierte 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. |
Benutzerdefinierte Rollen
Wenn die vordefinierten Rollen für Ihre geschäftlichen Anforderungen nicht ausreichen, können Sie eigene benutzerdefinierte Rollen mit selbst definierten Berechtigungen festlegen.
- Erfahren Sie mehr über benutzerdefinierte Rollen.
- Benutzerdefinierte Rollen erstellen und verwalten.
Erforderliche Berechtigungen für API-Methoden
In der folgenden Tabelle sind die Berechtigungen aufgelistet, die der Abfragende haben muss, um eine bestimmte Methode aufzurufen:
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. |
runQuery durch eine typlose Abfrage |
datastore.entities.get datastore.entities.list datastore.statistics.get datastore.statistics.list |
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 |
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 der Google Cloud-Befehlszeile abrufen und festlegen.
- Weitere Informationen zur Anwendung der Google Cloud Console dafür finden Sie im entsprechenden Abschnitt unter Zugriff auf Ressourcen erteilen, ändern und entziehen.
- Weitere Informationen zu den IAM-Methoden finden Sie in Zugriffssteuerung über die API.
- Die
gcloud
-Befehlszeile finden Sie unter Zugriffssteuerung über das gcloud-Tool.