我有一个服务器端应用程序,不运行在node.js(一个Cloudflare Worker)上,所以我试图通过REST调用访问Firestore资源,而不是通过Admin SDK。
我为Admin SDK自动创建了一个默认服务帐户,并且在GCP控制台中手动创建了另一个服务帐户。
在获得默认服务帐户的OAuth令牌后,我可以访问受保护的资源。但是,对于新创建的服务帐户,即使将安全规则设置为if true
,我也无法访问资源。
我需要给这个手动创建的服务帐户什么权限才能允许它访问?
创建服务帐户本身不授予任何权限。IAM中的权限选项卡管理比;"服务帐户"显示可访问此帐户的"主体"列表。-这不是权限的继承,它只是哪些帐户(又名主体)可以使用授予此服务帐户的权限。授予访问权按钮是关于授予其他主体对该服务帐户的访问权限,而不是授予对该服务帐户的资源访问权限。
对于Firestore访问,请访问IAM &管理比;IAM,然后进入权限选项卡。点击"Add"在这一页的顶部。在"New principal "下键入新创建的服务帐户,对于角色,选择"Cloud Datastore Owner"。
注意:Firestore是下一代数据存储,但这个遗留角色名称仍然存在。