gcloud安装在具有服务级别帐户权限问题的gce实例上

jar*_*ran 3 google-cloud-storage google-compute-engine google-cloud-platform gcloud

我启动了启用了服务级别帐户的实例.例如,它有storage-rw set.我确认实例有那些.现在每当我从实例中运行gsutil ls gs:// my_bucket时,我都会收到错误:Failure:unauthorized_client.

gcloud auth列表返回

Credentialed accounts:
 - xxxx@developer.gserviceaccount.com (active)
Run Code Online (Sandbox Code Playgroud)

我需要从一个实例使用gcloud sdk,因为我需要除gcutil和gsutil之外的更多组件.

所以我的问题是如何授权gcloud使用xxxx@developer.gserviceaccount.com帐户,因此只在实例上指定权限,而不是我的个人用户帐户,它拥有对所有内容的完全权限?

Joh*_*uth 6

gcloud CLI绝对可以处理Google Compute Engine服务帐户.如果你这样做时看到它是"(主动)" $ gcloud auth list,那就足够了.

这里有两件事可能出错:

  1. 您正在使用错误的gsutil.

    当您安装Google Cloud SDK时,它会创建google-cloud-sdk/bin/gsutil,并且您就是要运行的那个.做$ which gsutil仔细检查.如果你正在跑google-cloud-sdk/platform/gsutil/gsutil,那是错误的,它不会知道gcloud可以告诉它的任何事情.

  2. 该帐户无权访问您尝试检查的存储桶.您必须要求存储桶的所有者将其添加到拥有该存储桶的项目中.

资料来源:Google Cloud SDK的工程师