如何从 GCP 授予 Firebase Functions 访问资源的权限? (如普通教育证书)

How do i give permissions from GCP to Firebase Functions to access resources? (like GCE)

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

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

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

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

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

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

例如角色 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