目次

  1. 1.はじめに
  2. 2.XFF ヘッダーオプションとは
  3. 3.WafCharm での設定方法
  4. 4.注意点
  5. 5.おわりに
  6. 1. はじめに

    AWS WAF では昨年7月に X-Forwarded-For 等の HTTP ヘッダフィールドでの IP 制御が可能になっていました。
    遅ればせながら WafCharm でも設定可能になりましたので、 WafCharm での設定方法を解説します。
    ※ AWS WAF Classic は非対応です。

    2. XFF ヘッダーオプションとは

    CDN を前段に置いた Application Load Balancer (ALB) から見て、接続元の IP アドレスは CDN の IP アドレスとなります。
    アクセスの大元の IP アドレスではないため、ALB にアタッチした AWS WAF によってIP アドレスでのアクセス制御はできませんでした 。
    そこで、中間機器を経由した場合でもクライアントの送信元 IP アドレスの特定が可能な X-Forwarded-For 等の HTTP ヘッダフィールドを利用して ALB 上でも IP 制御をする機能が登場しました。

    詳しく確認したい方は過去のブログをご確認ください。
    AWS WAF で X-Forwarded-For 等の HTTP ヘッダフィールドでの IP 制御が可能になりました。

    https://www.wafcharm.com/blog/aws-waf-header-field-ip-control/

    3.WafCharm での設定方法

    前提条件

    • 初期ルールが適用された Web ACL Config で XFF ヘッダーオプションは選択できます。導入当初の Web ACL Config 作成画面では選択できません。ルールの適用状況は AWS マネージメントコンソールより直接 Web ACL をご確認ください。
      ※不明な場合はサポート窓口までご連絡ください。

    ルールが適用されたWeb ACL Config 画面では「Originating address」という項目が表示されています。デフォルトではソース IP アドレスを利用する状態です。

    auto

    編集画面を開き「Originating address」を「Source IP address」から「IP address in header」に切り替えます。

    auto

    切り替え後にヘッダー名の入力が可能になります。デフォルトでは「X-Forwarded-For」が入力されています。

    auto

    保存で変更は完了です。

    auto

    「X-Forwarded-For」でなく「True-Client-IP」などのヘッダーにすることも可能です。
    大文字小文字の区別はありません。

    auto

    4.注意点

    • WafCharm 管理画面での設定範囲について

    WafCharm 管理画面上で設定できるのは WafCharm のホワイトリスト/ブラックリストの適用先のみです。WafCharm サポートに依頼したカスタマイズルールで IP アドレスでの制限を加えていた場合、及びお客様自身で設定したルールはWafCharm 管理画面で切り替えることはできません。カスタマイズルールの設定変更はサポート窓口までお問い合わせください。

    • 切り替えタイミングについて

    WafCharm 管理画面上の設定を変更すると 5 〜 10 分で設定が変わります。稼働前かメンテナンス停止した上での切り替えを推奨します。

    • ブラックリスト自動管理機能について

    XFF ヘッダーオプションを利用した場合、つまり「Originating address」を「IP address in header」に指定した場合、

    - WafCharm 管理画面から指定したブラックリスト IP アドレス
    - CSC による IP レピュテーションで算出されるブラックリスト IP アドレス

    は検知遮断の対象となります。一方

    - シグネチャ再マッチングによる自動 Blacklist 管理機能で算出される IP アドレス

    は検知遮断の対象となりません。
    シグネチャ再マッチングによる自動 Blacklist 管理機能はアクセスログを元に動作するものの、ALB 上のアクセスログには X-Forwarded-For 等の HTTP ヘッダフィールドの IP アドレスが載らないことが理由です。

    • アクセスログの登録について

    X-Forwarded-For 等の HTTP ヘッダフィールドでの IP 制御機能を利用した場合でも、Web ACL 登録機器のアクセスログは費用計算のため必須となります。アクセスログ未登録での使用はしないでください。

    • ソース IP アドレスでの制御との併用について

    WafCharm 管理画面上で設定はソース IP アドレスでの制御か X-Forwarded-For 等の HTTP ヘッダフィールドでの IP 制御のどちらかしか選択できません。CDN 等の接続以外に ALB 直接の接続の考慮が必要な環境の場合など、併用が必要な場合は片方の制御をお客様側のルールとして作成して管理してください。

    • HTTP ヘッダフィールドについて

    CDN 業者によって、経由した際にクライアント(大元)の IP アドレスやプロキシの IP アドレスをサーバーに渡す目的で独自ヘッダを付与することがあります。どのヘッダーを利用すべきかや、記載される IP アドレスがどのような形式かについては各業者から公開されているので、お客様側でご確認ください。

    上記の通り注意点は複数ありますので、 CloudFront をご利用の場合は後続の ALB に導入ではなく CloudFront へ AWS WAF を導入する構成を推奨します。

    HELP ページにも情報が記載されておりますので、WafCharm のアカウントを既にお持ちの方はこちらもご覧ください。

    5.おわりに

    CloudFront 等の CDN をご利用で ALB にアタッチした Web ACL に WAF 機能を集約したかったお客様には待望の機能かと思います。注意点をご確認の上でご利用ください。