1. ホーム
  2. google-cloud-platform

[解決済み] gcpサービスアカウントに関連するロールを一覧表示するにはどうすればよいですか?

2023-06-27 03:54:38

質問

google cloud gui console で "IAM & admin" > "Service accounts" に行き、ビューアーロールで "my-service-account" というサービスアカウントを作成したのですが、このアカウントはどうすればいいのでしょうか。

そして、このコマンドを実行しました。

gcloud iam service-accounts get-iam-policy [email protected]

と入力すると、このように出力されました。

etag: ACAB

ドキュメントによると、これは、このサービス アカウントに関連するポリシーがないことを意味します。そこで、私はそれに "role" を割り当てましたが、それはその "policy" に含まれていません。

サービス アカウントに関連付けられたロールを一覧表示するにはどうすればよいですか。

編集 この質問に対するすばらしい回答のおかげで、すべてのプロジェクトをループして、私が欲しいものを得ることができました。したがって、これらの cmd ツールのバージョンによりますが、これはすべてのプロジェクトにわたって単一のサービス アカウントのすべてのロール バインディングをリストするはずです。

gcloud projects list | \
  awk '{print $1}' | \
  xargs -I % sh -c "echo ""; echo project:% && \
  gcloud projects get-iam-policy % \
  --flatten='bindings[].members' \
  --format='table(bindings.role)' \
  --filter='bindings.members:[email protected]' \
  ;" 

どのように解決するのですか?

特定のサービスアカウントでフィルタリングするには、次のgcloudコマンドでうまくいきます。

gcloud projects get-iam-policy <YOUR GCLOUD PROJECT>  \
--flatten="bindings[].members" \
--format="table(bindings.role)" \
--filter="bindings.members:<YOUR SERVICE ACCOUNT>"

素敵な出力を与えます。

ROLE
roles/cloudtrace.agent
roles/servicemanagement.serviceController
roles/viewer

もちろん、formatパラメータは特定のニーズに合わせて微調整することができます。