我如何从 GCP 向 Firebase Functions 授予访问资源的权限? (如 GCE)

时间:2020-12-30 13:46:04

标签: node.js firebase express google-cloud-platform google-compute-engine

有谁知道我如何从 GCP 中的项目中授予在 firebase 中创建和部署的函数的权限?因为我正在做的是以下内容:

  1. 从站点(也在 Firebase 中部署)调用后端(Firebase 函数)
  2. 函数本身尝试从我的 GCP 项目中获取资源(具体来说是当前正在运行的实例)
  3. 然后,我收到它们并显示在前面。

第 2 步导致了我的问题,目前当我尝试运行它时,它给了我错误: 错误:无法处理请求,在来自 firebase 函数的日志中,我得到了:GaxiosError:“projects/projectID”需要“compute.instances.list”权限,所以我确定这是授权问题。

所有这个项目在 2 个月前都运行良好,但我的免费试用期到期了,我们试图转移到另一个 GCP 帐户并尝试完成这个项目(我知道代码工作正常,问题肯定是 GCP因为另外,当我使用与 GCP 资源无关的其他 API 端点时,它们工作得很好)。

任何推荐都会很棒,如果我没有提供足够的信息,请告诉我。谢谢你的时间

1 个答案:

答案 0 :(得分:1)

向 Cloud Function 服务帐户添加包含所需权限的 IAM 角色。

例如角色 roles/compute.viewer 具有权限 compute.instances.list

查看此页面以详细了解 Compute Engine IAM 角色:

Compute Engine IAM roles and permissions

Firebase 函数是云函数。 Cloud Functions 使用 App Engine default service account 进行访问控制。服务帐户名称的格式为:PROJECT_ID@appspot.gserviceaccount.com。在 IAM 下找到该服务帐号并添加上述角色。

Cloud Functions Access Control

相关问题