すべてのユーザーとプロジェクトに関連付けられたサービスアカウントを一覧表示できるようにしたい(できればgcloud
CLIツールを使用しますが、必要に応じてAPI呼び出しを行ってください)。
this を使用して、プロジェクトに関連付けられているすべてのサービスアカウントを簡単に一覧表示できますが、すべてのユーザーも一覧表示できますか?私は次のようなものを期待していますが、ドコには何も見えません:
gcloud beta iam users list
次のコマンドは、プロジェクトに関連付けられているすべてのサービスアカウントを一覧表示します。
$ gcloud iam service-accounts list
NAME EMAIL
Compute Engine default service account [email protected]
dummy-sa-1 dummy-sa-1@MY_PROJECT.iam.gserviceaccount.com
指定したプロジェクトでIAMロールを付与されているすべてのユーザー/サービスアカウントを一覧表示する場合は、次のコマンドを使用できます。
$ gcloud projects get-iam-policy MY_PROJECT
bindings:
- members:
- serviceAccount:[email protected]
- user:[email protected]
role: roles/editor
- members:
- user:[email protected]
- user:[email protected]
role: roles/owner
etag: ARBITRARY_ETAG_HERE
version: 1
gcloud
は、出力をjson
としてフォーマットすることと、必要に応じて他の多くのカスタマイズをサポートします 。これは、特定の場合に解析したり、必要な情報のみを印刷したりするのが簡単かもしれません。
例:
# Prints the output as json instead of the default yaml format
$ gcloud projects get-iam-policy MY_PROJECT --format=json
# Display just the bindings in json format
$ gcloud projects get-iam-policy MY_PROJECT --format='json(bindings)'
# Display the bindings in a flattened format
$ $ gcloud projects get-iam-policy MY_PROJECT --format='flattened(bindings)'
$ gcloud iam service-accounts list
$ gcloud projects get-iam-policy [project]
$ gcloud projects add-iam-policy-binding [project] \
--member="user:[email protected]" \
--role="roles/iam.serviceAccountUser"
ユーザーを削除:
$ gcloud projects remove-iam-policy-binding [project] \
--member="user:[email protected]" \
--role="roles/iam.serviceAccountUser"
$ gcloud projects add-iam-policy-binding [project] \
--member="group:[email protected]" \
--role="roles/storage.admin"
次のコマンドは、GCP組織全体のすべての非サービスアカウントを一覧表示します。
gcloud organizations get-iam-policy ORGANIZATION_ID | grep user\: | sort | uniq
組織IDを取得するには
gcloud organizations list
次のコマンドは、GCPアカウント内のプロジェクトのメンバーを明確に表示できます:gcloud projects get-iam-policy $PROJECT_ID --flatten="bindings[].members" --format="table(bindings.members)"