IAM(Identity and Access Management)は、AWSで 「誰が・どのサービスに・何をできるか」を管理する 仕組みです。AWSアカウントを安全に使うための土台で、認証(本人確認)と 認可(権限の付与)の両方をここで扱います。
登場人物は4つです。
- ユーザー … 人やアプリに対応する個別のID。
- グループ … ユーザーをまとめて、同じ権限を一括で与える箱。
- ロール … 一時的に権限を「借りる」仕組み。EC2などのサービスに権限を持たせるときに使う。
- ポリシー … 「S3の読み取りを許可」のように、できることをJSON形式で書いたルール。ユーザー・グループ・ロールに割り当てる。
基本の考え方は 最小権限の原則 ― 必要な権限だけを与え、余計な権限は持たせないことです。あわせて、全権限を持つ ルートユーザー は普段使わず、多要素認証(2要素認証)を有効にするのが鉄則です。
なぜ利用者側が権限設定に責任を持つのかは、責任共有モデル を読むと腹落ちします。詳しくは AWS入門コースの IAM ― ユーザー・グループ・ロール・ポリシー で解説しています。