我希望能够通过我的一个GKE容器调用GloudRun端点。
当我描述组成GKE集群的VM /实例时,我会看到
serviceAccounts:
- email: 873099409230-compute@developer.gserviceaccount.com
因此,我在上述服务帐户中添加了 CloudRun Invoker 角色。
我已启用CloudRun,并且需要身份验证。
但是,当我执行我的一个Pod并尝试curl
的端点时,我会得到403
(我也从笔记本电脑上获得了该端点,但希望后者更高)。
有什么建议吗?
答案 0 :(得分:2)
卷毛不知道Google Cloud安全性。我的意思是cURL不知道如何将安全令牌添加到您的请求中。为此,您必须在请求的标头中明确添加令牌。
我在计算机上使用它,因为它是Gcloud SDK中定义的我的个人帐户。
curl -H "Authorization: Bearer $(gcloud config config-helper --format='value(credential.id_token)')" <URL>
使用在gcloud中定义的服务帐户,您可以使用此命令
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" <URL>
在两种情况下,您都必须在请求中添加授权标头。
在您的代码中,如果您使用Google库,则可以使用默认凭据,系统将使用您的默认计算服务帐户。 cURL不知道这样做!