You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

获取GCP管理员角色及成员信息的gcloud命令与权限咨询

GCP获取管理员角色及成员的只读权限与实现方案

一、所需自定义角色权限

要只读获取管理员角色及成员信息,给自定义角色添加以下两个权限即可,无需超级管理员权限:

  • roles/iam.roleViewer:允许查看所有内置和自定义角色的完整定义
  • roles/iam.securityReviewer:允许查看项目IAM政策中的角色-成员绑定关系

注:GCP没有内置的"管理员角色"分类,需要你自己通过角色的权限范围(比如roles/owner、roles/editor这类高权限内置角色,或自定义角色中包含iam.*、compute.admin等核心权限)来筛选区分。

二、gcloud脚本实现方案

步骤1:获取所有角色并筛选管理员角色

先导出所有角色,再用jq过滤出符合管理员特征的角色:

# 导出所有角色为JSON文件
gcloud iam roles list --format=json > all_roles.json

# 过滤内置管理员角色+名称含Admin的自定义角色(可根据实际调整过滤规则)
jq '.[] | select(.name | test("roles/(owner|editor)") or .title | test("Admin|admin"))' all_roles.json > admin_roles.json

步骤2:批量获取每个管理员角色的成员

遍历筛选后的管理员角色,拉取对应的成员列表:

# 替换为你的项目ID
PROJECT_ID="your-project-id"

# 遍历管理员角色,输出角色及对应成员
while read -r role_name; do
  echo "--- 角色: $role_name ---"
  gcloud projects get-iam-policy $PROJECT_ID \
    --filter="bindings.role:$role_name" \
    --format="value(bindings.members)"
done < <(jq -r '.[] | .name' admin_roles.json)

三、非gcloud方案(IAM API调用)

如果不想用gcloud,直接调用GCP IAM API也能实现:

  1. 调用roles.list接口获取所有角色列表,自行筛选管理员角色
  2. 调用projects.getIamPolicy接口获取项目IAM政策,从bindings字段中匹配管理员角色对应的members
    所需权限和gcloud方案完全一致,只需roles/iam.roleViewer和roles/iam.securityReviewer。

内容的提问来源于stack exchange,提问作者Fas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 09:00:59