この記事でわかること(CLF対策)
- IAMロールが「一時的」と言われる本当の意味
- IAMユーザー/ポリシーとの違い(試験で問われやすい)
- 代表的な利用例(EC2 / Lambda / クロスアカウント / フェデレーション)
- 混同しやすいポイント(「ロールが時限で消える?」問題)
IAMロールとは(定義)
IAMロールは、AWS上で「ある主体(人・サービス・外部IdPなど)が引き受け(Assume)ることで、指定された権限を使えるようになる“役割”」です。 ロール自体はアクセスキーのような長期資格情報を持たず、必要なときに一時的な認証情報(セッション)を発行して利用します。
公式ドキュメント: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html
「一時的」の正体:一時的なのは“権限”ではなく“認証情報(資格情報)”
「IAMロールは一時的に権限を付与する」と言われると、ロールや権限ポリシー自体が時限で消えるイメージを持ちがちですが、ポイントは次の通りです。
ロールとセッションの関係(ここが試験頻出)
- ロール(Role):常設の“箱”。信頼ポリシーと権限ポリシーを保持する。
- 一時的な認証情報(Temporary security credentials):ロールを引き受けたときに払い出される“期限つきの鍵”。期限が来ると使えなくなる。
一時的な認証情報についての公式説明: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html
IAMロールを構成する2つの要素:信頼ポリシーと権限ポリシー
IAMロールは、ざっくり次の2層で理解すると混乱が減ります。
- 信頼ポリシー(Trust policy):誰(どの主体)がこのロールを引き受けてよいか
- 例:EC2サービス(ec2.amazonaws.com)が引き受けてよい
- 例:別アカウントのIAMユーザー/ロールが引き受けてよい
- 権限ポリシー(Permissions policy):引き受けた主体は何をしてよいか(Allow/Deny)
- 例:S3のGetObjectだけ許可
- 例:CloudWatch Logsへの書き込みを許可
代表的な利用例(CLFで押さえるべきパターン)
1) EC2にS3アクセス権を与える(アクセスキーを配らない)
EC2上のアプリがS3へアクセスしたいとき、IAMユーザーの長期アクセスキーをサーバーに置くのは避けるのが基本です。 代わりにEC2へIAMロール(正確にはインスタンスプロファイル)を付与すると、EC2はロールを引き受けて一時的な認証情報を取得し、定期的に更新しながら安全にAWS APIを呼べます。
参考(EC2のIAMロール): https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html
2) Lambdaの実行ロール(Execution role)
Lambda関数がCloudWatch Logsにログを書いたり、DynamoDBやS3へアクセスしたりする場合、Lambdaに実行ロールを割り当てます。 関数実行時にロールが引き受けられ、必要な権限だけが使われます(最小権限が重要)。
参考(Lambda 実行ロール): https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html
3) クロスアカウントアクセス(別アカウントのロールをAssumeRole)
監査や運用で「管理アカウントから各AWSアカウントへ一時的に入って作業する」ケースでは、クロスアカウントでロールを引き受けます。 長期キー共有を避けつつ、必要な時間だけ権限を使えるのが利点です。
参考(STS AssumeRole API): https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html
4) フェデレーション(外部IdPや社内SSOから一時的にAWSへ)
企業のSSO(SAML/OIDCなど)で認証したユーザーが、AWSに一時的な認証情報でログイン・操作する仕組みも「ロール+一時的認証情報」の代表例です。 CLFでは「長期アクセスキーを配らず、STSで一時的認証情報を使う」という発想が押さえどころです。
参考(STS 概要): https://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html
試験で混同しやすいポイント:ロールは“時限で消える”のか?
ここは誤解が多いので、あえて3区分で整理します。
(1) 確実に言えること
- IAMロールは「誰が引き受けられるか(信頼)」と「何ができるか(権限)」を定義する“常設の設定”である。
- ロールを引き受けると、期限付きの一時的な認証情報(Temporary security credentials)が発行される。
- 一時的な認証情報は有効期限が切れると利用できなくなる(再取得が必要)。
(2) 推測(確度と根拠)
- 「ロールが一時的」と説明される場面の多くは、 “権限が使えるのはセッションの有効期限内だけ”という意味で言っている可能性が高いです。 (根拠:AWS公式がロール利用時に一時的認証情報を使うことを明確に説明しているため)
(3) 不明点(追加で確認すべき点)
- 「有効期限が何分〜何時間か」は、利用形態(どのSTS操作・どのサービス連携・ポリシー設定)で変わり得ます。 具体的な秒数・最大値まで試験対策として固定で覚える場合は、受験範囲やAWS公式の該当ページで確認してください。
IAMユーザーとIAMロールの違い(超重要)
| 観点 | IAMユーザー | IAMロール |
|---|---|---|
| 長期資格情報(アクセスキー等) | 持てる(管理が必要) | 持たない(セッションで一時的認証情報) |
| 想定用途 | 人・固定的な主体 | サービス、クロスアカウント、一時的アクセス |
| セキュリティ上の基本 | 最小権限+厳格管理 | 最小権限+“鍵を配らない”設計に向く |
CLF向け:覚え方(要点だけ)
- ロール=役割(常設)、セッション=期限つきの鍵
- サービスにアクセスキーを持たせない → 代表解がIAMロール
- 別アカウントへ入る → AssumeRole(STS)
- SSO/フェデレーション → 一時的認証情報(STS)
あわせて押さえたいIAMのベストプラクティス
「最小権限」「ルートユーザーを日常利用しない」「長期キー管理の徹底」など、CLFで頻出の考え方はIAMベストプラクティスに整理されています。
AWS Certified Cloud Practitioner(試験公式ページ)
試験の出題範囲や前提知識の確認はこちら: https://aws.amazon.com/certification/certified-cloud-practitioner/
