tsumiki-media logo

tsumiki-media

Command Palette

Search for a command to run...

AWSベストプラクティス
約20分
上級+
8/10
2025年7月7日

AWS SCS-C02 対策 MFA(多要素認証)制御とポリシー実装

MFA(多要素認証)制御の3つの実装パターンを解説。AWS CLIでのMFA強制からクロスアカウントアクセス、異常検出まで、実践問題で理解するMFAセキュリティの核心。

この記事のポイント

  • 1
    AWS CLIでのMFA制御の特殊な実装方法を理解する
  • 2
    クロスアカウントアクセスでの信頼ポリシーMFA要件を把握する
  • 3
    MFA認証失敗の監視・異常検出アーキテクチャを確認する
  • 4
    Bool 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制御実装フロー

AWS CLIでのMFA制御実装フロー

図の左側の開発者から始まり、右側のIAMポリシーaws:MultiFactorAuthPresent条件が設定されています。この条件により、MFA認証されていないセッションからのAPIコールはすべて拒否されます。

赤色のフローでは、長期認証情報(アクセスキー/シークレットキー)を直接AWS CLIで使用した場合、MFA情報が含まれないため、IAMポリシーによってアクセスが拒否されます。

緑色のフローでは、以下の手順でMFA認証済みセッションを確立します:

1
MFAデバイスの準備
MFAデバイス(仮想MFAアプリまたはハードウェアトークン)から現在のトークンコードを取得
  • Google Authenticator、Microsoft Authenticator等のMFAアプリを開く
  • 対象のAWSアカウント用の6桁のトークンコードを確認
  • MFAデバイスのシリアル番号(ARN)を控える
  • トークンコードは30秒ごとに更新されるため、有効期限内に使用
2
STS GetSessionTokenの実行
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形式で返却
3
一時認証情報の設定
取得した一時認証情報をAWS CLIの環境変数またはプロファイルに設定
  • 環境変数設定:export AWS_ACCESS_KEY_ID=
  • 環境変数設定:export AWS_SECRET_ACCESS_KEY=
  • 環境変数設定:export AWS_SESSION_TOKEN=
  • またはaws configure setコマンドでプロファイルに設定
Note:一時認証情報にはMFA認証済みのステータスが含まれ、IAMポリシーの条件を満たします

この一時認証情報を使用したAWS CLIセッションは、IAMポリシーのaws:MultiFactorAuthPresent条件を満たすため、右側のAWSリソースへのアクセスが許可されます。

クロスアカウント信頼ポリシーMFA

複数のAWSアカウント間でのロール引き受け時にMFA要件を強制する実装パターンです。権限ポリシーではなく信頼ポリシーに条件を設定することが重要です。

クロスアカウントMFA制御と属性ベースアクセス制御

クロスアカウントMFA制御と属性ベースアクセス制御

図の右側のアカウントBには、医師と放射線技師のIAMユーザーに職種や部門の属性タグ(Department、JobRole)が設定されています。左側のクロスアカウントアクセスセクションでは、AssumeRole実行時に信頼ポリシーで以下の条件がチェックされます:

1
aws:MultiFactorAuthPresent条件:MFA認証が使用されているか
2
タグベース条件:ユーザーの属性がロールのタグと一致するか

中央のアカウントAでは、医療ロールと放射線ロールにそれぞれ対応するタグが設定されており、属性ベースアクセス制御(ABAC)MFA要件の両方を満たした場合のみロール引き受けが許可されます。最終的に、ABAC制御を通じて診断画像バケットや医療記録バケットへのアクセスが動的に制御されます。

MFA異常検出と監視

MFA認証失敗の急増や異常なログインパターンを自動検出し、セキュリティインシデントとして対応するための監視アーキテクチャです。

MFA異常検出と監視システム

MFA異常検出と監視システム

左側のユーザーアクティビティから正常ログインと異常ログイン(複数リージョン・異常時間・MFAなし)が発生します。中央左のマルチリージョンログ記録セクションでは、CloudTrailがすべてのAPI呼び出しを記録し、CloudWatch Logsに送信後、メトリクスフィルターが特定パターンを検出してカウントします。

中央右の異常検出システムでは、CloudWatch異常検出が機械学習により通常パターンを学習し、統計的異常を自動検出します。異常検出時はCloudWatchアラームが作動し、右側の通知・対応システムSNS経由でセキュリティチームに即座に通知されます。

右下の統合ダッシュボードにすべての検出結果が集約され、MFA認証失敗率、地理的分散アクセス、異常時間帯アクセスをリアルタイムで監視できます。

実践問題で確認

ここまで学んだ3つのパターンを、実践的な問題で確認しましょう。各問題はMFA制御の特殊な実装要件に焦点を当てています。

AWS認定セキュリティ - 専門知識

練習問題

ある企業のセキュリティチームは、開発者がAWS CLIを使用してAWSリソースにアクセスする際に多要素認証(MFA)を強制する方針を導入しました。チームはIAMユーザーのグループに以下のポリシーを適用しました: ```json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "*", "Resource": "*" }, { "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "Bool": { "aws:MultiFactorAuthPresent": "false" } } } ] } ``` このポリシー導入後、開発者たちはAWS CLIを使ってリソースにアクセスできなくなりました。彼らはMFAデバイスを設定しているにもかかわらず、このエラーが発生しています。 セキュリティチームは、MFA要件を維持しながらこの問題を解決するために、どのソリューションを実装すべきですか?

AWS認定セキュリティ - 専門知識

練習問題

ある医療機関がAWS環境を運用しており、患者データと医療記録を安全に保存・管理するために複数のAWSアカウントを使用しています。アカウントAには診断画像を保存するための複数のS3バケットがあり、アカウントBのIAMユーザー(医師や放射線技師)がこれらの画像にアクセスする必要があります。新しいコンプライアンス要件により、ユーザーはアクセス時にリスク評価に基づく多要素認証(MFA)を使用することが義務付けられました。また、ユーザーにはロールベースではなく、職種や部門などの属性に基づいてアクセス権を付与する必要があります。セキュリティチームは、最小限のリスクと労力でこれらの要件を満たすソリューションを実装する必要があります。どの解決策を選ぶべきですか?

AWS認定セキュリティ - 専門知識

練習問題

ある企業のセキュリティチームは、AWSクラウド環境での不審なログイン活動をより効果的に検出するためのモニタリングソリューションを構築したいと考えています。特に、彼らは以下の異常を検出する必要があります: - 1時間以内に複数のリージョンからの同一ユーザーによるログイン試行 - 特定のIAMロールへの通常とは異なる時間帯のアクセス - 失敗したMFA認証の急増 - 管理者アカウントでの通常とは異なるAPIコール セキュリティチームは、これらの異常が検出された場合に迅速に対応できるようにし、長期的な傾向分析も行いたいと考えています。 この状況において、異常なアクティビティを効果的に検出するための最適なソリューションはどれですか?(3つ選択してください)

まとめ

AWS MFA制御は、条件キーベースの認証制御において最も重要なセキュリティ機能です。3つの実装パターンを理解することで、様々なシナリオに対応できます。

長期認証情報にはMFA情報が含まれないため、aws sts get-session-tokenで一時認証情報を取得。MFAトークンコードと共にセッションを確立し、CLI/API経由でのセキュアなアクセスを実現。

ロール引き受け時のMFA要件は信頼ポリシーに設定。権限ポリシーではなく、AssumeRole操作時に評価される信頼ポリシーでaws:MultiFactorAuthPresent条件を指定することが重要。

CloudTrailマルチリージョン記録、CloudWatch Logsメトリクスフィルター、CloudWatch異常検出の組み合わせで、MFA認証失敗や異常ログインパターンをリアルタイム検出し、迅速な対応を実現。

これらのパターンを組み合わせることで、包括的なMFAセキュリティ戦略を構築できます。

理解度チェック

AWS CLIでMFA強制ポリシーが設定された場合、長期認証情報が使用できない理由と、aws sts get-session-tokenでの解決方法を説明できるか?

クロスアカウントアクセスでMFA要件を強制する際、信頼ポリシーと権限ポリシーの違いと、なぜ信頼ポリシーに条件を設定する必要があるかを説明できるか?

MFA認証失敗や異常ログインの検出に必要な3つのAWSサービス(CloudTrail、CloudWatch Logsメトリクスフィルター、CloudWatch異常検出)の役割分担を説明できるか?

他の問題も解いてみませんか?

tsumikiでは、AWS認定試験の合格に必要な知識を体系的に学習できます。実践的な問題を通じて、AWSスキルを身につけましょう。