メインコンテンツへ移動
セキュリティ初級優先度 高

IAMユーザー・IAMロール・IAMポリシーの違いを初心者向けに解説

AWSの権限管理で重要なIAMユーザー、IAMロール、IAMポリシーの違い、試験ポイント、実務での使い分けを整理します。

公開日: 2026-06-01/更新日: 2026-08-20
CLF-C02SAA-C03

比較対象サービス

サービス名をクリックすると、用語詳細ページで復習できます。

結論

IAMはAWSの権限管理サービスです。

IAMユーザー、IAMロール、IAMポリシーは、それぞれ役割が違います。

用語一言でいうと主な使いどころ
IAMユーザー長期認証情報を持てるAWSアカウント内のIDフェデレーション非対応の例外、学習・検証
IAMロール一時的に権限を引き受ける仕組みLambda、EC2、GitHub Actions、フェデレーションなど
IAMポリシー何を許可・拒否するかを書いた権限定義S3読み取り許可、DynamoDB書き込み許可など

迷ったら、まずはこう判断します。

  • 人の通常アクセス:フェデレーションでIAMロールを引き受ける
  • IAMユーザー:フェデレーション非対応の例外や学習用途
  • AWSサービスに権限を渡す:IAMロール
  • 何を許可するか:IAMポリシー

比較表

項目IAMユーザーIAMロールIAMポリシー
種類ID権限を引き受ける仕組み権限ルール
主な対象例外的な人、特定用途AWSサービス、外部ID、別アカウントユーザー、グループ、ロール
認証情報パスワード、アクセスキー一時的な認証情報認証情報は持たない
主な用途フェデレーション非対応の例外、学習・検証Lambda実行、EC2権限、OIDC連携、人のフェデレーション許可アクションと対象リソースの定義
セキュリティ観点MFA、アクセスキー管理、用途限定が重要長期キー不要で安全にしやすい最小権限が重要
このプロジェクトでの用途例外的な管理用に限定Lambda実行ロール、GitHub ActionsロールDynamoDB PutItem、S3デプロイ許可など

初学者向け説明

IAMユーザー

IAMユーザーは、AWSアカウント内に作る長期認証情報を持てるIDです。

AWSコンソールにログインしたり、AWS CLIから操作したりできますが、人間の通常アクセスではIAM Identity Centerなどのフェデレーションを優先します。

IAMユーザーを使うのは、フェデレーションで対応できないケースや学習・検証に限定します。アクセスキーを発行すると漏えいリスクがあるため、取り扱いに注意が必要です。

IAMロール

IAMロールは、特定の主体が一時的に権限を引き受けるための仕組みです。

例えば、LambdaがDynamoDBに書き込む場合、Lambda関数にIAMロールを付与します。

このプロジェクトでは、問い合わせ送信LambdaにDynamoDBへの書き込み権限だけを持たせる設計にします。

IAMポリシー

IAMポリシーは、どの操作をどのリソースに対して許可するかをJSONで定義するものです。

例えば、問い合わせLambdaには dynamodb:PutItem だけを許可します。

不要な dynamodb:*AdministratorAccess は付けません。

試験で問われるポイント

CLF-C02で問われやすいポイント

  • IAMはAWSの認証・認可を管理するサービス
  • 人のアクセスはフェデレーションと一時的な認証情報を優先する
  • IAMユーザーを使う場合はMFAを設定する
  • rootユーザーは日常利用しない
  • IAMポリシーで権限を定義する
  • 最小権限の原則が重要
  • IAMロールはAWSサービスに権限を付与するときによく使う

SAA-C03で問われやすいポイント

  • EC2やLambdaに権限を与える場合はIAMロールを使う
  • 長期アクセスキーよりIAMロールを優先する
  • クロスアカウントアクセスではIAMロールを使う
  • GitHub Actionsなど外部サービス連携ではOIDC + IAMロールが安全
  • リソース単位でポリシーを絞る
  • * を多用した過剰権限は避ける

実務での使い分け

IAMユーザーを使うケース

  • フェデレーションで対応できない特定用途
  • 学習初期にAWS CLIやコンソールの仕組みを確認する
  • 緊急時や例外運用として明確に管理する

ただし、人間の通常アクセスではIAM Identity Centerなどのフェデレーションを優先します。IAMユーザーを使う場合はMFAを必ず設定し、アクセスキーの発行は最小限にします。

IAMロールを使うケース

  • IAM Identity Centerや外部IdPから人が一時的に権限を引き受ける
  • LambdaからDynamoDBに書き込む
  • EC2からS3を読む
  • GitHub ActionsからS3へデプロイする
  • 別AWSアカウントから一時的にアクセスする

このプロジェクトでは、以下のIAMロールが登場します。

  • Lambda問い合わせ送信用ロール
  • GitHub Actionsデプロイ用ロール

IAMポリシーを使うケース

  • LambdaにDynamoDB PutItemだけを許可する
  • GitHub ActionsにS3アップロードだけを許可する
  • CloudFront Invalidationだけを許可する
  • S3バケットへの読み取りをCloudFrontにだけ許可する

ポリシーでは、ActionとResourceを絞ることが重要です。

よくある間違い

間違い1:IAMユーザーにAdministratorAccessを常用する

学習初期は広い権限で進めたくなります。

ただし、本番やポートフォリオ説明では危険です。

長期的には、作業ごとに権限を分けるべきです。

間違い2:Lambda内にAWSアクセスキーを書く

LambdaにはIAMロールを付けます。

コード内にAWSアクセスキーを書くのは危険です。

このプロジェクトでも、秘密情報の直書きは禁止です。

間違い3:IAMロールとIAMポリシーを同じものだと思う

IAMロールは権限を引き受ける入れ物です。

IAMポリシーは権限の内容です。

ロールにポリシーを付けることで、何ができるかが決まります。

間違い4:Resourceを常に * にする

* はすべてを意味します。

実務では、対象のS3バケットやDynamoDBテーブルなどに絞ります。

関連用語

関連問題

まとめ

IAMユーザー、IAMロール、IAMポリシーはAWSセキュリティの基礎です。

IAMユーザーは長期認証情報を持てるID、IAMロールは一時的に権限を引き受ける仕組み、IAMポリシーは権限内容です。

この違いを説明できると、AWSポートフォリオのセキュリティ設計も説明しやすくなります。

次に学ぶ内容

比較で違いを理解したら、関連用語と模擬問題で知識を確認してください。資格試験では「似ているサービスの使い分け」が問われます。

関連比較