Elastic Load Balancing (ELB) の Application Load Balancer で不明なドメイン名のリクエストを解決したいです。
簡単な説明
ELB は、クライアントのリクエストを処理するロードバランサーを監視し、管理します。ELB はアプリケーションへのトラフィックに基づいて、スケール時にロードバランサーの DNS レコードを更新します。これらの更新により、新しいリソースの IP アドレスが DNS レコードに登録されます。DNS エントリでは、60 秒の有効期限値 (TTLS) も指定されます。DNS サービスを使用して CNAME レコードを作成し、クエリをロードバランサーにルーティングするのがベストプラクティスです。Amazon Route 53 を使用してエイリアスレコードセットを使用することもできます。詳細については、「ELB ロードバランサーへのトラフィックのルーティング」を参照してください。
IP アドレスが DNS の A レコードで指定されているか、パブリックにアクセス可能な場合は、HTTP リクエストを受信できます。悪意のあるソース、ボット、不正な IP アドレスに設定されたランダムリクエストなど、インターネット上のどのようなホストからの HTTP リクエストも受信できます。
解決策
Application Load Balancer で不明なドメイン名のリクエストを解決するには、次のいずれかの方法を使用します。
Application Load Balancer のアクセスログを監視し、未知のソースをブロックします
Application Load Balancer のアクセスログを監視し、認識されないドメインへのリクエストがないか確認するには、client: port フィールドと user_agent フィールドを確認します。これらのフィールドには、リクエストの発信元などのリクエストの詳細が表示されます。
アプリケーションがお使いのドメインからのみトラフィックを受信するようにするには、ホストヘッダーリスナールールを使用します。このルールを使用していて、どのリスナールールもクライアントリクエストホストヘッダーと一致しない場合は、デフォルトのリスナールールが適用されます。
また、不明なドメインへのリクエストを生成するクライアント IP アドレスをブロックすると、即座に解決できます。ネットワークアクセスコントロールリスト (ACL) で対象の IP アドレスがブロックされることを確認します。
AWS WAF を使用する
AWS WAF と統合すると、設定した特定のドメインへのリクエストは、Application Load Balancer のターゲットにルーティングされます。AWS WAF と統合するには、次の手順を実行します。
- ウェブ ACL を作成します。
- Application Load Balancer に、ウェブ ACL を関連付けます。
- AWS WAF コンソールを開きます。
- [ルールとルールグループの追加] ページで、[ルールを追加] > [独自のルールとルールグループを追加] > [ルールビルダー] > [ルールビジュアルエディター] を選択します。
- [名前] に、このルールを識別するために使用する名前を入力します。
- [タイプ] で [正規ルール] を選択します。
- **[リクエストの条件]には、[ステートメントと一致しない (NOT)]**を選択します。
- [ステートメント] の [検査] で、ドロップダウンリストを選択し、[単一ヘッダー] を選択します。[ヘッダー] を選択する際に、AWS WAF で検査するヘッダーとして host を指定します。
- [一致タイプ] で [正規表現と一致] を選択します。こうすることで、AWS WAF はリクエストコンポーネントを単一の正規表現 (regex) と照合できます。
- [正規表現] に、AWS WAF で検索する文字列を指定します。たとえば、^.*example.com$|^.*test.com$ と入力します。AWS WAF は、指定した正規表現値を使用してウェブリクエストのホストヘッダーを検査します。
- [テキスト変換] を、[なし] に設定します。
- [アクション] で、ルールがウェブリクエストと一致したときに実行するアクションを選択します。たとえば、[ブロック] を選択し、他の選択肢はそのままにしておきます。
- [ルールを追加] を選択します。
AWS Network Firewall を使用して不明なドメイン名のリクエストをブロックする
Network Firewall は、ドメイン名のステートフルネットワークトラフィック検査をサポートしています。ステートフルルールエンジンがネットワークトラフィックで検索するドメイン名を含む、許可リストと拒否リストを作成できます。ドメイン許可リストを使用すると、ファイアウォールは HTTP または HTTPS リクエストを指定されたドメインにのみ渡し、指定されていないドメインへのリクエストはドロップされます。
Network Firewall を使用して不明なドメイン名のリクエストをブロックするには、「特定のドメインをブロックまたは許可するための Network Firewall ルールを設定する方法を教えてください」を参照してください。
不正行為を報告
AWS リソースが不正または違法な目的で使用されている疑いがある場合は、Amazon AWS 不正使用報告フォームを使用してください。不正なアクティビティを示すネットワークログに、ソース、ターゲット IP アドレス、ポート、タイムスタンプを含めて提供してください。詳細については、「AWS リソースの不正使用を報告する方法を教えてください」を参照してください。
関連情報
Classic Load Balancer のカスタムドメイン名を設定する