Чтобы Firebase Extension могло выполнять указанные действия, Firebase предоставляет каждому экземпляру установленного расширения ограниченный доступ к вашему проекту и данным через сервисную учетную запись .
Что такое сервисный аккаунт?
Сервисный аккаунт – это особый тип учетной записи пользователя Google. Он представляет пользователя, не являющегося человеком, которому разрешен доступ к данным с помощью API Google.
Во время установки расширения Firebase создает в вашем проекте сервисную учетную запись. Каждый установленный экземпляр расширения имеет собственную учетную запись службы.
Firebase ограничивает доступ к вашему проекту и данным, назначая определенные роли учетной записи службы расширения (пакеты разрешений) . Роли, необходимые расширению для работы, определяются Firebase во время разработки расширения. При установке Firebase назначает эти роли сервисному аккаунту расширения, и вам не следует изменять, добавлять или удалять какие-либо из этих назначенных ролей (иначе установленное расширение не будет работать должным образом). Однако вы можете удалить расширение , которое полностью удалит учетную запись службы (и доступ к ней).
Учетные записи служб, созданные для расширений, имеют формат:ext- extension-instance-id @ project-id .iam.gserviceaccount.com
.
Вы можете просмотреть все сервисные аккаунты, связанные с вашим проектом Firebase, на вкладке Сервисные аккаунты вашего аккаунта.
Разрешения и роли
Во время разработки расширения Firebase определяет уровень доступа, необходимый расширению для работы.
Firebase определяет этот уровень доступа, явно перечисляя роли (наборы разрешений), которые Firebase должен назначить сервисной учетной записи расширения во время установки расширения.
Каждая роль (и присущие ей разрешения) основана на конкретном продукте или услуге. Примеры ролей: firebasehosting.admin
, bigquery.dataEditor
и firebasedatabase.admin
. Firebase перечисляет необходимые роли для расширения в файле спецификации расширения ( файл extension.yaml
).
Для официальных расширений Firebase Firebase тщательно проверяет этот список ролей, чтобы гарантировать, что доступ к расширению строго ограничен объемом задач расширения. Вы также можете просмотреть и подтвердить доступ, предоставленный расширению, просмотрев страницу сведений о расширении на панели Firebase Extensions или просмотрев его файл README
.
Узнайте о разрешениях, включенных в каждую роль:
Что произойдет, если я удалю расширение?
Когда вы удаляете расширение из своего проекта, Firebase удаляет сервисную учетную запись , созданную для этого экземпляра расширения. После удаления сервисной учетной записи расширение не сможет работать в вашем проекте, поскольку у него больше нет прав доступа к вашему проекту или данным.