【发布时间】:2019-08-19 16:10:26
【问题描述】:
我可以使用来自该项目的 ServiceAccount 从另一个项目访问 CloudRun api 吗?
我有一个项目 A,其中托管了 CloudRun 服务 (ServiceA)。 我有另一个项目 B,我需要使用服务帐户 (SvcAcccountB) 从中调用 ServiceA。
但每次我尝试使用 SvcAccountB 调用 ServiceA 时,它都会失败并显示 403。没有防火墙问题,正如我在 ServiceA 的日志中看到的那样,调用被拒绝了。 我已将“CloudRun Invoker”权限授予 SvcAccountB。
如果我在项目 A 中有服务帐户 (svcAccountA),则对 ServiceA 的调用工作正常。
我还缺少什么以便 svcAccountB 可以调用 ServiceA?
【问题讨论】:
-
是的,您可以将 CloudRun Invoker 分配给任何有效的 Google 帐户电子邮件。我一直这样做。您的问题没有显示您如何调用 Cloud Run。确保您使用的是身份令牌而不是访问令牌。
-
这就是问题所在,错误的身份验证。
-
您能解释一下您调用的完整元数据
/identityURL 是什么吗?即?audience=值等是什么?我怀疑你那里有问题。如果?audience=无效,你仍然会得到一个令牌,但它不起作用。 -
我得到了这个工作。发布详细信息作为答案。 John Hanley 的网站帮助了 jhanley.com
标签: google-cloud-platform google-cloud-run