Google cloud storage gce实例上安装的gcloud存在服务级别帐户权限问题

Google cloud storage gce实例上安装的gcloud存在服务级别帐户权限问题,google-cloud-storage,google-compute-engine,google-cloud-platform,gcloud,Google Cloud Storage,Google Compute Engine,Google Cloud Platform,Gcloud,我启动了一个启用了服务级别帐户的实例。例如,它设置了存储rw。我证实该实例具有这些特性。现在,每当我从实例中运行gsutil ls gs://my_bucket时,我都会得到一个错误:Failure:unauthorized_client gcloud auth list返回 Credentialed accounts: - xxxx@developer.gserviceaccount.com (active) 我需要从实例中使用gcloudsdk,因为我需要gcutil和gsutil之外的

我启动了一个启用了服务级别帐户的实例。例如,它设置了存储rw。我证实该实例具有这些特性。现在,每当我从实例中运行gsutil ls gs://my_bucket时,我都会得到一个错误:Failure:unauthorized_client

gcloud auth list返回

Credentialed accounts:
 - xxxx@developer.gserviceaccount.com (active)
我需要从实例中使用gcloudsdk,因为我需要gcutil和gsutil之外的更多组件


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

请参阅“对Google Compute Engine进行身份验证”本文档中的部分:

gcloud CLI肯定会处理Google计算引擎服务帐户。如果您在执行
$gcloud auth list
时将其视为“(活动)”,这就足够了

这里有两件事可能会出错:

  • 您使用了错误的gsutil

    当您安装Google Cloud SDK时,它将创建
    Google Cloud SDK/bin/gsutil
    ,这就是您要运行的。执行
    $哪个gsutil
    进行双重检查。如果你运行的是
    googlecloudsdk/platform/gsutil/gsutil
    ,那就错了,它不会知道gcloud能告诉它什么

  • 该帐户没有访问您尝试检查的存储桶的权限。您必须要求bucket的所有者将其添加到拥有该bucket的项目中


  • 来源:谷歌云SDK工程师

    不,使用个人帐户进行身份验证。我需要gcloud及其所有组件来使用xxxx@developer.gserviceaccount.com不是拥有太多权限的个人帐户该链接没有“验证到谷歌计算引擎”部分,这就是为什么建议在答案中包含详细信息,而不仅仅是参考。这可能是一个桶级权限问题吗?仅仅因为您的服务帐户具有对存储的rw访问权限,并不一定会授予它bucket访问权限。你能从你的实例中创建bucket吗?你的项目上的计费状态是否处于活动状态?@user3385351-不,我甚至不能创建bucket。同一错误未经授权的客户端。@jterrace yes its enabled.John哪个gsutil返回/home/web/google cloud sdk/bin/gsutil。这看起来不错。John 1)哪个gsutil返回/home/web/googlecloudsdk/bin/gsutil。我想这看起来不错。2) 如果我启动了一个实例,但没有安装gcloudsdk,我可以在安装了默认gsutil且服务权限设置为read-write的情况下很好地读取bucket。安装了CloudSDK后,我无法创建bucket或读取任何bucket。我也无法将cloudsql实例与gcloud sql实例列表一起列出。我验证了我可以从该实例访问云sql,并且它的外部ip允许在cloudsql server上使用。实例权限为cloudsql=enabled。存储=读写。谢谢