google-cloud-platform - 如何授予对 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 具有附加的权限和角色,并且原则是用户的另一个名称?
无论哪种方式,如何将正确的角色和权限应用于我的服务帐户凭据,以便我可以列出存储桶?
解决方案
如果您希望您的服务账户拥有对存储桶的完全访问权限,您可以为其赋予 IAM 角色Storage Admin
。IAM 角色实际上包括一堆权限,在这种情况下,它包括storage.buckets.list
许多其他权限。
如果您想对服务帐户权限进行更多限制,您可以在此处定义一些其他角色:https ://cloud.google.com/storage/docs/access-control/iam-roles 。例如,如果服务帐户只需要读取存储桶中的信息,您可以为其赋予角色Storage Object Viewer
。
另一种方法是直接在每个存储桶中提供您的服务帐户角色,而不是在 IAM 中定义角色。这样,您可以授予服务帐户访问单个存储桶的权限,而不是授予它访问项目所有存储桶的权限。
推荐阅读
- posix - 为什么GNU tar --format=pax 会生成ustar 档案?
- ruby-on-rails - 带有 facebook 的 Rails 6 omniauth 在本地工作,但不适用于 heroku
- python - 在类中检查 Python 中的函数调用
- javascript - 如何在没有唯一键警告的情况下使用 React 渲染 Material UI 网格
- python - 连续 TRUE 的数量与 4 个季度的变化
- node.js - 使用 express + webpack 中间件时如何在 .ejs 更改时自动刷新浏览器?
- c# - 如何在 C# 中显示来自 SAP RFC 的 pdf
- sql - 我怎样才能找到每门课程的学生ID最高分
- math - 在 z3 中定义一个庞大但已知的函数
- java - 我无法使用 Java 测试运行器扩展在 Visual Studio 上测试我的 Java 代码