🔎
複数の GCS bucket に付与されたサービスアカウントの権限を一覧で確認する方法
GCS bucket というよりは、「リソースレベルで付与された許可ポリシー(ロールバインディング)の一覧確認方法」です。Asset Inventory が便利。
$ gcloud asset search-all-iam-policies \
--query='policy:<service-account-email>'
Google Cloud のIAM許可ポリシーは
- 組織レベル
- フォルダレベル
- プロジェクト レベル
- リソースレベル
で設定できます。
プロジェクトレベルの許可ポリシーであれば下図のIAMコンソール画面で、サービスアカウントに紐づく許可ポリシーを一覧で確認できますが、特定の Cloud Storage バケットなど、リソースレベルの許可ポリシーの場合は下図画面では確認できません。
もちろん特定の単一のリソース、例えば Cloud Storage バケットであれば、PERMISSIONS タブからリソースレベルの許可ポリシーを確認することはできますが、当然1つのバケット(リソース)に対する許可ポリシーしか確認できません。一覧でサービスアカウントに紐づく複数のバケットの許可ポリシーを確認したい場合などはどうすればよいでしょうか。
Asset Inventory
そのような場合は Asset Inventory を使うことで一覧で確認ができます。
コンソール画面
policy:<service-account-email>
で filter。
CLIコマンド
$ gcloud asset search-all-iam-policies \
--query='policy:<service-account-email>'
---
assetType: storage.googleapis.com/Bucket
organization: organizations/xxxxx
policy:
bindings:
- members:
- serviceAccount:<service-account-email>
role: roles/storage.objectViewer
project: projects/xxxxx
resource: //storage.googleapis.com/cloud-storage-bucket1
---
assetType: storage.googleapis.com/Bucket
organization: organizations/xxxxx
policy:
bindings:
- members:
- serviceAccount:<service-account-email>
role: roles/storage.objectViewer
project: projects/xxxxx
resource: //storage.googleapis.com/cloud-storage-bucket2
Discussion