在计算引擎中使用 COS 上运行的容器中的 google.auth

时间:2021-07-14 20:01:53

标签: google-cloud-platform google-compute-engine google-cloud-run

我正在尝试从在 COS 上运行的容器内部使用 google.auth.default() 创建凭据。我已经在创建它时分配了服务帐户和范围。

当我对云存储运行一个简单的测试时,它就像一个魅力。

from google.cloud import storage
storage_client = storage.Client()

print(storage_client._credentials.valid)
print(storage_client._credentials.service_account_email)

给我 True,以及我分配给 Compute Engine 实例的服务帐户。

但是当我跑步时

import google.auth

credentials, project = google.auth.default()
print(credentials.valid)
print(credentials.service_account_email)

我得到 Falsedefault

我尚未设置 GOOGLE_APPLICATION_CREDENTIALS 环境变量,并且容器上未安装 gcloud。

据我所知,Compute Engine 会将元数据向下传递到容器,以便它可以使用它们访问 Google API(就像 Google 存储的情况一样)。

我需要访问一些托管在云运行中并需要身份验证的 gRPC api。我可以使用服务帐户从我的本地开发环境访问它们,但我不认为将服务帐户文件显式传递给容器是要走的路。我正在尝试使用示例 here,但我无法创建凭据。

是否有另一种方法可以从元数据创建凭据?或者我在创建/运行容器时遗漏了什么?

0 个答案:

没有答案
相关问题