Back

AWS WAF v2 Legacyでのアクセスログ・WAFログ連携の設定方法

AWS WAF v2Old PlanNew PlanLegacyUsage

概要

RuleポリシーにてLegacyを選択されているWAF Configでのログ・通知設定の方法について説明します。

この場合の設定項目は、3つあります。

  • アクセスログ連携(ALB、CloudFrontの場合必須)
  • WAFログ連携(任意)
  • WAFログアラート(任意)

WAF Configの設定完了後も、詳細画面にある [編集] ボタンをクリックすることで各種設定項目の変更や追加が可能です。

アクセスログ連携

ALBやCloudFrontなどのアクセスログをS3バケットに出力し、WafCharmへ連携するための設定です。

アクセスログを連携することで、Webリクエスト数の集計や、提供されるログに対して再マッチングをし、動的にIPアドレスをDenylistに追加する機能を提供できるようになります。

1つのWeb ACLに紐づくリソースが複数ある場合には、そのリソース分Web Site Configをご登録ください。

CloudFrontでご利用されている場合、はじめにCloudFrontでご利用される場合の注意点をご確認ください。

ALBでご利用されている場合、はじめにALBでご利用される場合の注意点をご確認ください。

手順

  1. [アクセスログ連携設定] の下にある [Web Site Configを追加] をクリックする
  2. [対象サイトのFQDN] を入力する

    管理用の項目のため、任意の値で問題ありません。お客様にて管理いただく上でわかりやすい値をご入力ください。

  3. [S3 Path] を入力する

    CloudFrontのアクセスログを S3://bucket-name/optional-prefix/ というパス以下に出力している場合、このパス全体を記載します。

    ALBのアクセスログを S3://bucket-name/optional-prefix/AWSLogs/aws-account-id/elasticloadbalancing/region/ というパス以下に出力している場合、このパス全体を記載します。

  4. [Credential] にて使用するクレデンシャル情報を指定する

    WAF Configと同じクレデンシャル情報を使用する場合は、 [基本設定のCredentialを再利用する] にチェックを入れてください。

    別のクレデンシャル情報を使用する場合は、[基本設定のCredentialを再利用する] からチェックを外し、プルダウンから登録済みのクレデンシャル情報を選択するか、 [新規クレデンシャルを登録する] から新規作成してください。

    • Credential Storeの設定方法 (AWS WAF v2、新プラン)
    • Credential Storeの設定方法 (AWS WAF Classic/AWS WAF v2、旧プラン)

同じWeb ACLに紐づくリソース(ALBやCloudFront)が複数あり、Web Site Config(アクセスログの出力先)を複数登録したい場合には、[Web Site Configを追加] をクリックして設定項目を増やしてください。

誤って追加してしまった場合はWeb Site Config枠内の右下にあるゴミ箱ボタンをクリックして削除可能です。

CloudFrontでご利用される場合の注意点

CloudFrontでのご利用の場合、以下の点にご注意ください。

CloudFrontでは、複数のアクセスログの出力方法がありますが、WafCharmでは、そのうち「S3 Legacy」にのみ対応しております。「S3 Legacy」以外のアクセスログは使用できませんのでご注意ください。

CloudFrontでは、複数のアクセスログの出力方法があります。WafCharmでは、そのうち「S3 Legacy」にのみ対応しております。

WafCharmをご利用される際は、CloudFrontのLogging設定上では必ず「Amazon S3 (Legacy)」を選択いただき、そのアクセスログを出力したS3 PathをWeb Site Configにご登録ください。

なお、CloudFrontのLogging設定そのものとしては、「Amazon S3 (Legacy)」に加えて他の種類(Amazon S3、CloudWatch Logsなど)のアクセスログ出力を同時に行っても問題ございませんが、WafCharmでは「Amazon S3 (Legacy)」以外で出力されたアクセスログは使用できませんので、「Amazon S3 (Legacy)」以外のアクセスログを連携することはお控えください。

また、「Amazon S3」と「Amazon S3 (Legacy)」の設定を同時に行う場合、アクセスログを出力するパスは必ず分けるようにお願いいたします。仮に両方の設定で同じパスを記載した場合、片方のアクセスログで上書きされてしまうため、WafCharm側でアクセスログを使用できなくなる可能性があります。

該当の S3 Path には複数の CloudFront Distribution のアクセスログは出力しない様お願いいたします。

もし、同一のアクセスログ出力先に指定いただいている場合には恐れ入りますが、S3 Path をプレフィックスで分けていただく等ご対応いただけますと幸いです。

CloudFront のリアルタイムログ機能には対応しておりません。

標準ログ記録 (アクセスログ) の出力設定をご実施いただきますようお願い申し上げます。

ALBでご利用される場合の注意点

ALBでのご利用の場合、以下の点にご注意ください。

ALBでは、複数のアクセスログの出力方法がありますが、WafCharmでは、そのうちAttributes(属性)タブにて設定いただく「Legacy版」にのみ対応しております。「Legacy版」以外のアクセスログは使用できませんのでご注意ください。

ALBでは、複数のアクセスログの出力方法があります。WafCharmでは、そのうち「Legacy版」にのみ対応しております。

WafCharmをご利用される際は、ALBのLogging設定上では必ず「Attirbutes(属性)タブ」以下の「Logging」設定にてアクセスログを出力してください。

なお、ALBのLogging設定そのものとしては、「Legacy版」に加えてIntegration(統合)タブ経由他の種類(Amazon S3、CloudWatch Logsなど)のアクセスログ出力を同時に行っても問題ございませんが、WafCharmでは「Legacy版」以外で出力されたアクセスログは使用できませんので、「Legacy版」以外のアクセスログを連携することはお控えください。

登録済みのWeb Site Configを削除する場合

  1. WAF Configを開く
  2. 対象のWAF Configをクリックする
  3. [ログ・通知設定] をクリックする
  4. 右上の [編集] ボタンをクリックする
  5. [Web Site Config: FQDN] と記載された箇所をクリックする

    FQDNは登録時に指定した値が表示されています。

  6. [このWeb Site Configを削除する] にチェックを入れ、 [登録] ボタンをクリックする

制限事項・注意点

  • ALB、CloudFrontでのご利用の場合は、必須の設定です。
  • API Gatewayでのご利用の場合、ログ解析ができないため設定は不要です。
  • CloudFrontでのご利用の場合、以下の点にご注意ください。
    • CloudFrontでは、複数のアクセスログの出力方法がありますが、WafCharmでは、そのうち「S3 Legacy」にのみ対応しております。「S3 Legacy」以外のアクセスログは使用できませんのでご注意ください。
    • 該当の S3 Path には複数の CloudFront Distribution のアクセスログは出力しない様お願いいたします。
    • CloudFront のリアルタイムログ機能には対応しておりません。

WAFログ連携

WAFログ連携には、新方式と旧方式があります。

新方式は、チェックボックスにチェックをいれ、WAFログ連携にオプトインすることでWAFログを連携できる方法です。

旧方式は、WafCharmダッシュボードにてご提供しておりましたLambdaを用いてWAFログを転送する方法です。

Legacyでのご利用の場合、旧方式でもご利用いただけますが、新方式へ切り替えることをおすすめします。
※現在、旧プランのお客様につきましては、新方式での連携を限定させて頂いております。連携の開始および解除をご希望される際は、お手数ですがWafCharmサポートまでお問い合わせください。

WAFログ連携の設定は、任意です。もしWAFログ連携設定を実施したくない場合は、 [WAFログ連携] のタブ上ではチェックボックスにチェックを入れないままにした上で、WAF Configの登録を行ってください。また、その後の旧方式のLambdaの設定を実施しないようにしてください。

新方式

新方式でWAFログを連携することにより、Dashboard画面の検知状況や、WAFログ検索機能、月次レポート機能、WAFログアラート(検知通知)機能などが有効になります。

※現在、旧プランのお客様につきましては、新方式での連携を限定させて頂いております。連携の開始および解除をご希望される際は、お手数ですが以下の情報(WAF ConfigごとのWAFログ出力先詳細)を添えてサポートまでお問い合わせください。

  • 対象のWAF Config名
  • ログ出力先パターン(S3バケットあるいはAmazon Data Firehose)
  • WAFログを出力しているS3バケットの名前とパス
    • WAFログが実際に出力されている場所まで移動した上で、パス全体をご共有ください。
    • 例:
      • S3直の場合: aws-waf-logs-で始まるS3バケット名/AWSLogs/AWSアカウントID/WAFLogs/リージョン/Web ACL名/2024/07/01/02/55/
      • Data Firehoseの場合: S3バケット名/2024/06/10/07/
  • S3バケットのリージョン(例:us-east-1など)

事前準備

新方式で設定を行う場合、事前に以下の点についてご確認ください。

  • 対象のWeb ACLでWAFログ出力設定が有効化されており、以下いずれかの方法で出力されていること
    • S3バケットへ直接出力する
    • Amazon Data Firehose経由でS3バケットに出力する
    • なお、CloudWatch Logsに出力したWAFログには対応しておりません。
  • WAFログに含まれる情報に個人情報が含まれないこと
    • マスキング処理についてはAWS公式ドキュメントのフィールドのマスキングについてをご参照ください。

注意点

  • マスキングすべき内容が含まれているかや、どの情報をマスキングするかについては、お客様にてご確認の上ご判断ください。
  • マスキングを行った場合、当該箇所のデータは提供されないため、以下の機能で当該データは利用不可となります。
    • 検知状況・WAFログ検索機能
      • マスキングされた範囲のデータは表示されず、検索もできません。
    • 例
      • URIをマスキングした場合、URIに不審なリクエストと思われる内容が含まれていても、再マッチングにて検知できません。また、検知状況やWAFログ検索において、URIを用いた情報の表示・検索ができない状態となります。
  • WafCharmアカウントの設定状況によって、閲覧可能なWAFログの件数に制限がある場合がございます(月次レポート機能およびWAFログアラートは対象外です)。詳細については、WAFログ保存期間についてをご確認ください。

設定手順

  1. [ログ・通知設定] 画面の [WAFログ連携] タブにて [WAFログをWafCharmに連携する] にチェックを入れる
  2. 事前準備に記載のWAFログの出力とマスキングについて確認を行い、チェックを入れる
  3. [S3 Bucket Name] と [S3 Prefix] に入力する

    例えば、 csc-waftest というS3バケットに出力している場合、 [S3 Bucket Name] の箇所には csc-waftest とご入力ください。

    S3バケットに直接WAFログを出力している場合は、基本的には [S3 Prefix] は空のままで問題ありません。CLIなどでプレフィックスを独自に指定した場合には、その値をご入力ください。

    Data Firehose経由の場合、Data Firehoseから出力している先のS3バケットの情報をご入力ください。

    また、Data Firehoseの場合、 [S3 Prefix] の箇所には、Data Firehoseのコンソール画面(送信先の設定)にあるS3バケットプレフィックス(S3 bucket prefix)に記載されている内容をご記載ください。そのパスの年月日と時間の部分をYYYY, MM, DD, HHに置き換えていただきたく存じます。詳細は、以下の注意点をご確認ください。

  4. S3バケットのリージョンとCredentialの選択を行う

WAFログ連携形式を拡張形式にしている場合は、WAFログ保存期間も設定してください。詳細については、WAFログ保存期間についてをご確認ください。

Amazon Data Firehoseを使用する場合の注意点

  • Amazon Data Firehoseを使用している場合、実際にWAFログが出力されている場所までのパスすべてを [S3 Prefix] にご記載ください。また、そのパスの年月日と時間の部分をYYYY, MM, DD, HHに置き換えていただきたく存じます。
    • 例としては、以下の通りです。
      • S3 bucket prefixの指定値が waflog/ の場合
        • [S3 Prefix]の入力値: waflog/YYYY/MM/DD/HH
      • S3 bucket prefixの指定値が waflog/!{timestamp:yyyy}/!{timestamp:MM}/!{timestamp:dd}/!{timestamp:HH} の場合
        • [S3 Prefix]の入力値: waflog/YYYY/MM/DD/HH
      • S3 bucket prefixの指定値が waflog/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/ の場合
        • [S3 Prefix]の入力値: waflog/year=YYYY/month=MM/day=DD/hour=HH
      • S3 bucket prefixの指定値が空の場合(何も指定していない場合)
        • [S3 Prefix]の入力値: YYYY/MM/DD/HH
    • Data FirehoseでWAF Config上の [S3 Prefix] を空にした場合、自動的に waflog/YYYY/MM/DD というパスが指定されているものと判断してWAFログを取得いたします(画面上には反映されません)。実際のS3 bucket prefixと一致しない場合はWAFログの取得ができませんので、ご注意ください。
  • WAFログはGZIPとしてデータ圧縮を行ってください。

旧方式

以下をご参考ください。

WAFログ連携(旧方式)の設定方法 (AWS WAF v2)

注意点

  • 新方式および旧方式の両方を併用することは可能ですが、複数の経路から同じWAFログを取得するため、WAFログアラートを有効にした場合に、通知も重複します。すなわち、1つのWAFログに対して2通の通知が送信される形です。重複して通知を受信したくない場合には、どちらかの方式でのみ設定を行ってください。
  • 旧方式(Lambda転送方式)でWAFログ連携の設定を行っていない場合でも、WAF Config上では [ログ連携方法] の箇所に「旧方式 (Lambda転送方式)」といった記載がされます。これは、旧方式がLambdaの構築を必要とするため、WafCharm側で設定状況を検出できないことによるものですので、問題はございません。旧方式(Lambda転送方式)でのご利用をご希望の場合には、 [ログ連携方法] の内容に関わらず、手順に従って設定を実施してください。不要な場合は、設定を行っていただく必要はございません。
  • WAFログ保存期間は新プランかつAWS WAF v2にてWAFログ連携を有効化している場合のみご利用いただけるオプションです。旧プランおよびTrialプランは対象外です。

WAFログアラート

WAFログアラート設定は、WAFログ連携(旧方式あるいは新方式)を設定している場合に有効化にすることで、指定したメールアドレス宛に検知通知メールを送信するための機能です。旧管理画面のNotification画面に該当します。

通知の絞り込みオプションについては、WAFログ連携によってご提供可能な機能について - 通知内容の絞り込みについてをご確認ください。

  • WafCharm Email Notification
    • 検知通知の送信のON/OFFを切り替えるための項目です。ONの場合、リクエストが検知(COUNT/BLOCK)された際にメールにて通知を行います。OFFの場合、WAFログ連携がされていても通知は行われません。
  • Managed Rule Email Notification
    • AWS WAF Classicにて、弊社が販売するManaged Ruleをご利用の場合の機能です。
    • AWS WAF v2の場合はご利用いただけませんので、OFFのままにしてください。

注意点

  • 1 メール (ログファイル) につき最大10件まで検知内容が記載されます。
  • 通知間隔は、WAFログの出力間隔に依存します。
    • S3バケットに直接出力している場合は、5分です。
    • Amazon Data Firehoseの場合は、Buffer intervalとBuffer sizeに設定した値に応じます。
  • WafCharm に AWS WAF のバージョン(Classicあるいはv2)が異なる Web ACL を登録し、各 Web ACL にて本機能を利用する場合、Lambdaは共有しないでください。
    • Classicとv2では使用するindex.mjsが異なります。誤ったAWS WAFバージョンのindex.mjsを使用した場合、WAFログの転送に失敗します。
  • AWS WAF Classicは、絞り込みオプションの対象外です。