変更要約: SCS-C02 第4章を深掘り(比較表・シナリオ・FAQ・ひっかけ・深掘り段落を各節に追加、図を日本語版に対応)
4.3最小権限の実現と監査
権限の最小化——IAM Access Analyzer、アクセスアドバイザー(最終アクセス情報)、ポリシー検証、ロールの一時化、ルートユーザー保護——を理解します。過剰な権限を継続的に削ります。
権限は最小限に保ち続けます。未使用権限を検出し、外部公開を分析し、ルートユーザーを保護します。
4.3.1最小権限と監査
- IAM Access Analyzer:外部公開や未使用アクセスを検出し、最小権限を支援する。
- アクセスアドバイザー:最終アクセス情報で使われていない権限を特定し削減する。
- ロールの一時化:人には長期ユーザーより一時ロールを使わせ、攻撃面を減らす。
- ルートユーザー保護:MFA 必須・日常利用禁止・アクセスキー削除で厳重に保護。
「外部公開/未使用アクセスの検出=IAM Access Analyzer」「未使用権限の特定=アクセスアドバイザー(最終アクセス)」「人は一時ロール(長期キー削減)」「ルートは MFA+日常利用禁止+キー削除」 は SCS-C02 で頻出です。ルートユーザーのアクセスキーは作らない/削除するのが鉄則です。
SCS-C02 の最小権限は「過剰権限を継続的に検出・削減し、特権を厳重に守る」運用を問います。IAM Access Analyzer は、(1) 外部アクセスアナライザーで S3/ロール/KMS/Secrets/SQS 等がアカウント/組織の外部に公開されていないかを検出、(2) 未使用アクセスアナライザーで一定期間使われていないロール/権限/アクセスキーを洗い出し、(3) ポリシー検証(IAM ポリシーチェック)で文法・セキュリティ上の問題を指摘、(4) CloudTrail からのポリシー生成で実際の利用に基づく最小権限ポリシーを作成します。アクセスアドバイザー(最終アクセス情報)は、ロール/ユーザーが各サービスに最後にアクセスした日時を示し、未使用権限の削減に使います。運用面では、人間には長期 IAM ユーザーを極力作らず、Identity Center/フェデレーションで一時ロールを使わせ、サービスにはロール(一時認証)を割り当てます。ルートユーザーは最も強力なため、MFA(できればハードウェア)を必須化、日常運用に使わない、アクセスキーは作らない/削除、連絡先と請求のみに限定し、組織では SCP でルートの危険な操作を制限することも検討します。さらにタグベースのアクセス制御(ABAC)でスケーラブルに権限を管理できます。設計の要は、Access Analyzer/アクセスアドバイザーで過剰権限を継続削減し、一時認証を基本に、ルートを厳重保護することです。
| 目的 | 手段 | 要点 |
|---|---|---|
| 外部公開の検出 | IAM Access Analyzer(外部) | S3/ロール/KMS 等の意図しない公開 |
| 未使用権限の削減 | 未使用アクセス分析 / アクセスアドバイザー | 最終アクセス情報で特定 |
| 最小権限ポリシー生成 | Access Analyzer(CloudTrail から) | 実利用ベースで生成 |
| 特権の保護 | ルート保護+一時ロール | MFA/キー削除・長期ユーザー削減 |
シナリオ:長年運用したアカウントで、付与しすぎた権限と外部公開リソースを棚卸しして最小権限へ近づけたい。→ IAM Access Analyzer の外部アクセス分析で意図しない外部公開(S3/ロール/KMS)を検出し是正、未使用アクセス分析とアクセスアドバイザーの最終アクセス情報で使われていない権限/古いアクセスキーを特定して削除。実利用に基づくポリシー生成で最小権限ポリシーを作り直し、人は Identity Center の一時ロールに移行、ルートは MFA+アクセスキー削除で保護します。
FAQ:IAM Access Analyzer とアクセスアドバイザーはどう違う? Access Analyzer は「リソースが外部に公開されていないか」「未使用のアクセスはないか」を分析し、ポリシー検証/生成も行います。アクセスアドバイザー(最終アクセス情報)は、特定のロール/ユーザーが各サービスに最後にアクセスした日時を示し、使われていない権限の削減に使います。前者は公開/未使用の発見と検証、後者は権限の利用実績の確認、と役割が異なります。
ひっかけ:ルートユーザーにアクセスキーを発行して自動化に使うのは重大なアンチパターン——ルートは MFA 必須・アクセスキーは作らない/削除・日常利用しない、が鉄則で、自動化には IAM ロールを使います。また「最小権限にしたい」のに広い *:* 許可を付けたまま運用するのも誤りで、アクセスアドバイザー/Access Analyzer で継続的に絞り込みます。
4.3.2この節のまとめ
- 最小化=Access Analyzer+アクセスアドバイザー+一時ロール
- 保護=ルートユーザー(MFA/日常利用禁止/キー削除)
進捗の記録にはログインが必要です。
理解度チェック
(軽い確認用)Q1. S3 バケットやロールが意図せず外部に公開されていないかを継続的に検出したい。何を使いますか?
Q2. IAM ロール/ユーザーが実際に使っていない権限を特定して削減したい。何を見ますか?
Q3. ルートユーザーの保護として最も適切な対応はどれですか?

