出于风险控制的原因,我们需要脚本来获取所有管理角色的信息,以及作为这些管理角色成员的人员。注意,我指的是"管理角色"。(内置和自定义)例如超级管理员,而不是项目中授予人员的标准角色等。我还没有找到一个gcloud命令,将提供此信息。另外,我不想以超级管理员的身份运行这个脚本——我可以创建一个自定义角色,但是无法确定这个角色需要的只读访问权限。
如果有另一个非gcloud脚本的方式做到这一点,我是开放的,但gcloud将是最容易得到的工作,我认为。
任何帮助都将是非常感激的。
Fas
查看gcloud的文档,但没有查看luck
没有能够满足您要求的命令。您需要编写一个自定义程序。
您必须为项目和支持IAM绑定的每个资源解析策略绑定。然后还有从ORG和Folder级别继承的权限。这可能很快就会变得复杂,并且需要对Google Cloud中的授权控制有深入的了解。
每个Google云资源都有自己的一组权限。您必须创建每个管理员级IAM角色的列表,并解析每个自定义角色以确定它们是否具有您的定义
一个常见的错误是只检查项目IAM绑定。许多资源支持IAM绑定,如果管理不当,这些绑定就是授权后门。
从查看此页开始查看IAM角色和权限列表:
IAM基本角色和预定义角色参考
您可以将gcloud
命令与get-iam-policy
一起使用:
gcloud projects get-iam-policy ${project_id}
--flatten="bindings[].members"
--format="table(bindings.members)"
--filter="bindings.role=roles/owner"
filter
参数允许在需要的字段上进行过滤,我在这个例子中使用了bindings.role=roles/owner
。
flatten
和format
参数允许恢复成员。
该命令允许显示具有roles/owner
的成员。
您可以列出希望检索其成员的预期角色:
#!/bin/bash
declare -a StringArray=("roles/owner" "roles/my_custom_role" )
# Iterate over roles
for role in ${StringArray[@]}; do
gcloud projects get-iam-policy ${project_id}
--flatten="bindings[].members"
--format="table(bindings.members)"
--filter="bindings.role=${role}"
done