如何为Google Cloud Function服务账号分配Firestore Viewer角色?
为Cloud Function服务账号分配Firestore查看权限的详细指引
一、Google Cloud Console操作步骤
方法1:全局IAM页面操作(推荐)
- 打开IAM与管理 > IAM页面(注意不是「服务账号」子页面)
- 点击页面顶部的「授予访问权限」按钮
- 在「添加主体」输入框中,直接填入你的服务账号邮箱:
func-testing-http@myawesomeapp.iam.gserviceaccount.com - 点击「选择角色」下拉框,输入
Datastore Viewer或roles/datastore.viewer进行搜索,找到后选中该角色 - 点击「保存」完成权限分配
方法2:服务账号详情页操作
- 进入IAM与管理 > 服务账号,找到并点击目标服务账号
func-testing-http@myawesomeapp.iam.gserviceaccount.com - 切换到「权限」标签页,点击「授予访问权限」
- 在弹出窗口的「主体」字段中,手动填入该服务账号邮箱(若未自动填充)
- 在「角色」下拉框中搜索
Datastore Viewer或roles/datastore.viewer(默认列表仅显示常用角色,搜索可快速定位) - 点击「保存」完成配置
二、gcloud CLI操作步骤
- 先切换到目标项目(替换为你的项目ID):
gcloud config set project myawesomeapp
- 执行角色绑定命令:
gcloud projects add-iam-policy-binding myawesomeapp \ --member="serviceAccount:func-testing-http@myawesomeapp.iam.gserviceaccount.com" \ --role="roles/datastore.viewer"
- 验证权限是否生效:
gcloud projects get-iam-policy myawesomeapp \ --filter="bindings.members:func-testing-http@myawesomeapp.iam.gserviceaccount.com" \ --format="value(bindings.role)"
执行后会列出该服务账号已绑定的角色,确认roles/datastore.viewer存在即可。
关于你遇到的困惑说明
- 「要求添加新主体」:手动填入你的服务账号邮箱即可,部分场景下页面不会自动填充主体信息
- 「找不到
roles/datastore.viewer角色」:控制台角色下拉框默认仅展示常用角色,直接搜索角色名称或ID即可快速找到目标角色
内容的提问来源于stack exchange,提问作者TinyTiger
相关产品推荐
相关产品推荐

