第2章
IAMと最小権限 — ユーザー・グループ・ロール・ポリシーを設計する
約4分

学習者IAMユーザー、ロール、ポリシーが全部「権限」っぽく見えて、何をどう使い分けるのか混乱します。
AWSのセキュリティ設計は、ほぼ必ず IAM(Identity and Access Management) から始まります。誰が、どのAWSリソースに、どの操作をできるのかを決める仕組みです。
SAA-C03では、IAMユーザー、IAMグループ、IAMロール、IAMポリシー、MFA、ルートユーザーの扱いが頻出です。
IAMの基本構成
| 要素 | 役割 | 実務での使い方 |
|---|---|---|
| IAMユーザー | 人または個別の認証主体 | 直接利用は減らし、必要最小限にする |
| IAMグループ | ユーザーの集合 | 開発者、運用者などの権限セットに使う |
| IAMロール | 一時的に引き受ける権限 | EC2、Lambda、ECS、クロスアカウントで使う |
| IAMポリシー | 許可・拒否のルール | 最小権限でActionとResourceを絞る |
実務では、長期的なアクセスキーを持つIAMユーザーより、IAMロールと一時認証情報を優先します。EC2からS3へアクセスするなら、アクセスキーをサーバーに置くのではなく、EC2インスタンスプロファイルでIAMロールを付与します。
最小権限の考え方
最小権限とは、「必要な操作だけを、必要なリソースにだけ許可する」ことです。
悪い例:
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}json
良い方向性:
{
"Effect": "Allow",
"Action": ["s3:GetObject"],
"Resource": ["arn:aws:s3:::example-bucket/reports/*"]
}json
実務では最初から完璧な最小権限を書くのは難しいため、AWS IAM Access AnalyzerやCloudTrailの履歴を使って権限を絞り込むことがあります。
IAMロールが正解になりやすい場面
SAA-C03では、次のような要件が出たらIAMロールを疑います。
| 要件 | 代表的な設計 |
|---|---|
| EC2からS3へアクセスしたい | EC2にIAM Roleを付与する |
| LambdaからDynamoDBへアクセスしたい | Lambda実行ロールに権限を付与する |
| 別AWSアカウントのリソースを操作したい | クロスアカウントIAM Roleを使う |
| 一時的な認証情報を発行したい | AWS STSを使う |
アクセスキーをアプリケーションに埋め込む構成は避けます。漏洩時の影響が大きく、ローテーションも難しくなるためです。
まとめ
IAMはAWS設計の土台です。
- ルートユーザーは保護し、日常利用しない
- 人のアクセスはIAM Identity Centerやフェデレーションを検討する
- AWSサービス間のアクセスはIAMロールを使う
- ポリシーは最小権限で設計する
- 長期アクセスキーより一時認証情報を優先する
次の章では、複数アカウント、IAM Identity Center、Organizations、SCPを使った組織単位のアクセス管理を扱います。
AWSクイズに挑戦するこの章で学んだAWSの知識を、4択クイズでアウトプットして定着させよう
