调用CloudRun的权限显然未授予GKE(吊舱)

时间:2019-09-26 10:35:34

标签: google-cloud-platform google-kubernetes-engine google-cloud-run google-iam

我希望能够通过我的一个GKE容器调用GloudRun端点。

当我描述组成GKE集群的VM /实例时,我会看到

serviceAccounts:
 - email: 873099409230-compute@developer.gserviceaccount.com

因此,我在上述服务帐户中添加了 CloudRun Invoker 角色。

我已启用CloudRun,并且需要身份验证。

但是,当我执行我的一个Pod并尝试curl的端点时,我会得到403(我也从笔记本电脑上获得了该端点,但希望后者更高)。

有什么建议吗?

1 个答案:

答案 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不知道这样做!