授予 Firebase 扩展程序的权限

要让 Firebase 扩展程序执行其指定操作,Firebase 会通过服务帐号向已安装扩展程序的每个实例授予对项目和数据的受限访问权限

什么是服务帐号?

服务帐号是一种特殊类型的 Google 用户帐号。它表示已获授权使用 Google API 访问数据的非人类用户。

在安装扩展程序的过程中,Firebase 会在您的项目中创建一个服务帐号。每个已安装的扩展程序实例都有自己的服务帐号。

Firebase 通过向扩展程序的服务帐号分配特定的角色(一组权限)来限制对您的项目及数据的访问权限。运行扩展程序所需的角色由 Firebase 在扩展程序开发期间确定。安装时,Firebase 会将这些角色分配给扩展程序的服务帐号,您不得修改、添加或删除任何这些已分配的角色(否则您已安装的扩展程序将无法按预期运行)。但是,您可以卸载扩展程序,此操作会完全删除服务帐号(及其访问权限)。

为扩展程序创建的服务帐号采用以下格式:ext-extension-instance-id@project-id.iam.gserviceaccount.com

您可以在 项目设置服务帐号标签页中查看与您的 Firebase 项目关联的所有服务帐号。

权限和角色

在扩展程序开发过程中,Firebase 会确定运行扩展程序所需的访问权限级别。

Firebase 通过明确列出在安装扩展程序时 Firebase 应分配给该扩展程序的服务帐号角色(一组权限)来定义此访问权限级别。

每个角色(及其固有权限)均基于特定的产品或服务。示例角色包括 firebasehosting.adminbigquery.dataEditorfirebasedatabase.admin。Firebase 会在扩展程序的规范文件(extension.yaml 文件)中列出该扩展程序所需的角色。

对于官方 Firebase 扩展程序,Firebase 会仔细检查此角色列表,以确保扩展程序的访问权限严格限制在该扩展程序的任务范围内。您还可以通过访问 Firebase Extensions 信息中心的扩展程序详情页面或查看扩展程序的 README 文件,查看并确认授予该扩展程序的访问权限。

了解每个角色所包含的权限:

卸载扩展程序后会发生什么?

从项目中卸载扩展程序时,Firebase 会删除为该扩展程序实例创建的服务帐号。删除服务帐号后,扩展程序将无法在您的项目中运行,因为它不再具有对您的项目或数据的任何访问权限。