- 公開日
- 最終更新日
【AWS初学者向け】ハンズオンで学ぶIAMの基礎 〜ユーザー・グループ・ポリシーを実際に作ってみよう〜
この記事を共有する
目次
はじめに
こんにちは!パーソル&サーバーワークスの三宅です。
AWSアカウントを作成したら、まず最初に学んでおきたいサービスの1つが「AWS IAM(以下、IAM)」です。 IAMはAWSの中でも特に重要なサービスで、AWSを安全に使っていくための土台となる部分です。 とはいえ、「ユーザー」「グループ」「ポリシー」など聞き慣れない用語が多く、最初は戸惑う方も多いのではないでしょうか。
そこで今回は、実際にマネジメントコンソールを操作しながら、IAMの基本要素を体験できるハンズオン形式でご紹介します。
対象読者
- AWSアカウントを作成したばかりの方
- IAMという言葉は聞いたことがあるが、実際に触ったことはない方
前提条件
- AWSアカウントを作成済みであること
- AWSアカウントにサインインできる状態であること
- ハンズオン用S3バケットが事前に作成された状態であること
IAMとは
IAMとは、「誰が」「何に対して」「どんな操作を許可されているか」を管理するAWSのサービスです。
AWSでは、アカウント作成時に発行される「ルートユーザー」という特別な権限を持つユーザーが存在します。 ルートユーザーはすべての操作が可能な非常に強い権限を持っているため、日常的な作業には使わず、IAMで作成した別のユーザーを使うことが推奨されています。
今回のハンズオンでは、まさにこの「ルートユーザーの代わりに使う、権限を絞ったユーザー」を実際に作成していきます。
ハンズオンの全体像
今回は、以下の流れでリソースを作成していきます。
- IAMポリシーを作成する(S3バケットの読み取り専用アクセスを許可する権限を定義)
- IAMグループを作成し、①のポリシーをアタッチする
- IAMユーザーを作成し、②のグループに所属させる
- 作成したユーザーでログインし、権限が正しく機能しているか確認する
最終的には、下図のような関係性ができあがります。
IAMポリシー(権限の定義)
↓ アタッチ
IAMグループ(権限のまとめ役)
↓ 所属
IAMユーザー(実際にログインする人)
それでは、1つずつ作成していきましょう。
ハンズオン① IAMポリシーを作成する
まずは、権限そのものを定義する「IAMポリシー」を作成します。 今回は題材として、任意のS3バケットに対する読み取り専用アクセスを許可するポリシーを作成します。
手順
- マネジメントコンソールにルートユーザー(または管理者権限を持つユーザー)でサインインします。

- 検索バーで「IAM」と入力し、IAMのダッシュボードに移動します。

- 左側のメニューから「ポリシー」を選択します。
- 「ポリシーを作成」ボタンをクリックします。

- ポリシーエディタで「JSON」タブを選択し、以下の内容を入力します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets", "s3:GetObject", "s3:ListBucket" ], "Resource": "*" } ] }
- 「次へ」をクリックし、ポリシー名(例:S3ReadOnlyPolicy-Handson)を入力します。

- 内容を確認し、「ポリシーの作成」をクリックします。
ポリシーの構文をちょこっと解説
先ほどのJSONには、IAMポリシーの基本となる3つの要素が含まれています。
Effect:許可(Allow)するか、拒否(Deny)するか
Action:何の操作を対象とするか(例:S3からオブジェクトを取得する操作)
Resource:どのリソースを対象とするか(今回は任意のS3バケットとその中身)
今回のポリシーは、「任意のS3バケットに対して、中身の一覧表示とオブジェクトの取得のみを許可する」という内容になっています。
ハンズオン② IAMグループを作成し、ポリシーをアタッチする
次に、ポリシーをまとめて管理するための「IAMグループ」を作成します。
IAMユーザーに直接ポリシーをアタッチすることもできますが、複数人が同じ権限を必要とする場面では、グループ単位で管理したほうが運用が楽になります。
手順
- IAMダッシュボードの左側メニューから「ユーザーグループ」を選択します。
- 「グループを作成」をクリックします。

- グループ名(例:S3ReadOnlyGroup-Handson)を入力します。
- 「許可ポリシーをアタッチ」の一覧から、ハンズオン①で作成した S3ReadOnlyPolicy-Handson にチェックを入れます。

- 「ユーザーグループを作成」をクリックします。
これで、「このグループに所属するユーザーは、指定したS3バケットを読み取れる」という状態が整いました。
ハンズオン③ IAMユーザーを作成し、グループに所属させる
いよいよ、実際にサインインする「IAMユーザー」を作成します。
手順
- IAMダッシュボードの左側メニューから「ユーザー」を選択します。
- 「ユーザーを作成」をクリックします。

- ユーザー名(例:handson-user)を入力します。
- 「AWS Management Consoleへのユーザーアクセスを提供する」にチェックを入れます。
- パスワードの設定方法を選択します(今回は検証用なので「カスタムパスワード」を選び、任意のパスワードを設定します)。
- 「次回のサインイン時にパスワードのリセットが必要」のチェックは、ハンズオンでは外しておくとスムーズです。

- 「次へ」をクリックし、許可の設定画面で「グループに追加」を選択します。
- ハンズオン②で作成したS3ReadOnlyGroup-Handsonにチェックを入れます。

- 内容を確認し、「ユーザーの作成」をクリックします。
作成が完了すると、サインイン用のURL(コンソールサインインURL)が表示されます。
このURLとユーザー名・パスワードは後で使うため、メモしておいてください。

ハンズオン④ 作成したユーザーでログインして権限を確認する
ここが今回のハンズオンで一番の見どころです。実際に作成したユーザーでサインインし、権限が意図通りに機能しているかを確認します。
手順
- 通常のブラウザとは別に、シークレットウィンドウ(プライベートウィンドウ)を開きます。
- ハンズオン③でメモしたサインインURLにアクセスします。
- 作成したユーザー名とパスワードでサインインします。

サインインできたら、以下を確認してみましょう。
① 許可された操作ができることを確認
S3のコンソールにアクセスし、検証用バケットの中身が一覧表示できること、オブジェクトをダウンロードできることを確認します。

② 許可されていない操作がエラーになることを確認
同じバケットに対して、ファイルのアップロードや削除を試してみてください。今回のポリシーではs3:PutObjectやs3:DeleteObjectを許可していないため、以下のような「Access Denied」のエラーが表示されるはずです。

このエラーが出れば成功です。「許可した操作だけができて、それ以外は拒否される」----これがIAMにおける最小権限の原則です。必要な権限だけを与えることで、意図しない操作や事故を防ぐことができます。
後片付け
ハンズオンで作成したリソースは、検証用のIAMユーザーの認証情報が残ったままになっていると、セキュリティ上のリスクになります。以下の順番で削除しておきましょう。
- IAMユーザー(handson-user)を削除
- IAMグループ(S3ReadOnlyGroup-Handson)を削除
- IAMポリシー(S3ReadOnlyPolicy-Handson)を削除
- 検証用に作成したS3バケットも、不要であれば削除
削除の順番は、依存関係(グループにアタッチされたポリシーなど)でエラーが出ることがあるため、上記の順番(利用側から先に削除)で進めるとスムーズです。
最後に
今回は、IAMの基本要素である「ユーザー」「グループ」「ポリシー」を、実際に手を動かしながら学んでみました。
- ポリシー:権限そのものを定義するJSON構文
- グループ:ポリシーをまとめて、複数のユーザーに適用するための入れ物
- ユーザー:人が実際にサインインして使うユーザー
この3つの関係性を理解することで、「誰に、どの権限を与えるのか」をIAMでどのように管理するのか、その基本的な考え方が体験できました。
一方で、実際のAWS運用では、今回紹介したIAMユーザーだけでなく、AWSサービス同士が安全に連携するためのIAMロールというものも頻繁に利用されます。 次回は、このIAMロールについて取り上げ、「IAMユーザーとの違い」を実際に手を動かしながら学んでいきたいと思います。
今回のハンズオンが、皆さんのAWS学習の第一歩となれば幸いです。ぜひ次回もご覧ください!
この記事は私が書きました
三宅 啓右
記事一覧2025 Japan All AWS Certifications Engineers