初めに
こんにちは。株式会社BFT名古屋支店 ないとうです。
先日からGCPを触り始め、最初につまずいたポイント『IAM』
今回はこちらについて書いていきたいと思います。
IAMとは
GCPの公式サイトにはIAMについて以下のように記載されています。
Identity and Access Management(IAM)を使用すると、特定のリソースに対するアクションの実行を、承認を受けたユーザーのみに許可できます。※1
つまり、IAMとはクラウド上でのリソースに対してのアクセスを制御するためのサービスということです。
このリソースは、GCPサービスだけでなくユーザ、GCP上ユーザが作成したあらゆるもの(バケットやGCEインスタンスなど)も含まれます。
権限とロール
IAMは権限とロールと呼ばれるものを用いて、リソースへのアクセス制御を行っています。
権限は名前のまま、リソースにアクセスするための権限であり、
ロールは権限の集合体で、リソースに対してある特定の動作(例えばインスタンスを作成、操作)を実行できるようにするつまりリソースに役割を与えるものになります。
なので
権限は細かく制御できるのですが、必要な権限を洗い出すのが大変です。
一方でロールというように動作単位で割り当てることが出来るので、比較的簡単ではありますが、過剰な権限を与えてしまう可能性があります。
ロールの種類
先ほど記載した通り、ロールは権限の集合体で役割をリソースに与えるものになりますが、
事前にGCPが準備したロールが存在し、簡単に役割の付与ができるようになっています。
しかしながら、ピンポイントで権限を付与したい場合、直接権限を割り当てる方法の他に、自分でロールを作成するカスタムロールというものも使うことが出来ます。
カスタムロールの利点は、一度作成してしまえば権限を他のリソースに付与するときに簡単に実装できることです。
まとめ
IAMサービスの権限とロールは、様々なリソースに対するアクセス制御をおこないます。
自分の操作したいリソースに適した権限、ロールを付与することで、安全にGCPサービスを使用することが出来ます。
おわりに
今回は権限とロールについて、書きました。
次回はリソースの部分である、ユーザとサービスアカウントについて書いていきたいと思います。
IAMはやっぱり概念的なもので理解が難しいですね。
それではまた。
参照
※1 IAMドキュメント