服务帐户没有 storage.objects.get 访问 Google Cloud Storage 对象的权限

问题描述

我已经设置了一个新的 Firestore 环境,当我尝试通过云功能上传然后从存储中读取数据时,出现以下错误

project_id@appspot.gserviceaccount.com does not have storage.objects.get access to the Google Cloud Storage object

我在网上查看并在 Google 云控制台中向此服务帐户添加Storage Admin 的 IAM 权限,但我仍然遇到同样的错误

有人遇到过这个问题吗?我也试过只为服务帐户赋予 Owner 角色,但仍然出现相同的错误

解决方法

Storage Admin 角色具有 storage.objects.* 权限,因此应该绰绰有余。

我建议您尝试以下选项:

  1. 检查是否启用了 Cloud Storage API。如果没有,请启用 API。

  2. 从您的服务帐户中删除存储管理员角色,然后重新添加。请务必等待几分钟,以便角色可以正确传播。

  3. 如果上述选项对您不起作用,请尝试单独为服务帐户授予存储对象查看者角色

,

确保您在函数中使用了正确的存储桶和对象。还要确保您使用的是当前项目的存储桶。

您提到的服务帐号为应用引擎默认服务帐号。无需更改其权限。如果您已经更改了权限,则将更改还原为编辑者/所有者。

希望您没有在统一访问控制和细粒度访问控制之间切换。如果你这样做了,请回复。