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

如何查询GCP服务账号(service account)有权限访问的项目?

GCP 指定服务账号可访问项目查询方案

GCP 没有提供直接查询单个服务账号关联的所有项目的原生独立接口,可通过以下两种实操路径完成查询:

方法1:gcloud CLI 遍历查询(适合项目量少的场景)

  • 提前完成gcloud 本地认证,确保你当前使用的操作账号拥有所有待排查项目的iam.serviceAccounts.getIamPolicy权限
  • 拉取当前账号可见的所有项目ID,存入临时变量:
    PROJECT_IDS=$(gcloud projects list --format="value(projectId)")
  • 遍历所有项目,匹配指定服务账号的IAM绑定关系,输出匹配到的项目:
    for PROJECT in $PROJECT_IDS; do gcloud projects get-iam-policy $PROJECT --filter="bindings.members:serviceAccount:<替换为你的服务账号邮箱>" --format="value(projectId)" | grep . && echo "匹配成功项目ID: $PROJECT"; done
  • 注意:该方案的执行速度和项目数量正相关,项目量级过百时查询耗时会明显增加

方法2:Cloud Asset Inventory 批量查询(适合项目量大的场景)

  • 前置要求:你所在的GCP组织已开启Cloud Asset API,你的操作账号拥有组织层面的cloudasset.assets.searchAllIamPolicies权限
  • 执行单条命令直接拉取全组织范围内绑定了目标服务账号的项目:
    gcloud asset search-all-iam-policies --scope="organizations/<替换为你的组织ID>" --query="policy.bindings.members:serviceAccount:<替换为你的服务账号邮箱>" --format="value(resource)" | grep "projects/"
  • 该方案直接调用组织层面的资产快照接口,千级项目场景下也可在数秒内返回完整结果

注意:两种方案返回的结果仅包含你当前操作账号有权限查看的项目,若目标服务账号绑定了你无访问权限的项目,对应项目不会出现在结果列表中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 08:24:04