AWS認定資格 WEB問題集&徹底解説
クラウドプラクティショナー
AWSサービスの一つであるAWS Identity and Access Management (AWS IAM)はどんな内容なのでしょうか?また、AWS認定資格のクラウドプラクティショナー(CLF)に合格するためには、サービスのどんなポイントを押さえておけばよいのでしょうか?
ここでは、そんなあなたの疑問に回答していきたいと思います
1. サービス概要
AWS Identity and Access Management (IAM) は、「誰が」「どのリソースに対して」「どの操作を」行えるかを制御する、AWSのアクセス管理サービスです。 認証(誰であるか)と認可(何を許可するか)を担い、最小権限の原則に基づくアクセス制御の基盤となります。
IAMはグローバルサービス(リージョンに依存しない)で、利用は無料です。主なユースケースは、アカウント内の権限管理、EC2/Lambda等のサービスへの権限委譲(ロール)、クロスアカウントアクセス、外部IdPとのフェデレーション、人間のサインオン管理(IAM Identity Center)などです。
2. 主な特徴と機能
2.1 IAMユーザー・グループ
IAMユーザーは個人やアプリ用の長期的なID(パスワード/アクセスキーを持つ)です。IAMグループはユーザーをまとめ、ポリシーを一括付与する単位です(グループにロールは割り当てられず、グループの入れ子もできません)。 近年は人間のアクセスにはユーザーではなくIAM Identity Centerの利用が推奨されます。
2.2 IAMロールとSTS
IAMロールは、永続的な認証情報を持たず一時的な認証情報(AWS STSが発行)を使って引き受ける(AssumeRole)IDです。ロールは信頼ポリシー(誰が引き受けられるか)と許可ポリシー(何ができるか)の2つで構成されます。 EC2への割り当て(インスタンスプロファイル)、Lambda等のサービスロール、クロスアカウント、SAML/OIDCフェデレーションなどに使います。
2.3 ポリシーの種類
- IDベースポリシー: ユーザー/グループ/ロールにアタッチ。AWS管理・カスタマー管理・インラインの3種。
- リソースベースポリシー: リソース側に付与(S3バケットポリシー、SQS/SNS、KMSキーポリシー、Lambdaリソースポリシー等)。クロスアカウント許可に有効。
- 権限境界(Permissions Boundary): IDが持てる権限の上限を定義(実際の権限は許可ポリシーとの積集合)。
- SCP(Service Control Policy): AWS Organizationsでアカウント全体の上限を設定(権限を付与はせず制限のみ)。
- セッションポリシー: AssumeRole時に渡し、その場限りでさらに権限を絞る。
2.4 ポリシー評価ロジック
ポリシーはJSON(Effect/Action/Resource/Condition)で記述します。評価は「デフォルト拒否(暗黙的Deny)→ 明示的Allow → 明示的Denyが最優先」。 いずれかのポリシー(SCP・権限境界・リソースベース等)に明示的Denyがあれば必ず拒否され、すべてに許可がなければ暗黙的に拒否されます。
2.5 多要素認証 (MFA) とルートユーザー保護
MFAは仮想MFA、ハードウェアトークン、FIDOセキュリティキー/パスキーに対応します。 ルートユーザーは最上位権限を持つため、日常利用せず、MFAを有効化し、アクセスキーは作成・保持しないのがベストプラクティスです。
2.6 監査・分析ツール
- IAM Access Analyzer: 外部公開アクセスの検出、未使用権限の特定、ポリシー検証、CloudTrailからの最小権限ポリシー生成。
- 認証情報レポート / アクセスアドバイザー: 認証情報の状態一覧や、各サービスへの最終アクセス日時を確認し棚卸し。
2.7 IAM Identity Center とフェデレーション
IAM Identity Center(旧 AWS SSO)は、複数アカウント・アプリへのシングルサインオンと一元的な権限割り当てを提供します。外部IdP(Okta、Entra ID等)や、SAML 2.0/OIDCによるフェデレーションにも対応します。
3. アーキテクチャおよび技術要素
- 管理者がユーザー/グループ/ロールを作成し、ポリシーを定義・アタッチ。
- プリンシパルがアクセスキーや一時認証情報、フェデレーションで認証。
- リクエスト時に、適用される全ポリシー(IDベース・リソースベース・SCP・権限境界・セッション)を評価。
- 明示的Denyがなく、いずれかで明示的Allowがあれば許可。なければ暗黙的に拒否。
- ロール引き受けはSTSが一時認証情報(数分〜数時間)を発行し、期限切れで自動失効。
IAMはAWSのグローバル基盤の一部として高可用・高スケーラビリティを提供し、利用者は基盤管理が不要です。
4. セキュリティと認証・認可
- 最小権限の原則: 必要な権限のみ付与し、Access Analyzerやアクセスアドバイザーで継続的に絞り込む。
- ロール優先・キー回避: 長期アクセスキーは避け、EC2/Lambda等にはIAMロール(一時認証情報)を使う。やむを得ない場合はキーを定期ローテーション。
- MFAの強制: ルートと特権ユーザーにMFAを必須化。条件キー
aws:MultiFactorAuthPresentで操作を制限可能。 - ガードレール: 組織全体はSCP、個別IDは権限境界で上限を設定。
- 条件(Condition): 送信元IP、VPC、MFA有無、タグ等で許可を絞る。ABAC(タグベース)でスケーラブルに管理。
- パスワードポリシー: 長さ・複雑さ・有効期限・再利用禁止を強制。
5. 料金形態
AWS IAM および IAM Access Analyzer(外部アクセス分析)は無料で利用できます。ただしIAMと連携する他サービス(EC2、S3、RDSなど)の利用料金は別途発生します。
6. よくあるアーキテクチャ・設計パターン
- サービスへの権限委譲: EC2/Lambda/ECSタスクにIAMロールを割り当て、アクセスキーを埋め込まずにAWSへアクセス。
- クロスアカウントアクセス: 信頼ポリシーで相手アカウントを許可し、AssumeRoleで一時的に権限を取得。
- フェデレーション: 企業IdP(SAML)やWebアイデンティティ(OIDC)からロールを引き受け、IAMユーザーを増やさない。
- 人間のサインオン: IAM Identity Centerで複数アカウントへSSOと権限セットを一元管理。
- ガードレール: Organizations+SCPでアカウント全体の禁止事項を強制し、権限境界で委譲先の上限を制御。
7. 設定・デプロイ手順(ハンズオン例)
- ルートユーザーにMFAを設定し、日常作業用のIAMユーザー/Identity Centerユーザーを用意。
- 職務に応じたグループ(または権限セット)を作成し、管理ポリシーをアタッチ。
- EC2やLambdaにはサービスロールを作成し、最小権限の許可ポリシーを付与。
- 必要に応じて権限境界やSCP、条件(MFA必須・送信元IP)でガードレールを設定。
- Access Analyzerと認証情報レポートで定期的に棚卸しし、不要権限を削除。
8. 試験で問われやすいポイント
8.1 ユーザー・グループ・ロールの使い分け
- Q: EC2上のアプリからS3へ安全にアクセスするには?
A: アクセスキーを埋め込まずIAMロール(インスタンスプロファイル)を割り当てる。 - Q: 多数のユーザーに同じ権限を付与するには?
A: IAMグループにポリシーをアタッチ(グループにロールは付与不可、入れ子不可)。 - Q: 一時的・限定的に権限を渡すには?
A: IAMロール+STSのAssumeRoleで一時認証情報を発行。
8.2 ポリシー評価ロジック(最頻出)
- Q: 許可と拒否が混在したらどうなる?
A: 明示的Denyが最優先で必ず拒否。次に明示的Allow、どれにも該当しなければ暗黙的Deny。 - Q: 許可ポリシーがあるのにアクセスできない原因は?
A: SCP・権限境界・リソースベースポリシー・セッションポリシーのいずれかにDenyや上限がある可能性。
8.3 ポリシーの種類とガードレール
- Q: 組織内の全アカウントで特定操作を一律禁止するには?
A: SCP(Organizations)。SCPは権限を付与せず上限を定めるだけ。 - Q: 委譲した管理者が自分以上の権限を作れないようにするには?
A: 権限境界(Permissions Boundary)で上限を設定。 - Q: クロスアカウントで他社アカウントにバケットを使わせるには?
A: リソースベースポリシー(S3バケットポリシー)で相手プリンシパルを許可。
8.4 ロールとフェデレーション
- Q: ロールを構成する2つのポリシーは?
A: 信頼ポリシー(誰が引き受けられるか)と許可ポリシー(何ができるか)。 - Q: 社内ADやIdPのユーザーにIAMユーザーを作らず権限を渡すには?
A: SAML 2.0/OIDCフェデレーションでロールを引き受け(AssumeRoleWithSAML / WebIdentity)。 - Q: 多数のアカウントへ人間のSSOを一元管理するには?
A: IAM Identity Center(旧AWS SSO)。
8.5 認証・認証情報の保護
- Q: ルートユーザーの扱いは?
A: 日常利用せず、MFAを有効化し、アクセスキーは作らない。請求や一部の限定操作のみ使用。 - Q: プログラムアクセスのベストプラクティスは?
A: 長期キーを避けロール(一時認証情報)を使う。キーを使う場合は定期ローテーション。 - Q: MFA必須の操作にしたいときの条件キーは?
A:aws:MultiFactorAuthPresent。送信元制限はaws:SourceIp。
8.6 監査・最小権限
- Q: 外部に公開されているリソースや未使用権限を見つけるには?
A: IAM Access Analyzer(外部アクセス検出・未使用アクセス分析・ポリシー検証・ポリシー生成)。 - Q: 各ユーザーが実際にどのサービスを使ったか確認するには?
A: アクセスアドバイザー(最終アクセス情報)と認証情報レポート。
8.7 類似・関連サービスとの比較
- Q: IAMとOrganizationsの違いは?
A: IAMはアカウント内のアクセス制御、Organizationsは複数アカウントの組織管理(SCPで上限を強制)。 - Q: IAMユーザーとIAM Identity Centerの違いは?
A: 人間のサインオンはIdentity Center推奨。IAMユーザーはアプリ・レガシー用途や個別ケースに限定。
8.8 その他の頻出ポイント
- グローバルサービス: IAMはリージョンに依存しない。
- 無料: IAM自体とAccess Analyzer(外部アクセス分析)は無料。
- ABAC vs RBAC: タグで権限を制御するABACは大規模環境でスケーラブル。