5

我正在 Google Cloud AI Training (Cloud ML Engine) 上启动容器映像

在这些容器中,我需要使用 gsutil。一些容器有 gsutil。在这种情况下,我可以立即使用它而无需任何身份验证步骤。

有些容器没有gsutil,所以我必须安装它。问题是安装的 gsutil 不起作用。

当我使用官方cloud-sdk图像时,gsutil无需任何身份验证步骤即可工作。

当我使用python:3.7图像并gsutil从 PyPI 安装时,它不起作用:

python -m pip install gsutil --quiet
gsutil cp a gs://b/c

ServiceException: 401 Anonymous caller does not have storage.objects.get access to ...

如何使独立 gsutil 获得所需的凭据?

大多数指南侧重于手动调用gcloud auth、复制 URL 和复制回令牌。这不是我寻求的解决方案(应该是自动化的)。我知道自动化解决方案是可能的,因为在某些图像gsutil中是开箱即用的。

4

1 回答 1

7

这是因为 pip install gsutil 单独没有配置凭据,这就是错误所说的匿名用户的原因。您需要配置凭据以访问受保护的数据。

将以下行放入您的 docker 文件中,它应该可以工作:

运行 echo '[GoogleCompute]\nservice_account = default' > /etc/boto.cfg

它是配置 gsutil 以使用默认服务帐户。

于 2020-04-24T19:07:34.333 回答