Google api Can´;t使用服务帐户访问谷歌云存储。服务帐户没有storage.objects.list访问权限

Google api Can´;t使用服务帐户访问谷歌云存储。服务帐户没有storage.objects.list访问权限,google-api,google-cloud-storage,google-play-console,service-accounts,Google Api,Google Cloud Storage,Google Play Console,Service Accounts,我想使用gsutil和服务帐户在命令行上访问Goolge播放报告。有一个云存储URI,格式为gs://bucket\u name,我可以用我的用户帐户列出和下载报告,但不能用我创建的服务帐户。错误总是相同的: AccessDeniedException: 403 "service-account-name" does not have storage.objects.list access to the Google Cloud Storage bucket. 我已向服务帐

我想使用gsutil和服务帐户在命令行上访问Goolge播放报告。有一个云存储URI,格式为gs://bucket\u name,我可以用我的用户帐户列出和下载报告,但不能用我创建的服务帐户。错误总是相同的:

AccessDeniedException: 403 "service-account-name" does not have storage.objects.list access to the Google Cloud Storage bucket.
我已向服务帐户授予了所有必需的权限,因此我不明白为什么用户帐户可以使用,而服务帐户却无法使用


因此,如果您知道如何帮助我,我将非常感谢您。

云存储桶只会出现在开发人员控制台中创建它们的项目下。此bucket不是在您拥有权限的项目下创建的,因此它不会出现在开发人员控制台中的任何列表中

为了授予对您创建的服务帐户的访问权限,您只需将其作为具有只读权限的附加用户添加到控制台,这将授予该服务帐户对bucket的访问权限。有关此问题的更多信息,请参阅帮助中心的文章


需要记住的是,根据您想要完成的任务,可能需要向服务帐户添加更多角色。例如,如果您想查看财务数据,可能需要SA的“财务”角色。

我已经尝试过了,并且我只能使用存储对象管理员角色列出bucket中的对象,似乎您的服务帐户没有进行更改。如果您运行此命令“gcloud projects get iam policy--flant=”bindings[].members--format='table(bindings.role)'--filter=”bindings.members:“您得到了什么?您应该同时得到两个角色(所有者和存储对象管理员角色)。@SamuelRomero,您好,谢谢您的回复。我尝试了该命令,它正确地输出了我的服务帐户具有`角色/owner'和`角色/storage.objectAdmin'。把你们放在上下文中,我试图访问一个不是我创建的bucket。这个bucket是用Google Play的报告自动创建的(我不知道这是否有什么关系),我可以列出它们并用我的Google Play帐户下载它们,但是我不能用服务帐户做同样的事情,尽管它有相同的角色。现在就知道了。我有几个问题。你提到bucket是用Google Play的报告自动创建的,对吗?如果你去控制台寻找你提到的bucket的名字,你看到了吗?如果没有,你怎么用你的Google Play帐户访问它?你好。我也有同样的问题,我尝试将这两个角色都设置到我的服务帐户(它链接到我在play console中的应用程序),但仍然出现相同的错误(
没有对Google云存储桶的storage.objects.list访问权