Q55 — AWS SAP-C02 第2章

第 55/75 問 | ← 第2章

Q205. ある企業が、米国内に拠点を置く6社のパートナーと情報を共有するためのREST APIを作成しています。この企業は、Amazon API Gatewayのリージョナルエンドポイントを作成しました。各パートナーは1日1回、日々の売上データを投稿するためにAPIにアクセスします。初期デプロイ後に、企業は世界中の500以上の異なるIPアドレスから1秒あたり1,000件のリクエストが発生していることを観測しました。企業は、このトラフィックがボットネットから発生していると判断し、コストを最小限に抑えながらAPIを保護したいと考えています。 このAPIを保護するため、企業が採用すべきアプローチはどれですか?

正解: D. AWS WAFのWeb ACLを作成し、6社のパートナーが使用するIPアドレスへのアクセスを許可するルールを設定します。このWeb ACLをAPI Gatewayに関連付けます。さらに、リクエスト制限を設定した使用量プラン(usage plan)を作成し、APIに関連付けます。APIキーを作成し、それを使用量プランに追加します。

解説

選択肢Aは、CloudFrontディストリビューションとWAF Web ACLの関連付けを提案していますが、6社のパートナーのIPアドレスのみへのアクセス制限という要件には対応していません。選択肢Bは、CloudFrontにカスタムヘッダー(APIキー)を追加することを提案していますが、これも同様に、パートナーのIPアドレスのみへのアクセス制限という要件を満たしていません。選択肢Cは、6社のパートナーのIPアドレスを許可するWAF Web ACLの作成と、POSTメソッドでのAPIキーの必須化を提案していますが、ボットネットによる過剰なリクエストを防ぐためのレート制限や使用量制御機能を提供していません。したがって、選択肢Dが、コストを最小限に抑えつつAPIを保護する最も適切な解決策です。すなわち、6社のパートナーのIPアドレスのみを許可するWAF Web ACLを作成し、API Gatewayに関連付けてそれ以外の全トラフィックをブロックします。次に、各パートナーごとのリクエスト数を制限する使用量プランを作成し、APIに関連付けます。最後に、APIキーを作成して使用量プランに追加することで、認証済みのパートナーのみがAPIにアクセスでき、かつ定義されたレート制限が適用されるようにします。