Check out what’s new from Firebase at Google I/O 2022. Learn more

使用 Firebase IAM 管理项目访问权限

借助 Identity and Access Management (IAM),您可以授予对特定 Firebase 和 Google 资源的细化访问权限,并阻止对其他资源的不必要访问。 IAM 允许您采用最小权限安全原则,因此您只需授予对您的资源的必要访问权限即可。

如需详细了解 IAM,请参阅 Google Cloud IAM 文档

Firebase IAM 概览

Firebase 提供了额外的 IAM 选项,专用于 Firebase 项目与您的项目成员。

当经过身份验证的项目成员在 Firebase 中请求执行某个操作时,IAM 会做出有关该项目成员是否有权限资源执行所请求操作的授权决策。项目成员是否可以执行相应请求取决于项目成员分配到的角色。每个角色均对应一组权限,为项目成员分配某个角色后,该成员将获得该角色包含的所有权限。

项目成员

通过使用 Firebase IAM,您可以为项目成员分配角色(及其固有权限)。项目成员可以是以下类型

  • Google 帐号
  • 服务帐号
  • Google 群组

角色

通过角色向项目成员授予权限。一个角色对应一组权限。为项目成员分配某个角色后,该成员将获得该角色包含的所有权限。

Firebase IAM 支持以下类型的角色:

  • 基本角色OwnerEditorViewer 三种基本角色(以前称为“原初”角色)。

  • 预定义角色:特定于 Firebase 的精选角色,可提供比基本角色更精细的访问权限控制。Firebase 提供以下角色:

    • Firebase 级别角色:授予对所有 Firebase 产品的完整读写或只读权限的角色。

    • 产品类别角色:授予对产品组的完整读写或只读权限的角色。此类角色的结构是围绕着 Google Analytics(分析)和一般产品类别设计的。

    • 产品级角色:授予对特定 Firebase 产品的完整读写或只读权限的角色。

  • 自定义角色:由您创建的完全自定义角色,用于定制一组满足贵组织具体要求的权限。

角色更改延迟时间

如果您更改项目成员的角色分配,更改后的角色最多可能需要 5 分钟时间才能生效。

管理项目成员及其角色

查看项目成员及其角色

如需查看多个项目成员及其角色,请访问 Firebase 控制台,依次点击 > 项目设置,然后打开用户和权限标签页。请注意以下几点:
  • Firebase 控制台仅会列出分配了基本角色(Owner、Editor、Viewer)或 Firebase 预定义角色的项目成员。 此标签页中列出的项目成员是唯一有权访问 Firebase 控制台中的 Firebase 项目的成员。
  • Firebase 控制台不会列出属于服务帐号的项目成员。可在 Google Cloud Console 的 IAM 页面中查看这些项目成员。
或者,您可以在 Google Cloud Console 的 IAM 页面中查看所有项目成员及其角色。

为项目成员分配角色

要管理分配给每个项目成员的角色,您必须是 Firebase 项目的所有者(或者被分配了具有 resourcemanager.projects.setIamPolicy 权限的角色)。

您可以在以下位置分配和管理角色:

  • Firebase 控制台提供了一种简化的方式,您只需依次点击 >项目设置,然后打开用户和权限标签页,即可为项目成员分配角色。 在 Firebase 控制台中,您可以分配任何基本角色(Owner、Editor、Viewer)、Firebase Admin/Viewer 角色或任何 Firebase 预定义的产品类别角色
  • Google Cloud Console 提供了一套丰富的工具,可供您在 IAM 页面中为项目成员分配角色。在 Cloud Console 中,您还可以创建和管理自定义角色,以及向服务帐号授予项目的访问权限。

    请注意,在 Google Cloud Console 中,项目成员称为主帐号

如果您项目的所有者无法再执行所有者的任务(例如,人员从贵公司离职),并且您的项目并非通过 Google Cloud 组织管理(请参见下一段),那么您可以与 Firebase 支持团队联系,请求其分配临时 Owner 角色。

请注意,如果 Firebase 项目属于 Google Cloud 组织,则可能没有所有者。 如果您无法找到 Firebase 项目的所有者,请与管理 Google Cloud 组织的人员联系,请求其为项目分配 Owner 角色。