メインコンテンツへ移動
Security初級優先度 高

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

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

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

比較対象サービス

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

結論

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

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

用語一言でいうと主な使いどころ
IAMユーザー人やアプリに紐づくAWS利用者管理者や開発者のログイン
IAMロール一時的に権限を引き受ける仕組みLambda、EC2、GitHub Actionsなど
IAMポリシー何を許可・拒否するかを書いた権限定義S3読み取り許可、DynamoDB書き込み許可など

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

  • 誰が使うか:IAMユーザー
  • AWSサービスに権限を渡す:IAMロール
  • 何を許可するか:IAMポリシー

比較表

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

初学者向け説明

IAMユーザー

IAMユーザーは、AWSを操作する人やアプリケーションを表すIDです。

AWSコンソールにログインしたり、AWS CLIから操作したりできます。

ただし、アクセスキーを発行すると漏えいリスクがあるため、取り扱いに注意が必要です。

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コンソールにログインする
  • 管理者が請求やリソースを確認する
  • 学習初期にAWS CLIを使う

ただし、MFAを必ず設定し、アクセスキーの発行は最小限にします。

IAMロールを使うケース

  • 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ユーザーは利用者、IAMロールは一時的に権限を引き受ける仕組み、IAMポリシーは権限内容です。

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

次に学ぶ内容

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

関連比較