首页 > 解决方案 > 我应该为安全灵活的应用程序引擎设置哪些服务帐户权限 -> 云功能通信

问题描述

我在确定需要将某些角色分配给哪个服务帐户时遇到问题。

我有一个 NodeJS 应用程序在我的灵活应用程序引擎环境上运行。我有一个 hello-world python3.7 HTTP 云函数。

我想从我的应用引擎向我的云功能发出 GET 请求。

当 allUser 成员在 hello-world 云函数上被赋予 Cloud Function Invoker 角色时,一切正常。

但现在我想保护我的云功能端点,以便只有我的灵活应用引擎才能访问它。

我删除了 allUser 成员,当应用程序引擎尝试调用时,正如预期的那样,我得到了 403。

现在,我将 @appspot.gserviceaccount.com 和 @gae-api-prod.google.com.iam.gserviceaccount.com 成员添加到 hello-world 云函数,并赋予他们 Cloud Function Invoker 角色。

我希望灵活的应用程序引擎现在能够调用 hello-world 云函数,因为我赋予它 Cloud Function Invoker 角色。

但我不断收到 403 错误。

应用引擎灵活使用什么服务帐户来对云函数 API 进行这些调用?

标签: google-app-enginegoogle-cloud-platform

解决方案


为了将云功能与服务帐户连接起来,需要进行一些设置:

  • 启用所需的 API
  • 启用服务帐户
  • 充当用户服务帐户

默认服务帐户会创建云功能,有时并没有所有权限。

您可以在这里找到更多信息:

https://cloud.google.com/functions/docs/securering/


推荐阅读