Чтобы Firebase Extension могло выполнять указанные действия, Firebase предоставляет каждому экземпляру установленного расширения ограниченный доступ к вашему проекту и данным через сервисную учетную запись .
Что такое сервисный аккаунт?
Сервисная учетная запись - это специальный тип учетной записи пользователя Google. Он представляет пользователя, не являющегося человеком, которому разрешено получить доступ к данным с помощью API Google.
Во время установки расширения Firebase создает сервисную учетную запись в вашем проекте. Каждый установленный экземпляр расширения имеет свою собственную учетную запись обслуживания.
Firebase ограничивает доступ к вашему проекту и данным, назначив конкретные роли учетной записи услуги расширения (пачки разрешений) . Роли, которые требуется расширению для работы, определяются Firebase во время развития расширения. При установке Firebase назначает эти роли сервисному аккаунту расширения, и вам не следует изменять, добавлять или удалять какие-либо из этих назначенных ролей (иначе установленное расширение не будет работать должным образом). Вы можете, тем не менее, удалить расширение , которое вообще удаляет учетную запись Service (и ее доступ).
Учетные записи услуг, созданные для расширений, находятся в формате: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 удаляет сервисную учетную запись, созданную для этого экземпляра расширения. После удаления сервисной учетной записи расширение не сможет работать в вашем проекте, поскольку у него больше нет прав доступа к вашему проекту или данным.