首页 > 解决方案 > 如何授予对 GCP Firestore 中 storage.buckets.list 的访问权限?

问题描述

我创建了一个新的 Firestore 项目并希望能够创建、更新和删除,但只是尝试列出存储桶会给我以下错误:

<user>@<project>.iam.gserviceaccount.com does not have storage.buckets.list access to the Google Cloud projec

在 GCP 中搜索过滤角色时,似乎没有特定的存储或存储桶角色。同样,唯一的 firestore 角色是Firestore Service Agent但看不到如何应用它。

我想我对 IAM、原则、角色感到困惑。看起来 IAM 具有附加的权限和角色,并且原则是用户的另一个名称?

无论哪种方式,如何将正确的角色和权限应用于我的服务帐户凭据,以便我可以列出存储桶?

编辑:截图在此处输入图像描述

标签: google-cloud-platformpermissionsrolesgoogle-iamgoogle-cloud-iam

解决方案


如果您希望您的服务账户拥有对存储桶的完全访问权限,您可以为其赋予 IAM 角色Storage Admin。IAM 角色实际上包括一堆权限,在这种情况下,它包括storage.buckets.list许多其他权限。

如果您想对服务帐户权限进行更多限制,您可以在此处定义一些其他角色:https ://cloud.google.com/storage/docs/access-control/iam-roles 。例如,如果服务帐户只需要读取存储桶中的信息,您可以为其赋予角色Storage Object Viewer

另一种方法是直接在每个存储桶中提供您的服务帐户角色,而不是在 IAM 中定义角色。这样,您可以授予服务帐户访问单个存储桶的权限,而不是授予它访问项目所有存储桶的权限。


推荐阅读