AWS SCS-C02 対策 MFA(多要素認証)制御とポリシー実装
MFA(多要素認証)制御の3つの実装パターンを解説。AWS CLIでのMFA強制からクロスアカウントアクセス、異常検出まで、実践問題で理解するMFAセキュリティの核心。
この記事のポイント
- 1AWS CLIでのMFA制御の特殊な実装方法を理解する
- 2クロスアカウントアクセスでの信頼ポリシーMFA要件を把握する
- 3MFA認証失敗の監視・異常検出アーキテクチャを確認する
- 4Bool vs BoolIfExistsの使い分けと実装上の注意点を理解する
目次
AWS MFA制御 とは
AWS MFA(多要素認証)制御は、IAMポリシーの条件キーを使用してアクセスレベルでMFA要件を強制する仕組みです。単にMFAデバイスを設定するだけでなく、aws:MultiFactorAuthPresent条件キーにより、実際にMFAが使用されたセッションのみにアクセスを許可します。
実際の運用では、AWS CLI/API環境での特殊な実装方法とクロスアカウントアクセス時の信頼ポリシー設定が重要な要素となります。
資格試験での重要パターン
AWS MFA制御に関する試験問題では、以下の3つのパターンが重要です。
AWS CLIでのMFA強制制御
AWS CLIでMFA要件を強制する場合の特殊な実装方法です。長期認証情報(アクセスキー)にはMFA情報が含まれないため、一時的な認証情報を取得する必要があります。

AWS CLIでのMFA制御実装フロー
図の左側の開発者から始まり、右側のIAMポリシーにaws:MultiFactorAuthPresent
条件が設定されています。この条件により、MFA認証されていないセッションからのAPIコールはすべて拒否されます。
赤色のフローでは、長期認証情報(アクセスキー/シークレットキー)を直接AWS CLIで使用した場合、MFA情報が含まれないため、IAMポリシーによってアクセスが拒否されます。
緑色のフローでは、以下の手順でMFA認証済みセッションを確立します:
- •Google Authenticator、Microsoft Authenticator等のMFAアプリを開く
- •対象のAWSアカウント用の6桁のトークンコードを確認
- •MFAデバイスのシリアル番号(ARN)を控える
- •トークンコードは30秒ごとに更新されるため、有効期限内に使用
aws sts get-session-token
コマンドを--serial-number
と--token-code
パラメータと共に実行- •コマンド例:
aws sts get-session-token --serial-number arn:aws:iam::123456789012:mfa/user-name --token-code 123456
- •シリアル番号にはMFAデバイスの完全なARNを指定
- •トークンコードには現在の6桁のコードを入力
- •成功すると一時認証情報(AccessKeyId、SecretAccessKey、SessionToken)がJSON形式で返却
- •環境変数設定:
export AWS_ACCESS_KEY_ID=
- •環境変数設定:
export AWS_SECRET_ACCESS_KEY=
- •環境変数設定:
export AWS_SESSION_TOKEN=
- •または
aws configure set
コマンドでプロファイルに設定
この一時認証情報を使用したAWS CLIセッションは、IAMポリシーのaws:MultiFactorAuthPresent
条件を満たすため、右側のAWSリソースへのアクセスが許可されます。
クロスアカウント信頼ポリシーMFA
複数のAWSアカウント間でのロール引き受け時にMFA要件を強制する実装パターンです。権限ポリシーではなく信頼ポリシーに条件を設定することが重要です。

クロスアカウントMFA制御と属性ベースアクセス制御
図の右側のアカウントBには、医師と放射線技師のIAMユーザーに職種や部門の属性タグ(Department、JobRole)が設定されています。左側のクロスアカウントアクセスセクションでは、AssumeRole実行時に信頼ポリシーで以下の条件がチェックされます:
中央のアカウントAでは、医療ロールと放射線ロールにそれぞれ対応するタグが設定されており、属性ベースアクセス制御(ABAC)とMFA要件の両方を満たした場合のみロール引き受けが許可されます。最終的に、ABAC制御を通じて診断画像バケットや医療記録バケットへのアクセスが動的に制御されます。
MFA異常検出と監視
MFA認証失敗の急増や異常なログインパターンを自動検出し、セキュリティインシデントとして対応するための監視アーキテクチャです。

MFA異常検出と監視システム
左側のユーザーアクティビティから正常ログインと異常ログイン(複数リージョン・異常時間・MFAなし)が発生します。中央左のマルチリージョンログ記録セクションでは、CloudTrailがすべてのAPI呼び出しを記録し、CloudWatch Logsに送信後、メトリクスフィルターが特定パターンを検出してカウントします。
中央右の異常検出システムでは、CloudWatch異常検出が機械学習により通常パターンを学習し、統計的異常を自動検出します。異常検出時はCloudWatchアラームが作動し、右側の通知・対応システムのSNS経由でセキュリティチームに即座に通知されます。
右下の統合ダッシュボードにすべての検出結果が集約され、MFA認証失敗率、地理的分散アクセス、異常時間帯アクセスをリアルタイムで監視できます。
実践問題で確認
ここまで学んだ3つのパターンを、実践的な問題で確認しましょう。各問題はMFA制御の特殊な実装要件に焦点を当てています。
AWS認定セキュリティ - 専門知識
練習問題
AWS認定セキュリティ - 専門知識
練習問題
AWS認定セキュリティ - 専門知識
練習問題
まとめ
AWS MFA制御は、条件キーベースの認証制御において最も重要なセキュリティ機能です。3つの実装パターンを理解することで、様々なシナリオに対応できます。
長期認証情報には
ロール引き受け時の
CloudTrailマルチリージョン記録、
これらのパターンを組み合わせることで、包括的なMFAセキュリティ戦略を構築できます。
理解度チェック
AWS CLIでMFA強制ポリシーが設定された場合、長期認証情報が使用できない理由と、aws sts get-session-tokenでの解決方法を説明できるか?
クロスアカウントアクセスでMFA要件を強制する際、信頼ポリシーと権限ポリシーの違いと、なぜ信頼ポリシーに条件を設定する必要があるかを説明できるか?
MFA認証失敗や異常ログインの検出に必要な3つのAWSサービス(CloudTrail、CloudWatch Logsメトリクスフィルター、CloudWatch異常検出)の役割分担を説明できるか?