Identity and Access Management (IAM)
Zugriff auf Ressourcen mit der Identitäts- und Zugriffsverwaltung (IAM) verwalten Mit IAM können Sie detaillierteren Zugriff auf bestimmte Google Cloud Ressourcen gewähren und unerwünschten Zugriff auf andere Ressourcen verhindern. Auf dieser Seite werden die IAM-Berechtigungen und -Rollen für Firestore beschrieben. Eine ausführliche Beschreibung von IAM finden Sie in der IAM-Dokumentation.Durch IAM haben Sie die Möglichkeit, das Prinzip der geringsten Berechtigung anzuwenden und somit nur den notwendigen Zugriff auf Ihre Ressourcen zu gewähren.
Durch das Festlegen von IAM-Richtlinien können Sie steuern, wer (Nutzer) welche (Rolle) Berechtigungen für welche Ressourcen hat.
IAM-Richtlinien gewähren einem Nutzer eine oder mehrere Rollen und dadurch bestimmte Berechtigungen. Sie können beispielsweise einem Nutzer die Rolle datastore.indexAdmin
zuweisen, wodurch der Nutzer Indexe erstellen, ändern, löschen, auflisten oder ansehen kann.
Berechtigungen und Rollen
In diesem Abschnitt werden die Berechtigungen und Rollen zusammengefasst, die von Firestore unterstützt werden.
Erforderliche Berechtigungen für API-Methoden
In der folgenden Tabelle sind die Berechtigungen aufgeführt, die der Aufrufer zur Ausführung der einzelnen Aktionen benötigt:
Methode | Erforderliche Berechtigungen |
---|---|
projects.databases.MongoDBCompatible |
|
ListDatabases |
datastore.databases.getMetadata |
ListIndexes |
datastore.indexes.list |
Find |
datastore.entities.get datastore.entities.list |
Aggregate |
datastore.entities.get datastore.entities.list |
GetMore |
Dieselben Berechtigungen, die für den Aufruf erforderlich waren, durch den der Cursor erstellt wurde. |
ListCollections |
datastore.entities.list |
Count |
datastore.entities.list |
Distinct |
datastore.entities.get datastore.entities.list |
CommitTransaction |
datastore.databases.get |
AbortTransaction |
datastore.databases.get |
EndSessions |
datastore.databases.get |
KillCursors |
datastore.databases.get |
Insert |
datastore.entities.create |
Update |
datastore.entities.get datastore.entities.list datastore.entities.update datastore.entities.create (nur für Upsert) |
FindAndModify |
datastore.entities.get datastore.entities.list datastore.entities.update (nur für Ersetzen oder Aktualisieren)datastore.entities.create (nur für Upsert)datastore.entities.delete (nur für Löschen) |
CreateCollection |
datastore.entities.create |
projects.databases.indexes |
|
create |
datastore.indexes.create |
delete |
datastore.indexes.delete |
get |
datastore.indexes.get |
list |
datastore.indexes.list |
projects.databases |
|
create |
datastore.databases.create |
delete |
datastore.databases.delete |
get |
datastore.databases.getMetadata |
list |
datastore.databases.list |
patch |
datastore.databases.update |
Wiederherstellen | datastore.backups.restoreDatabase |
projects.locations |
|
get |
datastore.locations.get |
list |
datastore.locations.list |
projects.databases.backupschedules |
|
get |
datastore.backupSchedules.get |
list |
datastore.backupSchedules.list |
create |
datastore.backupSchedules.create |
update |
datastore.backupSchedules.update |
delete |
datastore.backupSchedules.delete |
projects.locations.backups |
|
get |
datastore.backups.get |
list |
datastore.backups.list |
delete |
datastore.backups.delete |
projects.databases.usercreds |
|
get |
datastore.userCreds.get |
list |
datastore.userCreds.list |
create |
datastore.userCreds.create |
enable |
datastore.userCreds.update |
disable |
datastore.userCreds.update |
resetPassword |
datastore.userCreds.update |
delete |
datastore.userCreds.delete |
Vordefinierte Rollen
Bei IAM erfordert jede API-Methode in Firestore, dass das Konto, das die API-Anfrage durchführt, 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 Firestore-Rollen zuweisen.
In der folgenden Tabelle sind die Firestore-IAM-Rollen aufgeführt. Sie können einem Nutzer, einer Gruppe oder einem Dienstkonto mehrere Rollen zuweisen.
Rolle | Berechtigungen | Beschreibung |
---|---|---|
roles/datastore.owner |
appengine.applications.get datastore.* resourcemanager.projects.get resourcemanager.projects.list | Vollzugriff auf Firestore. |
roles/datastore.user |
appengine.applications.get datastore.databases.get datastore.databases.getMetadata datastore.databases.list datastore.entities.* datastore.indexes.list datastore.namespaces.get datastore.namespaces.list datastore.statistics.get datastore.statistics.list resourcemanager.projects.get resourcemanager.projects.list |
Lese- und Schreibzugriff auf Daten in einer Firestore-Datenbank. Für Anwendungsentwickler und Dienstkonten bestimmt. |
roles/datastore.viewer |
appengine.applications.get datastore.databases.get datastore.databases.getMetadata datastore.databases.list 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 Firestore-Ressourcen. |
roles/datastore.indexAdmin |
appengine.applications.get datastore.databases.getMetadata datastore.indexes.* resourcemanager.projects.get resourcemanager.projects.list |
Vollzugriff zurVerwaltung von Indexdefinitionen. |
roles/datastore.backupSchedulesViewer |
datastore.backupSchedules.get datastore.backupSchedules.list |
Lesezugriff auf Zeitpläne für Sicherungen in einer Firestore-Datenbank. |
roles/datastore.backupSchedulesAdmin |
datastore.backupSchedules.get datastore.backupSchedules.list datastore.backupSchedules.create datastore.backupSchedules.update datastore.backupSchedules.delete datastore.databases.list datastore.databases.getMetadata |
Vollzugriff auf Zeitpläne für Sicherungen in einer Firestore-Datenbank. |
roles/datastore.backupsViewer |
datastore.backups.get datastore.backups.list |
Lesezugriff auf Sicherungsinformationen an einem Firestore-Speicherort. |
roles/datastore.backupsAdmin |
datastore.backups.get datastore.backups.list datastore.backups.delete |
Vollzugriff auf Sicherungen an einem Firestore-Speicherort. |
roles/datastore.restoreAdmin |
datastore.backups.get datastore.backups.list datastore.backups.restoreDatabase datastore.databases.list datastore.databases.create datastore.databases.getMetadata datastore.operations.list datastore.operations.get |
Möglichkeit, ein Firestore-Back-up in einer neuen Datenbank wiederherzustellen Mit dieser Rolle können auch neue Datenbanken erstellt werden, nicht unbedingt durch Wiederherstellen aus einer Sicherung. |
roles/datastore.statisticsViewer |
resourcemanager.projects.get resourcemanager.projects.list datastore.databases.getMetadata datastore.insights.get datastore.keyVisualizerScans.get datastore.keyVisualizerScans.list datastore.statistics.list datastore.statistics.get |
Lesezugriff auf Statistiken, Statistiken und Key Visualizer-Scans. |
roles/datastore.userCredsViewer |
datastore.userCreds.get datastore.userCreds.list |
Lesezugriff auf Nutzeranmeldedaten in einer Firestore-Datenbank. |
roles/datastore.userCredsAdmin |
datastore.userCreds.get datastore.userCreds.list datastore.userCreds.create datastore.userCreds.update datastore.userCreds.delete datastore.databases.list datastore.databases.getMetadata |
Vollzugriff auf Nutzeranmeldedaten in einer Firestore-Datenbank. |
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.
Berechtigungen
In der folgenden Tabelle sind die von Firestore unterstützten Berechtigungen aufgeführt.
Name der Datenbankberechtigung | Beschreibung | |
---|---|---|
datastore.databases.get |
Transaktion beginnen oder Rollback der Transaktion durchführen. | |
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. | |
datastore.databases.delete |
Datenbank löschen | |
datastore.databases.createTagBinding |
Tag-Bindung für eine Datenbank erstellen | |
datastore.databases.deleteTagBinding |
Tag-Bindung für eine Datenbank löschen | |
datastore.databases.listTagBindings |
Alle Tag-Bindungen für eine Datenbank auflisten | |
datastore.databases.listEffectiveTagBindings |
Gültige Tag-Bindungen für eine Datenbank auflisten | |
Name der Entitätsberechtigungen | Beschreibung | |
datastore.entities.create |
Dokument erstellen. | |
datastore.entities.delete |
Dokument löschen. | |
datastore.entities.get |
Dokument lesen. | |
datastore.entities.list |
Namen der Dokumente in einem Projekt auflisten. ( datastore.entities.get ist für den Zugriff auf Dokumentdaten erforderlich.) |
|
datastore.entities.update |
Dokument 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 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 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. | |
Name der Berechtigung in Key Visualizer | Beschreibung | |
datastore.keyVisualizerScans.get |
Details zu Key Visualizer-Scans abrufen | |
datastore.keyVisualizerScans.list |
Listet die verfügbaren Key Visualizer-Scans auf. | |
Name der Berechtigung für Sicherungszeitpläne | Beschreibung | |
datastore.backupSchedules.get |
Details zu einem Sicherungszeitplan abrufen | |
datastore.backupSchedules.list |
Verfügbare Sicherungszeitpläne auflisten. | |
datastore.backupSchedules.create |
Erstellen Sie einen Sicherungszeitplan. | |
datastore.backupSchedules.update |
Zeitplan für die Sicherung aktualisieren | |
datastore.backupSchedules.delete |
Löschen Sie einen Sicherungszeitplan. | |
Name der Sicherungsberechtigung | Beschreibung | |
datastore.backups.get |
Details zu einer Sicherung abrufen | |
datastore.backups.list |
Verfügbare Sicherungen auflisten. | |
datastore.backups.delete |
Eine Sicherung löschen. | |
datastore.backups.restoreDatabase |
Datenbank aus einer Sicherung wiederherstellen. | |
Name der Berechtigung für Statistiken | Beschreibung | |
datastore.insights.get |
Statistiken zu einer Ressource abrufen | |
Name der Berechtigung für Nutzeranmeldedaten | Beschreibung | |
datastore.userCreds.get |
Details zu den Nutzeranmeldedaten abrufen | |
datastore.userCreds.list |
Liste der verfügbaren Nutzeranmeldedaten. | |
datastore.userCreds.create |
Erstellen Sie Nutzeranmeldedaten. | |
datastore.userCreds.update |
Aktivieren oder deaktivieren Sie Nutzeranmeldedaten oder setzen Sie ein Nutzerpasswort zurück. | |
datastore.userCreds.delete |
Löschen Sie die Nutzeranmeldedaten. |
Latenz der Rollenänderung
Firestore speichert IAM-Berechtigungen fünf Minuten lang im Cache. Es dauert also bis zu fünf Minuten, bis eine Rollenänderung wirksam wird.
Firestore-IAM verwalten
Sie können IAM-Richtlinien mithilfe der Google Cloud -Konsole, der IAM API oder desgcloud
-Befehlszeilentools abrufen und festlegen. Weitere Informationen finden Sie unter Zugriff für Projektmitglieder zuweisen, ändern und widerrufen.
Berechtigungen für den bedingten Zugriff konfigurieren
Mit IAM-Bedingungen können Sie eine bedingte Zugriffssteuerung definieren und erzwingen.
Mit der folgenden Bedingung wird einem Hauptkonto beispielsweise die Rolle datastore.user
bis zu einem bestimmten Datum zugewiesen:
{
"role": "roles/datastore.user",
"members": [
"user:[email protected]"
],
"condition": {
"title": "Expires_December_1_2023",
"description": "Expires on December 1, 2023",
"expression":
"request.time < timestamp('2023-12-01T00:00:00.000Z')"
}
}
Informationen zum Definieren von IAM-Bedingungen für den temporären Zugriff finden Sie unter Temporären Zugriff konfigurieren.
Informationen zum Konfigurieren von IAM-Bedingungen für den Zugriff auf eine oder mehrere Datenbanken finden Sie unter Bedingungen für den Datenbankzugriff konfigurieren.