繁体   English   中英

gcloud 命令列出所有项目所有者

[英]gcloud command to list all project owner

搜索 GCP cmd 以列出项目的所有活动所有者。 已尝试使用以下 cmd 但它列出了所有 IAM 策略。 我只需要项目所有者信息。

gcloud 项目 get-iam-policy $PROJECT-ID

尝试:

PROJECT="[YOUR-PROJECT-ID]"

gcloud projects get-iam-policy ${PROJECT} \
--flatten="bindings" \
--filter="bindings.role=roles/owner" \
--format="value(bindings.members[])"

这使用gcloud--flatten--format--filter 请参阅 [this] 帖子以获得很好的解释。

这很令人困惑,但--filter只能用于列表,因此--flatten用于将具有单个bindings的单个资源转换为bindings上的多个文档根。

然后可以过滤掉 value roles roles/owner的角色。

然后将结果格式化为仅包含members

注意members以类型为前缀( user:serviceAccount:等)。 您可能需要进一步处理这些。

或者:

PROJECT="[YOUR-PROJECT-ID]"

FILTER="
  .bindings[]
  |select(.role==\"roles/owner\").members"

gcloud projects get-iam-policy ${PROJECT} \
--format=json \
| jq -r "${FILTER}"

如果你愿意使用jq来处理 JSON。 您可以让gcloud --format=json发出 JSON ,然后使用jq处理它。

这种方法的优点是您学习并使用一个工具(即jq )从任意数量的命令(不仅仅是gcloud )处理 JSON output 。

这种方法的缺点是您需要使用多个工具( gcloudjq )而不是一个( gcloud )。

jq的情况下,更容易 (?:) 编写一个从成员中提取 email 的过滤器:

FILTER="
  .bindings[]
  |select(.role==\"roles/owner\").members[]
  |split(\":\")[1]"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM