AWSの基本的なところなのですが、IAMについてなんとなくしか分かっていません。
AWS用語が満載なので、用語説明から最終的にはIAMグループとIAMロールの違いまで纏めました。
見出し
- 用語説明(文字だけ)
- 用語説明(図を使って少し詳しく)
- IAMグループとIAMロールの違い
用語説明(文字だけ)
AWSアカウント作成時に自動的に生成されるユーザー。
1つのみ作成され、全ての操作ができる。
権限が強すぎるため、使うことは推奨されていない。
AWSアカウントに対して複数作成可能なユーザー。
このユーザを使用して、AWSコンソールにログインします。
AWS利用者1名に1つのIAMユーザーを作成し、運用していくのが一般的。
「どのAWSサービスの」、「どのリソースに対して」、「どんな操作を」、「許可するか(許可しないか)」、を設定するもの。
IAMポリシーを入れる箱みたいもの。
いろんなIAMポリシーを詰めて、IAMユーザーに紐づける。
IAMポリシーを入れる箱みたいもの。
いろんなIAMポリシーを詰めて、AWSサービス(EC2、CodePipelineなど)に紐づける。
用語説明(図を使って少し詳しく分かりやすく)
よく使うのが、AWS管理ポリシーとカスタマー管理ポリシーになります。
AWS管理ポリシーはAWSが事前に作ってくれたポリシー。
カスタマー管理ポリシーは自分で作るポリシー。
あと、インラインポリシーもありますが、これは私的にはあまり使わないので省略。
以下はRDS DBインスタンスの停止と起動のポリシーです。
Effect:許可するか(許可しないか)の設定。Allowは許可、Denyは拒否。
Action:どんな操作を対象とするかの設定。上記だとRDSインスタンスの起動と停止。
Resource:どのリソースにの設定。「123456789012」はAWSアカウント。
「"Resource": "*"」として全てのリソースOKにする場合が多い。
IAMグループ自体は空っぽの入れ物で、IAMポリシーを付ける。
IAMユーザーにIAMグループを付ける。
IAMユーザーに複数のIAMグループを付けたり、IAMユーザーに直接IAMポリシーを付けることも可能です。
IAMグループを間に入れてた方が管理はしやすいです。
IAMユーザーとIAMグループとポリシー
IAMポリシー自体は空っぽの入れ物で、IAMポリシーを付ける。
AWSサービス(EC2、Lambdaなど)にIAMロールを付ける。
例えばWebサーバとして利用するEC2インスタンスからS3にアクセスしたいとき、以下のような設定をしたりします。
すごくざっくり言うと(私のイメージでは)、
・IAMグループ:IAMユーザが使う。
・IAMロール:AWSサービスで使う。
自分なりのイメージなので、これで良いのか?というところもあり、少し不安がありますが、纏めました。
ここからさらにポリシーやロールなど細かく記載しようと思ったのですが、今回はここまでに。
【参考にしたサイト】
サイト内にYouTubeの動画もあるので、これを見ればかなり分かります。