Einer Firebase-Erweiterung gewährte Berechtigungen

Damit eine Firebase-Erweiterung die angegebenen Aktionen ausführen kann, gewährt Firebase jeder Instanz einer installierten Erweiterung über ein Dienstkonto eingeschränkten Zugriff auf Ihr Projekt und Ihre Daten.

Was ist ein Dienstkonto?

Ein Dienstkonto ist eine besondere Art von Google-Benutzerkonto. Es stellt einen nichtmenschlichen Benutzer dar, der berechtigt ist, über Google APIs auf Daten zuzugreifen.

Während der Installation einer Erweiterung erstellt Firebase ein Dienstkonto in Ihrem Projekt. Jede installierte Instanz einer Erweiterung verfügt über ein eigenes Dienstkonto.

Firebase beschränkt den Zugriff auf Ihr Projekt und Ihre Daten, indem es dem Dienstkonto einer Erweiterung bestimmte Rollen (Berechtigungsbündel) zuweist. Die Rollen, die eine Erweiterung zum Betrieb benötigt, werden von Firebase während der Erweiterungsentwicklung festgelegt. Bei der Installation weist Firebase diese Rollen dem Dienstkonto einer Erweiterung zu. Sie sollten keine dieser zugewiesenen Rollen ändern, ergänzen oder löschen (andernfalls funktioniert Ihre installierte Erweiterung nicht wie erwartet). Sie können die Erweiterung jedoch deinstallieren , wodurch das Dienstkonto (und sein Zugriff) vollständig gelöscht wird.

Für Erweiterungen erstellte Dienstkonten haben das folgende Format: ext- extension-instance-id @ project-id .iam.gserviceaccount.com .

Sie können alle mit Ihrem Firebase-Projekt verknüpften Dienstkonten auf der Registerkarte „Dienstkonten“ Ihres Firebase-Projekts anzeigen Projekteinstellungen .

Berechtigungen und Rollen

Während der Entwicklung einer Erweiterung bestimmt Firebase die Zugriffsebene, die eine Erweiterung zum Betrieb benötigt.

Firebase definiert diese Zugriffsebene durch explizite Auflistung der Rollen (Berechtigungsbündel), die Firebase dem Dienstkonto der Erweiterung während der Installation der Erweiterung zuweisen soll.

Jede Rolle (und die damit verbundenen Berechtigungen) basiert auf einem bestimmten Produkt oder einer bestimmten Dienstleistung. Beispiele für Rollen sind firebasehosting.admin , bigquery.dataEditor und firebasedatabase.admin . Firebase listet die erforderlichen Rollen für eine Erweiterung in der Spezifikationsdatei der Erweiterung (der Datei extension.yaml ) auf.

Für offizielle Firebase-Erweiterungen überprüft Firebase diese Rollenliste gründlich, um sicherzustellen, dass der Zugriff einer Erweiterung streng auf den Umfang der Aufgaben der Erweiterung beschränkt ist. Sie können den einer Erweiterung gewährten Zugriff auch selbst überprüfen und bestätigen, indem Sie die Detailseite der Erweiterung im Firebase Extensions-Dashboard oder die README Datei anzeigen.

Erfahren Sie mehr über die Berechtigungen, die in jeder Rolle enthalten sind:

Was passiert, wenn ich eine Erweiterung deinstalliere?

Wenn Sie eine Erweiterung aus Ihrem Projekt deinstallieren , löscht Firebase das für diese Instanz der Erweiterung erstellte Dienstkonto . Nach dieser Löschung des Dienstkontos kann die Erweiterung nicht mehr in Ihrem Projekt ausgeführt werden, da sie keine Zugriffsrechte mehr auf Ihr Projekt oder Ihre Daten hat.