服务帐户没有 storage.objects.get 访问 Google 云存储对象的权限

Service Account does not have storage.objects.get access to the Google Cloud Storage object

我已经设置了一个新的 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.objects.* 权限,因此应该绰绰有余。

我建议您尝试以下选项:

  1. 检查云存储API是否启用。如果没有,启用 API.

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

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

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

您提到的服务账号是应用引擎默认的服务账号。无需更改其权限。如果您已经更改了权限,则将更改还原为 editor/owner。

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