查询指定GCP项目中个人权限及有效权限的方法
查看GCP项目中个人的有效权限
嘿,要弄清楚你在指定GCP项目里拥有的所有有效权限——不管是直接分配的角色/权限、通过组身份继承的,还是能扮演服务账号获得的——用GCP的gcloud工具就能全部搞定,我给你分步骤拆解:
一、先确认当前使用的GCP账号
首先得确保你用的是正确的账号,运行这条命令就能看到当前活跃的账号:
gcloud auth list
二、查询直接分配+组继承的权限
替换命令里的<PROJECT_ID>和<YOUR_EMAIL>,运行下面的命令,它会列出你通过直接角色分配、组成员身份获得的所有角色(每个角色对应一组具体权限):
gcloud projects get-iam-policy <PROJECT_ID> \ --flatten="bindings[].members" \ --filter="bindings.members:(user:<YOUR_EMAIL> OR group:*<YOUR_EMAIL>)" \ --format="table(bindings.role, bindings.members)"
小提示: group:*<YOUR_EMAIL>会自动匹配所有包含你作为成员的组,不用你提前知道组的邮箱。
三、查询可扮演的服务账号及对应权限
如果你有权限扮演某个服务账号,那你会拥有该服务账号在项目里的所有权限。先查你能扮演哪些服务账号:
gcloud projects get-iam-policy <PROJECT_ID> \ --flatten="bindings[].members" \ --filter="bindings.role:roles/iam.serviceAccountUser AND bindings.members:user:<YOUR_EMAIL>" \ --format="value(bindings.members)"
输出里的serviceAccount:<SA_EMAIL>就是你能扮演的服务账号。接下来针对每个服务账号,查它在项目中的权限:
gcloud projects get-iam-policy <PROJECT_ID> \ --filter="bindings.members:serviceAccount:<SA_EMAIL>" \ --format="table(bindings.role)"
四、查看角色对应的具体权限
如果你想知道某个角色到底包含哪些具体操作权限(比如roles/editor能做什么),可以用这条命令:
gcloud iam roles describe roles/editor --format="value(includedPermissions)"
补充说明: 上面的命令已经覆盖了所有你提到的权限来源,而且GCP的IAM是层级继承的,项目的IAM政策会自动包含从组织、文件夹上层资源继承来的权限,所以不用额外查询上层资源。
内容的提问来源于stack exchange,提问作者gogstad
相关产品推荐
相关产品推荐

