Damit eine Firebase Extension 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 spezielle Art von Google-Nutzerkonto. Es repräsentiert einen Nutzer nicht menschlicher Natur, der mit Google APIs auf Daten zugreifen darf.
Bei der Installation einer Erweiterung erstellt Firebase ein Dienstkonto in Ihrem Projekt. Jede installierte Instanz einer Erweiterung hat ein eigenes Dienstkonto.
Firebase schränkt den Zugriff auf Ihr Projekt und Ihre Daten ein, indem dem Dienstkonto einer Erweiterung bestimmte Rollen (Berechtigungspakete) zugewiesen werden. Die Rollen, die für die Ausführung einer Erweiterung erforderlich sind, werden von Firebase während der Entwicklung der Erweiterung festgelegt. Bei der Installation weist Firebase diese Rollen dem Dienstkonto einer Erweiterung zu. Sie sollten diese zugewiesenen Rollen nicht ändern, ergänzen oder löschen, da Ihre installierte Erweiterung sonst nicht wie erwartet funktioniert. Sie können die Erweiterung deinstallieren. Dadurch wird das Dienstkonto (und der Zugriff darauf) vollständig gelöscht.
Dienstkonten, die für Erweiterungen erstellt wurden, haben das Format ext-extension-instance-id@project-id.iam.gserviceaccount.com
Alle mit Ihrem Firebase-Projekt verknüpften Dienstkonten finden Sie auf dem Tab Dienstkonten in den
Berechtigungen und Rollen
Während der Entwicklung einer Erweiterung bestimmt Firebase die Zugriffsebene, die für den Betrieb einer Erweiterung erforderlich ist.
Firebase definiert diese Zugriffsebene, indem die Rollen (Berechtigungsgruppen) explizit aufgeführt werden, die Firebase dem Dienstkonto der Erweiterung bei der Installation der Erweiterung zuweisen soll.
Jede Rolle (und die damit verbundenen Berechtigungen) basiert auf einem bestimmten Produkt oder Dienst. Beispiele für Rollen sind firebasehosting.admin, bigquery.dataEditor und firebasedatabase.admin. In der Spezifikationsdatei der Erweiterung (der Datei extension.yaml) sind die erforderlichen Rollen für eine Erweiterung aufgeführt.
Bei offiziellen Firebase-Erweiterungen überprüft Firebase diese Liste von Rollen gründlich, um sicherzustellen, dass der Zugriff einer Erweiterung streng auf den Umfang der Aufgaben der Erweiterung beschränkt ist. Sie können auch selbst prüfen, welche Berechtigungen einer Erweiterung gewährt wurden. Rufen Sie dazu die Detailseite der Erweiterung im Firebase Extensions-Dashboard auf oder sehen Sie sich die README-Datei an.
Informationen zu den in den einzelnen Rollen enthaltenen Berechtigungen:
Was passiert, wenn ich eine Erweiterung deinstalliere?
Wenn Sie eine Erweiterung aus Ihrem Projekt deinstallieren, löscht Firebase das Dienstkonto, das für diese Instanz der Erweiterung erstellt wurde. Nach dem Löschen des Dienstkontos kann die Erweiterung nicht mehr in Ihrem Projekt ausgeführt werden, da sie keine Zugriffsrechte mehr für Ihr Projekt oder Ihre Daten hat.