IAM ロール完全解説|一時権限委譲とアクセスキー不要の仕組み

IAM ロールは AWS リソース(EC2・Lambda・ECS)や別アカウント・連携 ID に一時的な権限を付与する仕組み。アクセスキーをコードに埋め込まず、STS(Security Token Service)が発行する一時クレデンシャルで認証する。クロスアカウント・サ...

サービス・ユーザー・別アカウントに一時的な権限を付与する仕組み。アクセスキーを使わない安全な認証手段。


1. 概要(端的に)

IAM ロールは AWS リソース(EC2・Lambda・ECS)や別アカウント・連携 ID に一時的な権限を付与する仕組み。アクセスキーをコードに埋め込まず、STS(Security Token Service)が発行する一時クレデンシャルで認証する。クロスアカウント・サービス間連携・フェデレーションの全てに使われる。


2. 何ができるか

  • EC2 / Lambda / ECS への権限付与:コードから AWS API を呼べる
  • クロスアカウントアクセス:別アカウントの権限を AssumeRole で取得
  • フェデレーション:SAML / OIDC(Google / Microsoft / GitHub)統合
  • 一時クレデンシャル:STS で 15 分〜36 時間の有効期限
  • AssumeRole:別ロールへの切替

3. 特徴

観点特徴
アクセスキー不要一時クレデンシャル方式
有効期限15 分〜36 時間(デフォルト 1 時間)
対象サービス・別アカウント・フェデレーション ID
追加料金無料
構成要素信頼ポリシー + 権限ポリシー

信頼ポリシー vs 権限ポリシー

  • 信頼ポリシー(Trust Policy):「誰がこのロールを引き受けられるか」
  • 権限ポリシー(Permissions Policy):「このロールは何ができるか」
信頼ポリシー:
{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Allow",
    "Principal": {"Service": "ec2.amazonaws.com"},
    "Action": "sts:AssumeRole"
  }]
}

権限ポリシー:
{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Allow",
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::my-bucket/*"
  }]
}

4. 仕組み

ロールは ユーザーやサービスが「引き受ける(Assume)」 ことで一時クレデンシャルを取得する。

動作の流れ(EC2 の例)

  1. EC2 にロールをアタッチ
  2. EC2 上のアプリが AWS SDK 呼び出し
  3. SDK が インスタンスメタデータ(IMDS) から一時クレデンシャル取得
  4. AWS API 呼び出し
  5. 1 時間ごとに自動更新

クロスアカウント

[アカウント A: 利用側]
  ユーザー X
    ↓ AssumeRole
[アカウント B: 提供側]
  ロール「ReadOnlyAccess」
    ↓ 一時クレデンシャル
  S3 / RDS にアクセス

IRSA(IAM Roles for Service Accounts)

  • EKS の Kubernetes ServiceAccount に IAM Role を紐付け
  • Pod 単位で AWS 権限を細かく制御

IAM ロール vs IAM ユーザー

観点ロールユーザー
用途サービス・一時権限人間
クレデンシャル一時(STS)永続(アクセスキー)
ローテーション自動手動
推奨度積極使用アクセスキー回避

5. ユースケース

ユースケース 1:EC2 から S3 アクセス

アクセスキーを EC2 に置かない。

ユースケース 2:Lambda から DynamoDB

ロールで権限付与。

ユースケース 3:マルチアカウント運用

本番アカウントへの管理アクセスを AssumeRole で。

ユースケース 4:CI/CD(GitHub Actions)

OIDC + AssumeRoleWithWebIdentity でアクセスキーレス。

ユースケース 5:オンプレ AD 統合

SAML フェデレーションで AD ユーザーが AWS 利用。


6. 関連用語


7. 関連サイト

AWS 公式

参考


🎓 試験での出題傾向

試験重要度主な出題パターン
CLFロールの概念・ユーザーとの違い
SAAEC2/Lambda へのロール付与、クロスアカウント
DVAアプリからのロール利用(最頻出
SOAロール運用・監査