AWSサービスがなかなか理解できないなぁ..
そのお悩みを解決します!
AWSを学び始めた皆さん。
学習は順調に進んでいますか?
AWSはたくさんサービスがあって、1つ1つのサービスを学ぶのに苦労しますよね。
そこで本記事では「IAM」について、初心者にわかりやすいよう図解付きで解説していきます。
結論として、このようにまとめることができます。
今はまだ分からなくても全然大丈夫です!
本記事を読んだ後に「IAMってこういうサービスなんだなぁ」って思ってもらえれば嬉しいです。
またなんとなくIAMを分かっているつもりの方も「理解できていなかった」と思うポイントが隠されているかもしれません..!
AWSを学んでいる方の参考になれば嬉しいです!それではどうぞ!
IAMとは
IAM(Identity and Access Management)とは「認証」・「認可」を設定するサービスです。
AWSはデフォルトではEC2やRDSといったAWSサービスを利用することは禁止されています。
そのため、AWSサービスを使用するためにはIAMで「認証」・「認可」を設定し、アクセスできる範囲を制御する必要があります。
認証・認可とは(別物です)
認証・認可ってどう違うの?
このような違いがあるよ!
認証:「誰であるか」を確認、実証すること
認可:「何をしていいか」の権限を確認、実証すること
具体的な例をあげると、このように表すことができます。
認証は身分証明証での「本人確認」、認可はお酒を購入する許可を与える行為をイメージすると分かりやすいです。
認証と認可は別の行為ですが、セットで行われることでアクセス権限を与えることができます。
IAMの要素
IAMには「認証」・「認可」を設定するために4つの要素があります。
- IAMユーザー
- IAMユーザーグループ
- IAMポリシー
- IAMロール
1つ1つどのような要素か解説していきますね。
IAMユーザー
IAMユーザーはAWSへアクセスするためのユーザのことを指します。
IAMユーザー自体には認可情報はなく、こちらの2つの認証情報を提供します。
- AWSマネジメントコンソールへログインするためのパスワード認証
- プログラムによるアクセスを行うためのアクセスキーとシークレットアクセスキーによる認証
後述する「IAMポリシー」を付与することで、AWSサービスへのアクセス権を可能にします。
IAMユーザーグループ
IAMユーザーグループはIAMユーザーをグループ化する機能です。
IAMユーザーがクラスの各メンバーだとすると、IAMユーザーグループはクラスのまとまりを指します。
IAMユーザーグループを使うことで、IAMユーザ毎に後述するIAMポリシーを付与するといった煩雑な権限管理を防ぐことができるメリットがあります。
IAMポリシー
IAMポリシーはAWSサービスやリソースへのアクセス権限を設定する機能です。
認可情報を提供し、ポリシーをJSON形式のドキュメントで定義することができます。
JSON形式のドキュメントでは、こちらの内容を定義しています。
具体例をあげると、こちらのようになります。(※わかりやすいように要素を入れ替えています)
IAMポリシーでは「カレーを配膳する」や「後片付けをする」といった行為が許可されていると思ってもらえれば大丈夫です。
このIAMポリシーを前述のIAMユーザー・IAMユーザーグループに付与することで、AWSサービスへ権限を絞ってアクセスすることができるようになります。
しかし、行為そのものを人毎に付与すると管理が煩雑になりますよね。
そこで、IAMロールの出番となります。
IAMロール
IAMロールとは、AWSリソースや一時的な権限を必要とする人に認可情報を付与する役割を持つ機能です。
前述のIAMポリシーと同様に認可情報を提供します。
IAMロールは簡単に言うと、1つ1つのIAMポリシーをまとめたものだと思ってもらえれば大丈夫です。
具体例をあげると、こちらがIAMロールでIAMポリシーをまとめることにあたります。
- IAMポリシー:「カレーを配膳する」「後片付けをする」
- IAMロール:「給食当番」の役割(IAMポリシーを含む)
IAMロールにより必要時のみ適切な役割を付与し、アクセス権限を行うといったセキュリティの高い運用が可能になります。
またIAMロールはIAMユーザー・IAMユーザーグループだけでなく、EC2などのAWSのサービスや他のアカウントに対してもAWS の操作権限を付与することができます。
6組のメンバーだけでなく、他のクラスのメンバーも給食当番になれるということですね。
ただ誰にでもIAMロールを付与して、権限を与えることはセキュリティ的にもNGです。
そこでIAMロールを説明する上で忘れてはいけない、STSについても解説します。
STS
STS(Security Token Service)とは、AWSリソースに対して一時的な認証情報を発行するサービスです。
先ほど解説したIAMロールは誰でも使用できるものではなく、信頼できるユーザーにのみ引き渡す必要があります。
STSを使用する方法はこちらの通りです。
…..ちょっと分かりにくいですね。
これを給食に置き換えると、このようになります。
なんとなく理解できたのではないでしょうか?
この行為を行うことで一時的に信頼できるユーザーにのみ権限を付与することができます。
よって、セキュリティの高い運用が可能になります。
以上がIAMについての解説でした。
最後に冒頭でお見せした図を改めて確認してみましょう。
また、IAMで知っておいてほしいポイントはこちらです。
なんとなくIAMについて分かって頂けたかなと思います!
まとめ
今回はAWSサービスの中からIAMについてご紹介しました。
IAMはAWSサービスを操作するための、「認証」・「認可」を行う重要なサービスです。とても奥が深く、1度で理解するのは難しいと思います。
そのため、IAMは単体で触るよりも他のAWSサービスと一緒に触ることで徐々に理解を深めていきましょう!
AWS初学者の方は会員制コミュニティ付きの動画で学べるAWS学習オンラインスクールCloudTechがおすすめ!
CloudTechについてはこちらの記事でご紹介しているので、参考にしてみて下さい。
今だけお得に入会できるクーポンコード配布中!
それでは、これからも一緒に学んで、自己価値を高めていきましょう〜!
最後まで、お読み頂きありがとうございました!
参考文献
こちらの記事を作成するにあたり、こちらのブログ記事や本を参考にさせて頂きました!
①AWSエンジニア入門講座――学習ロードマップで体系的に学ぶ
②AWSの知識地図 〜現場必修の基礎から構築・セキュリティまで
今回解説していないIAMポリシーのポリシータイプ、IAMの評価理論、IAMのベストプラクティス等も詳しく解説されています。
どれもAWS初学者にとって、とても分かりやすい内容になっていますよ!
よかったら参考にしてみて下さい!
コメント