服务帐户无权访问 Firestore

Dav*_*Min 3 firebase firebase-security google-cloud-platform google-cloud-iam google-cloud-firestore

我有一个不在 node.js(Cloudflare Worker)上运行的服务器端应用程序,因此我尝试通过 REST 调用而不是通过 Admin SDK 访问 Firestore 资源。

我为 Admin SDK 自动创建了一个默认服务帐户,并在 GCP 控制台中手动创建了另一个服务帐户。

获取默认服务帐户的 OAuth 令牌后,我可以访问受保护的资源。但是,使用新创建的服务帐户,即使安全规则设置为 ,我也无法访问资源if true

我必须授予此手动创建的服务帐户什么权限才能允许其访问?

Dav*_*Min 13

单独创建服务帐户不会授予任何权限。IAM 和管理 > 服务帐户中的“权限”选项卡显示“有权访问此帐户的主体”列表 - 这不是权限的继承,而只是哪些帐户(也称为主体)可以使用授予此服务帐户的权限。此页面上的“授予访问权限”按钮用于授予其他主体访问此服务帐户的权限,而不是授予对此服务帐户资源的访问权限。

特别是对于 Firestore 访问 - 转到 IAM 和管理 > IAM,您将位于权限选项卡上。单击页面顶部的“添加”。在“新主体”下输入您新创建的服务帐户,对于角色,选择“云数据存储所有者”。

注意:Firestore 是下一代数据存储,但此旧角色名称仍然保留。

  • 建议对服务帐户使用“云数据存储用户” - 这样您将拥有读/写权限,这通常就足够了(最好的做法是始终将权限限制在所需的最低限度)。 (2认同)