ENGINEER BLOG ENGINEER BLOG
  • 公開日
  • 最終更新日

【AWS初学者向け】ハンズオンで学ぶIAMの基礎 〜ユーザー・グループ・ポリシーを実際に作ってみよう〜

この記事を共有する

目次

はじめに

こんにちは!パーソル&サーバーワークスの三宅です。

AWSアカウントを作成したら、まず最初に学んでおきたいサービスの1つが「AWS IAM(以下、IAM)」です。 IAMはAWSの中でも特に重要なサービスで、AWSを安全に使っていくための土台となる部分です。 とはいえ、「ユーザー」「グループ」「ポリシー」など聞き慣れない用語が多く、最初は戸惑う方も多いのではないでしょうか。

そこで今回は、実際にマネジメントコンソールを操作しながら、IAMの基本要素を体験できるハンズオン形式でご紹介します。

対象読者

  • AWSアカウントを作成したばかりの方
  • IAMという言葉は聞いたことがあるが、実際に触ったことはない方

前提条件

  • AWSアカウントを作成済みであること
  • AWSアカウントにサインインできる状態であること
  • ハンズオン用S3バケットが事前に作成された状態であること

IAMとは

IAMとは、「誰が」「何に対して」「どんな操作を許可されているか」を管理するAWSのサービスです。

AWSでは、アカウント作成時に発行される「ルートユーザー」という特別な権限を持つユーザーが存在します。 ルートユーザーはすべての操作が可能な非常に強い権限を持っているため、日常的な作業には使わず、IAMで作成した別のユーザーを使うことが推奨されています。

今回のハンズオンでは、まさにこの「ルートユーザーの代わりに使う、権限を絞ったユーザー」を実際に作成していきます。

ハンズオンの全体像

今回は、以下の流れでリソースを作成していきます。

  1. IAMポリシーを作成する(S3バケットの読み取り専用アクセスを許可する権限を定義)
  2. IAMグループを作成し、①のポリシーをアタッチする
  3. IAMユーザーを作成し、②のグループに所属させる
  4. 作成したユーザーでログインし、権限が正しく機能しているか確認する

最終的には、下図のような関係性ができあがります。

IAMポリシー(権限の定義)
   ↓ アタッチ
IAMグループ(権限のまとめ役)
   ↓ 所属
IAMユーザー(実際にログインする人)

それでは、1つずつ作成していきましょう。

ハンズオン① IAMポリシーを作成する

まずは、権限そのものを定義する「IAMポリシー」を作成します。 今回は題材として、任意のS3バケットに対する読み取り専用アクセスを許可するポリシーを作成します。

手順

  1. マネジメントコンソールにルートユーザー(または管理者権限を持つユーザー)でサインインします。 20260916_IAM基礎1.png
  2. 検索バーで「IAM」と入力し、IAMのダッシュボードに移動します。 20260916_IAM基礎2.png
  3. 左側のメニューから「ポリシー」を選択します。
  4. 「ポリシーを作成」ボタンをクリックします。 20260916_IAM基礎3.png
  5. ポリシーエディタで「JSON」タブを選択し、以下の内容を入力します。
    {
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets", 
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": "*"
        }
    ]
    }
    
    20260916_IAM基礎4.png
  6. 「次へ」をクリックし、ポリシー名(例:S3ReadOnlyPolicy-Handson)を入力します。 20260916_IAM基礎5.png
  7. 内容を確認し、「ポリシーの作成」をクリックします。

ポリシーの構文をちょこっと解説

先ほどのJSONには、IAMポリシーの基本となる3つの要素が含まれています。

Effect:許可(Allow)するか、拒否(Deny)するか
Action:何の操作を対象とするか(例:S3からオブジェクトを取得する操作)
Resource:どのリソースを対象とするか(今回は任意のS3バケットとその中身)

今回のポリシーは、「任意のS3バケットに対して、中身の一覧表示とオブジェクトの取得のみを許可する」という内容になっています。

ハンズオン② IAMグループを作成し、ポリシーをアタッチする

次に、ポリシーをまとめて管理するための「IAMグループ」を作成します。

IAMユーザーに直接ポリシーをアタッチすることもできますが、複数人が同じ権限を必要とする場面では、グループ単位で管理したほうが運用が楽になります。

手順

  1. IAMダッシュボードの左側メニューから「ユーザーグループ」を選択します。
  2. 「グループを作成」をクリックします。 20260916_IAM基礎6.png
  3. グループ名(例:S3ReadOnlyGroup-Handson)を入力します。
  4. 「許可ポリシーをアタッチ」の一覧から、ハンズオン①で作成した S3ReadOnlyPolicy-Handson にチェックを入れます。 20260916_IAM基礎7.png
  5. 「ユーザーグループを作成」をクリックします。

これで、「このグループに所属するユーザーは、指定したS3バケットを読み取れる」という状態が整いました。

ハンズオン③ IAMユーザーを作成し、グループに所属させる

いよいよ、実際にサインインする「IAMユーザー」を作成します。

手順

  1. IAMダッシュボードの左側メニューから「ユーザー」を選択します。
  2. 「ユーザーを作成」をクリックします。 20260916_IAM基礎8.png
  3. ユーザー名(例:handson-user)を入力します。
  4. 「AWS Management Consoleへのユーザーアクセスを提供する」にチェックを入れます。
  5. パスワードの設定方法を選択します(今回は検証用なので「カスタムパスワード」を選び、任意のパスワードを設定します)。
  6. 「次回のサインイン時にパスワードのリセットが必要」のチェックは、ハンズオンでは外しておくとスムーズです。 20260916_IAM基礎9.png
  7. 「次へ」をクリックし、許可の設定画面で「グループに追加」を選択します。
  8. ハンズオン②で作成したS3ReadOnlyGroup-Handsonにチェックを入れます。 20260916_IAM基礎10.png
  9. 内容を確認し、「ユーザーの作成」をクリックします。

作成が完了すると、サインイン用のURL(コンソールサインインURL)が表示されます。 このURLとユーザー名・パスワードは後で使うため、メモしておいてください。 20260916_IAM基礎11.png

ハンズオン④ 作成したユーザーでログインして権限を確認する

ここが今回のハンズオンで一番の見どころです。実際に作成したユーザーでサインインし、権限が意図通りに機能しているかを確認します。

手順

  1. 通常のブラウザとは別に、シークレットウィンドウ(プライベートウィンドウ)を開きます。
  2. ハンズオン③でメモしたサインインURLにアクセスします。
  3. 作成したユーザー名とパスワードでサインインします。

20260916_IAM基礎12.png

サインインできたら、以下を確認してみましょう。

① 許可された操作ができることを確認

S3のコンソールにアクセスし、検証用バケットの中身が一覧表示できること、オブジェクトをダウンロードできることを確認します。

20260916_IAM基礎13.png

② 許可されていない操作がエラーになることを確認

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

20260916_IAM基礎14.png

このエラーが出れば成功です。「許可した操作だけができて、それ以外は拒否される」----これがIAMにおける最小権限の原則です。必要な権限だけを与えることで、意図しない操作や事故を防ぐことができます。

後片付け

ハンズオンで作成したリソースは、検証用のIAMユーザーの認証情報が残ったままになっていると、セキュリティ上のリスクになります。以下の順番で削除しておきましょう。

  1. IAMユーザー(handson-user)を削除
  2. IAMグループ(S3ReadOnlyGroup-Handson)を削除
  3. IAMポリシー(S3ReadOnlyPolicy-Handson)を削除
  4. 検証用に作成したS3バケットも、不要であれば削除

削除の順番は、依存関係(グループにアタッチされたポリシーなど)でエラーが出ることがあるため、上記の順番(利用側から先に削除)で進めるとスムーズです。

最後に

今回は、IAMの基本要素である「ユーザー」「グループ」「ポリシー」を、実際に手を動かしながら学んでみました。

  • ポリシー:権限そのものを定義するJSON構文
  • グループ:ポリシーをまとめて、複数のユーザーに適用するための入れ物
  • ユーザー:人が実際にサインインして使うユーザー

この3つの関係性を理解することで、「誰に、どの権限を与えるのか」をIAMでどのように管理するのか、その基本的な考え方が体験できました。

一方で、実際のAWS運用では、今回紹介したIAMユーザーだけでなく、AWSサービス同士が安全に連携するためのIAMロールというものも頻繁に利用されます。 次回は、このIAMロールについて取り上げ、「IAMユーザーとの違い」を実際に手を動かしながら学んでいきたいと思います。

今回のハンズオンが、皆さんのAWS学習の第一歩となれば幸いです。ぜひ次回もご覧ください!

この記事は私が書きました

三宅 啓右

記事一覧

2025 Japan All AWS Certifications Engineers

三宅 啓右

この記事を共有する

クラウドのご相談

CONTACT

クラウド導入や運用でお悩みの方は、お気軽にご相談ください。
専門家がサポートします。

サービス資料ダウンロード

DOWNLOAD

ビジネスをクラウドで加速させる準備はできていますか?
今すぐサービス資料をダウンロードして、詳細をご確認ください。