调用 CloudRun 的权限显然未授予 GKE (pods)
Permission to invoke CloudRun apparently not granted to GKE (pods)
我希望能够通过我的 GKE pods 之一调用 GloudRun 端点。
当我描述构成我的 GKE 集群的 VMs/instances 时,我看到
serviceAccounts:
- email: 873099409230-compute@developer.gserviceaccount.com
所以我将 CloudRun Invoker 角色添加到上述服务帐户。
我已启用需要身份验证的 CloudRun。
然而,当我执行我的 pods 之一并尝试 curl
我得到的端点时 403
(我也从我的笔记本电脑上得到,但后者是预期的) .
有什么建议吗?
Curl 不知道Google 云安全。我的意思是 cURL 不知道如何将安全令牌添加到您的请求中。为此,您必须在请求的 header 中明确添加令牌。
我在我的电脑上使用它,因为它是我在 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>
在这两种情况下,您都必须在请求中添加授权 header。
在您的代码中,如果您使用 google 库,您可以使用默认凭据,将使用您的默认计算 service-account。 cURL 不知道这样做!
我希望能够通过我的 GKE pods 之一调用 GloudRun 端点。
当我描述构成我的 GKE 集群的 VMs/instances 时,我看到
serviceAccounts:
- email: 873099409230-compute@developer.gserviceaccount.com
所以我将 CloudRun Invoker 角色添加到上述服务帐户。
我已启用需要身份验证的 CloudRun。
然而,当我执行我的 pods 之一并尝试 curl
我得到的端点时 403
(我也从我的笔记本电脑上得到,但后者是预期的) .
有什么建议吗?
Curl 不知道Google 云安全。我的意思是 cURL 不知道如何将安全令牌添加到您的请求中。为此,您必须在请求的 header 中明确添加令牌。
我在我的电脑上使用它,因为它是我在 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>
在这两种情况下,您都必须在请求中添加授权 header。
在您的代码中,如果您使用 google 库,您可以使用默认凭据,将使用您的默认计算 service-account。 cURL 不知道这样做!