AWS IAM ってなに?初心者向けかんたん解説

IAMとは?

AWS IAM (アイアム) は、Amazon Web Services (AWS) の様々なサービスを使うための「アクセス権限」を管理する とても重要なサービスです。

イメージとしては、大きな会社の「受付(本人確認)」と「入館証(権限の付与)」のような役割を担っています。

なぜIAMが大切なの?

AWSアカウントを作ると、最初に「ルートユーザー」という、何でもできる最強の権限を持ったユーザーが作られます。これは会社の社長さんのようなものです。

でも、社長さんが毎日あらゆる部屋の鍵を開け閉めするのは大変ですし、間違って大事なものを壊してしまうリスクもありますよね?

それと同じで、普段からルートユーザーを使うのはとても危険です。

そこでIAMの出番です!

IAMを使うことで、「必要な人に、必要な権限だけを、必要な期間だけ与える」(これを「最小権限の原則」と言います)という、安全な運用が可能になります。

社員一人ひとりに、担当業務に必要な部屋の鍵だけを渡すイメージです。

IAMの2つの大事な役割:「認証」と「認可」

IAMには大きく分けて2つの役割があります。

認証 (Authentication)

  • 「あなたは誰ですか?」を確認すること。
  • 例:会社の受付で社員証を見せて本人確認する。
  • AWSでの例:ユーザーIDとパスワードでログインする。

認可 (Authorization)

  • 「あなたは何をしていいですか?」を確認し、許可すること。
  • 例:社員証で入れる部屋が決まっている(営業部の人は開発室には入れないなど)。
  • AWSでの例:ログインはできたけど、特定のファイル(S3バケット)を削除する権限はない、など。

IAMを構成する要素たち

IAMでは、主に以下の4つの要素を組み合わせてアクセス権限を管理します。

ユーザー (User)

  • AWSを操作する「人」や「プログラム」のことです。
  • ログインするためのID/パスワードや、プログラムが使うためのアクセスキーを持ちます。

例:

  • 開発者のAさん
  • 経理担当のBさん
  • ウェブサイトからデータを保存するプログラム

グループ (Group)

  • ユーザーをまとめるための「チーム」や「部署」のようなものです。
  • グループに対して権限(ポリシー)を設定すれば、所属するユーザー全員に同じ権限を適用できるので、管理がとても楽になります。

例:

  • 「開発チーム」グループ
  • 「参照専用」グループ

ロール (Role)

  • 特定の「役割」に対して与えられる一時的な権限です。
  • ユーザーだけでなく、AWSのサービス(例: EC2サーバー)に対しても割り当てることができます。

例:

  • EC2サーバーが、S3にある画像ファイルを読み取る
  • ID/パスワードを直接プログラムに書き込む必要がなくなり、より安全です

ポリシー (Policy)

  • 「許可証」や「ルールブック」のようなものです。
  • 「誰(ユーザー、グループ、ロール)が」「どのAWSサービス(EC2, S3など)の」「どのリソース(特定のファイルやサーバーなど)に対して」「どんな操作(読み取り、書き込み、削除など)を」「許可するか/拒否するか」をJSONという形式のテキストで定義します。

例:

  • 「開発者Aさんは、S3バケットXへのファイルのアップロード(書き込み)を許可する」
  • 「経理担当Bさんは、請求情報(Billing)の表示(読み取り)のみ許可する」

IAMを使うメリット

  • セキュリティ向上:
    ルートユーザーを使わず、最小権限を徹底することで、不正利用や操作ミスによる事故のリスクを大幅に減らせます。

  • 管理効率化:
    グループやロールを使うことで、ユーザーが増えたり役割が変わったりしても、権限の管理がしやすくなります。

まとめ

IAMは、AWSを安全かつ効率的に利用するための基本中の基本となるサービスです。

最初は少し難しく感じるかもしれませんが、「誰に」「何を」「どこまで許可するか」を適切に管理することで、安心してAWSを活用できるようになります。

ぜひ基本的な考え方を理解しておきましょう。