[更新]
为什么gsutil在Cloud Shell上的docker容器中运行时不应该使用Gcloud凭据?
根据[1],gsutil应该在可用时使用gcloud凭据:
一旦通过gcloud auth配置了凭证,无论用户是否有任何boto配置文件(位于〜/ .boto,除非在BOTO_CONFIG环境变量中指定了不同的路径),将使用这些凭据 . 但是,如果需要一种未存储在gcloud凭证存储中的非GCS凭证(例如,S3帐户的HMAC凭证),gsutil仍会在boto配置文件中查找凭据 .
这似乎在gcloud安装中工作正常,但在docker镜像中却没有 . 我在Cloud Shell中使用的过程是:
docker run -ti --name gcloud-config google/cloud-sdk gcloud auth login
docker run --rm -ti --volumes-from gcloud-config google/cloud-sdk gcloud compute instances list --project my_project
... (works ok)
docker run --rm -ti --volumes-from gcloud-config google/cloud-sdk gsutil ls gs://bucket/
ServiceException: 401 Anonymous caller does not have storage.objects.list access to bucket.
问候
凯文
[1] https://cloud.google.com/storage/docs/gsutil/addlhelp/CredentialTypesSupportingVariousUseCases
1 回答
您需要使用凭据安装卷: