概要
GCPでは、各リソース(組織, フォルダ, プロジェクト, サービス)に対して誰がどのようなアクセス権限を持つのかを、「1リソースに対して1ポリシーを設定する」ことで実現する。
上位リソースのポリシー設定(=アクセス権限の設定)は、下位リソースに引き継がれる。
ポリシーは複数の要素から構成され、図にすると以下のような形になる。
図中に登場する用語は、以降で説明する。
パーミッション
対象リソースに対するアクセス権限の最小単位。
ロール
複数のパーミッションを1つにまとめたもの。
GCP側で用意してくれている「基本ロール」、「事前定義ロール」の他、自分で定義する「カスタムロール」というくくりがある。
ロールに含まれるパーミッションを検索するには IAM basic and predefined roles reference
逆に、パーミッションが含まれるロールを検索するには IAM permissions reference
を確認するとよい。
プリンシパル
以下の総称である。
- Googleアカウント(= 人が使う)
- サービスアカウント(= システムが使う)
- 認証済みのユーザー(Googleアカウント, サービスアカウント)
- 全ユーザー
- Googleグループ(Googleアカウント, サービスアカウントをまとめたもの)
以前は「メンバー」と呼ばれていた模様。
( Terraform の IAM 関連のフィールド名なんかにも、その名残が見受けられる)
バインディング
1リソース(組織, フォルダ, プロジェクト, サービス)の1ロールに対して複数のメンバーを紐づけること。
これにより、対象リソースに対してどのような操作がどのプリンシパルにも認められているのかを設定する。
ポリシー
1リソースに対する全てのバインディングの集合のこと。
1リソースに設定できるポリシーは1つのみ。
上位リソースのポリシー設定は、下位リソースに継承される。
参考