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 の例)
- EC2 にロールをアタッチ
- EC2 上のアプリが AWS SDK 呼び出し
- SDK が インスタンスメタデータ(IMDS) から一時クレデンシャル取得
- AWS API 呼び出し
- 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. 関連用語
- IAM — IAM ロールの基盤
- IAM-Policy — ロールに紐付くポリシー
- EC2 / Lambda / ECS — ロールの主要対象
- Identity-Center — フェデレーション統合
7. 関連サイト
AWS 公式
参考
🎓 試験での出題傾向
| 試験 | 重要度 | 主な出題パターン |
|---|---|---|
| CLF | 高 | ロールの概念・ユーザーとの違い |
| SAA | 高 | EC2/Lambda へのロール付与、クロスアカウント |
| DVA | 高 | アプリからのロール利用(最頻出) |
| SOA | 高 | ロール運用・監査 |