我启动了启用了服务级别帐户的实例。例如,它有storage-rw set。我确认实例有那些。现在每当我从实例中运行gsutil ls gs:// my_bucket时我都会收到错误:Failure:unauthorized_client。
gcloud auth list返回
Credentialed accounts:
- xxxx@developer.gserviceaccount.com (active)
我需要在实例中使用gcloud sdk,因为我需要除gcutil和gsutil之外的更多组件。
所以我的问题是如何授权gcloud使用xxxx@developer.gserviceaccount.com帐户,因此仅在实例上指定权限,而不是我对个人拥有完全权限的个人用户帐户?
答案 0 :(得分:6)
gcloud CLI绝对可以处理Google Compute Engine服务帐户。如果您在$ gcloud auth list
时将其视为“(有效)”,那就足够了。
这里有两件事可能出错:
您使用的是错误的gsutil。
安装Google Cloud SDK时,它会创建google-cloud-sdk/bin/gsutil
,这就是您要运行的那个。请$ which gsutil
进行仔细检查。如果你正在运行google-cloud-sdk/platform/gsutil/gsutil
,这是错误的,并且它不会知道gcloud可以告诉它的任何内容。
该帐户无权访问您尝试检查的存储分区。您必须要求存储桶的所有者将其添加到拥有该存储桶的项目中。
来源:Google Cloud SDK的工程师
答案 1 :(得分:-1)
请参阅此文档中的“对Google Compute Engine进行身份验证”部分:https://developers.google.com/compute/docs/gcutil/