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を活用できるようになります。
ぜひ基本的な考え方を理解しておきましょう。