【发布时间】:2019-11-30 09:47:23
【问题描述】:
我在确定需要将某些角色分配给哪个服务帐户时遇到问题。
我有一个 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?
【问题讨论】:
-
你在正确的轨道上。接下来,从元数据服务器请求一个身份令牌,并将该令牌包含在“授权:承载 ID_TOKEN”HTTP 标头中,以向 Cloud Functions 发出请求。 cloud.google.com/compute/docs/instances/…
-
注意:基于身份的授权不需要为服务帐户分配任何角色。服务帐号的身份用于授权,而不是分配给服务帐号的角色。
标签: google-app-engine google-cloud-platform