Einer Firebase-Erweiterung gewährte Berechtigungen

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

Was ist ein Dienstkonto?

Ein Dienstkonto ist eine besondere Art von Google-Benutzerkonto. Es stellt einen nichtmenschlichen Benutzer dar, der autorisiert ist, mithilfe von 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 schränkt den Zugriff auf Ihr Projekt und Ihre Daten ein, indem es dem Dienstkonto einer Erweiterung spezifische Rollen (Berechtigungspakete) zuweist. Die Rollen, die eine Erweiterung für den Betrieb benötigt, werden von Firebase während der Entwicklung der Erweiterung festgelegt. Bei der Installation weist Firebase diese Rollen dem Dienstkonto einer Erweiterung zu, und Sie sollten keine dieser zugewiesenen Rollen ändern, hinzufügen oder löschen (andernfalls funktioniert Ihre installierte Erweiterung nicht wie erwartet). Sie können jedoch die Erweiterung deinstallieren , wodurch das Dienstkonto (und sein Zugriff) vollständig gelöscht werden.

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 Ihrer Projekteinstellungen anzeigen .

Berechtigungen und Rollen

Während der Entwicklung einer Erweiterung bestimmt Firebase die Zugriffsebene, die eine Erweiterung benötigt, um zu funktionieren.

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

Jede Rolle (und die ihr innewohnenden Berechtigungen) basiert auf einem bestimmten Produkt oder Dienst. 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.

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

Erfahren Sie mehr über die in jeder Rolle 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 dieser Löschung des Dienstkontos kann die Erweiterung in Ihrem Projekt nicht mehr ausgeführt werden, da sie keine Zugriffsrechte mehr auf Ihr Projekt oder Ihre Daten hat.