Q57 — AWS SAA-C03 第16章
第 57/100 問 | ← 第16章
Q1257. ある企業は、AWS WAF を使用して Web アプリケーションを保護しています。ソリューションアーキテクトは、複数のルール(HTTP リクエストボディ内の悪意のあるコンテンツを検査するルールを含む)を用いた Web ACL を設定しました。しかし、このソリューションアーキテクトは、Web ACL が大規模な HTTP POST リクエストを適切に検査できていないことに気づきました。その結果、不審な活動が検出されていません。一部の大規模な HTTP POST リクエストは 8 MB を超えるサイズです。ソリューションアーキテクトは、Web ACL が大規模な HTTP POST リクエストを適切に検査できるようにする必要があります。この要件を満たす解決策はどれですか?
- A. 2 つのカスタム AWS WAF ルールを作成します。1 つ目のルールでは、サイズ制限を超えたすべてのリクエストをブロックするように設定します。2 つ目のルールでは、信頼できるホストからの大規模リクエストを許可するよう、より高い優先度で設定します。
- B. AWS Shield Advanced を有効化し、Shield Advanced を使用してサイズ制限を超えたリクエストをブロックするよう Web ACL を再設定します。
- C. AWS WAF ルールが検査する HTTP リクエストにおいて、Content-Type ヘッダーが正しく設定されていることを確認します。
- D. AWS WAF ルールがリクエストを検査する前に、大規模なリクエストを前処理する AWS Lambda 関数を作成します。 ✓
正解: D. AWS WAF ルールがリクエストを検査する前に、大規模なリクエストを前処理する AWS Lambda 関数を作成します。
解説
正解は D です。「AWS WAF ルールがリクエストを検査する前に、大規模なリクエストを前処理する AWS Lambda 関数を作成します」。 解説: AWS WAF には、HTTP リクエストボディの検査サイズについてデフォルトで 8 KB の制限があります(問題文で誤って「8 MB」と記載されていますが、本質的な課題は、WAF が非常に大規模な POST リクエストをネイティブに検査できない点にあります)。したがって、8 MB を超えるような大規模な HTTP POST リクエストを適切に検査するには、WAF による検査の前に、関連部分を抽出・加工する前処理ステップが必要です。 なぜ選択肢 D が正しいのか: AWS Lambda を活用することで、大規模リクエストの前処理が可能です: ・大規模ペイロードから悪意のあるコンテンツ(例:SQL インジェクション、XSS)を抽出できます。 ・WAF への検査対象として、関連部分のみ(またはハッシュ化/サンプリングされたデータ)を渡すことができます。 ・悪意のあるリクエストをアプリケーションに到達させる前に、Lambda でブロックまたはログ記録できます。 ・WAF のルール変更は不要であり、Lambda がミドルウェアとして機能します。 ・Lambda はリクエストサイズの変動にも自動的にスケール対応します。 ・WAF のサイズ制限を回避しつつ、セキュリティを維持できます。 他の選択肢が不適切な理由: A:サイズ制限を超えたリクエストをブロックする WAF ルールと、信頼できるホストからの大規模リクエストを許可するルールを併用しても、WAF 自体が大規模リクエストのボディを検査できないという根本的な制限は解消されません。また、大規模リクエストを単純に許可すると検査がスキップされ、アプリケーションが脆弱になります。 B:AWS Shield Advanced は DDoS 攻撃に対する保護を提供するものであり、WAF のリクエストボディ検査能力を拡張するものではありません。WAF のボディ検査サイズ制限への対応にはなりません。 C:Content-Type ヘッダーの設定状況は、WAF が大規模なリクエストボディを検査できないという問題とは無関係です。ヘッダーが正しく設定されていても、WAF の検査制限は変わりません。 代替案の検討(Lambda を使用しない場合): Lambda を用いた前処理が望ましくない場合は、Amazon API Gateway と Lambda Authorizer を組み合わせて、WAF に到達する前にリクエストを検査・フィルタリングする方法も考えられますが、本問の文脈では、選択肢 D が最も直接的かつ AWS ネイティブな解決策です。 結論: 選択肢 D が最適な選択肢である理由は以下の通りです: ・AWS Lambda を用いることで、大規模リクエストから悪意のあるコンテンツを抽出し、WAF による検査に適した形で渡すことが可能です。 ・WAF ルールの変更や AWS Shield Advanced の導入は不要です。 ・大規模な POST リクエストにおける不審な活動を確実に検出できます。 最終的な正解:D