GCP IAM
プリンシパル(主語) + 操作(動詞) + リソース(目的語) という英語の SVOで考える
プリンシパル
ユーザー、サービスアカウント、googleグルー,,, 認証済みユーザー(google loginしてる), 全ユーザー(ネットの人)
操作は、get, list, create, update, delete...
リソース
BigQueryのこのdatasetのこのtable, このcompute engineのinstance, network..など個別のもの(階層はある)
で、個別に操作+リソースを与えるのを疲れるので、
ロールとしてまとめられて、このロールをプリンシパルに付与(バインディング)する。ロールのカテゴリは、
基本ロール、オーナー、編集者、閲覧者
事前定義ロール、appengine, pubsub, cloudfunctionsなどのGCPサービスごとにまとめられた権限の集合
カスタムロール、自分で作るロール、最小原則に合ったロールを作れる
そのバインディングをした集まりをポリシーと呼ぶ?
ポリシーの一覧を取得するには、gcloud projects get-iam-policy $PROJECT_ID --format=json
members(principals)と role(事前定義ロール?)の対になったbindings が リストされる
あとは、下の検索
ロールは実際にどんな感じでまとめられてるの?
ユーザー、管理者、作成者、閲覧者となるパターンがよくある。
ユーザーと作成者の違いがわかってない。もちろん、個別サービスで特有のパーミッションで構成されるのだろうが。
管理者は、ユーザーを付与する(IAMdで?)権利がある
閲覧者は、get, list?
検索:
とりあえず、roleの一覧を知りたい
gcloud iam list-grantable-roles '//cloudresourcemanager.googleapis.com/projects/MYPROJECT
pecoでfilteringしながら見る。
permissionと rolesの結びつきを調べたい。以下から検索できるが...
gloudからは調べる方法がない? predefineなroleでよいので調べたいが...
gcloud iam list-testable-permissions RESOURCE
Resourceを調べないといけないので....
ここを眺めるのはありかも
あるroleを持ってるprincipalを知るには?
gcloud asset search-all-iam-policies --query="roles/cloudfunctions.developer"
cloud asset apiを有効にして検索できるようにする。
あとで見る
https://www.youtube.com/watch?v=4qJg_fuzMBI