服务帐号无权访问 Firestore

Service account does not have permission to access Firestore

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

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

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

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

自行创建服务帐户不会授予任何权限。 IAM & Admin > Service Accounts 中的 Permissions 选项卡显示了“Principals with access to this account”的列表——这不是权限的继承,它只是哪些帐户,也就是委托人,可以使用授予此服务帐户的权限.此页面上的“授予访问权限”按钮是关于授予其他主体访问此服务帐户的权限,而不是授予此服务帐户访问资源的权限。

专门针对 Firestore 访问 - 转至 IAM 和管理 > IAM,您将进入权限选项卡。单击页面顶部的“添加”。在“New Principals”下输入您新创建的服务帐户,对于角色,select“Cloud Datastore Owner”。

注意:Firestore 是下一代 Datastore,但这个旧角色名称仍然存在。