借助 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 支持以下类型的角色:
基本角色:Owner、Editor 和 Viewer 三种基本角色(以前称为“原初”角色)。
预定义角色:特定于 Firebase 的精选角色,可提供比基本角色更精细的访问权限控制。Firebase 提供:
Firebase 级别角色:授予对所有 Firebase 产品的完整读写或只读权限的角色。
产品类别角色:授予对产品组的完整读写或只读权限的角色。此类角色的结构是围绕着 Google Analytics 和一般产品类别设计的。
产品级角色:授予对特定 Firebase 产品的完整读写或只读权限的角色。
自定义角色:由您创建的完全自定义角色,用于定制一组满足您的组织的具体要求的权限。
管理项目成员及其角色
查看项目成员及其角色
如需查看多个项目成员及其角色,请访问 Firebase 控制台,依次点击 > 项目设置,然后打开用户和权限标签页。请注意以下几点:- Firebase 控制台仅会列出分配了基本角色(Owner、Editor、Viewer)或 Firebase 预定义角色的项目成员。此标签页中列出的项目成员是唯一有权访问 Firebase 控制台中的 Firebase 项目的成员。
- Firebase 控制台不会列出属于服务账号的项目成员。可在 Google Cloud 控制台的 IAMIAM 页面中查看这些项目成员。
为项目成员分配角色
要管理分配给每个项目成员的角色,您必须是 Firebase 项目的所有者(或者被分配了具有 resourcemanager.projects.setIamPolicy
权限的角色)。
您可以在以下位置分配和管理角色:
- Firebase 控制台为您提供了一种简单的方法来为项目成员分配角色,只需依次点击 > 项目设置,然后打开“用户和权限”标签页即可进行分配。在 Firebase 控制台中,您可以分配任何基本角色(Owner、Editor、Viewer)、Firebase Admin/Viewer 角色或任何 Firebase 预定义的产品类别角色。
- Google Cloud 控制台提供了一套丰富的工具,可供您在 IAMIAM 页面中为项目成员分配角色。在 Cloud 控制台中,您还可以创建和管理自定义角色,以及向服务账号授予项目的访问权限。
请注意,在 Google Cloud 控制台中,项目成员称为“主账号”。
如果您项目的所有者无法再执行所有者的任务(例如,该人员从贵公司离职),并且您的项目并非通过 Google Cloud 组织管理(请参见下一段),那么您可以与 Firebase 支持团队联系,询问如何申请访问 Firebase 项目。
请注意,如果 Firebase 项目属于 Google Cloud 组织,则可能没有所有者。如果您无法找到 Firebase 项目的所有者,请与管理 Google Cloud 组织的人员联系,请求为项目分配 Owner 角色。