Back

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

AWS WAF ClassicOld PlanLegacyUsage

概要

AWS WAF Classicでのログ・通知設定の方法について説明します。

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

  • アクセスログ連携
  • WAFログ連携
  • WAFログアラート

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

アクセスログ連携

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

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

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

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

手順

  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、旧プラン)

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

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

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

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側でアクセスログを使用できなくなる可能性があります。

登録済みの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ログを転送する方法です。

AWS WAF Classicの場合、設定する内容によってご利用いただける機能が異なりますので、ご利用されたい機能に応じて両方の設定を行うか、あるいは片方のみ実施するかお選びください。

両方の設定を行う場合は、WafCharmコンソール上では新方式を選択し設定を行った上で、旧方式の設定はヘルプページに記載の方法を参考に、Lambdaでの転送設定をご実施ください。

  • WAFログ連携(新方式)を有効にした場合
    • ダッシュボード画面の検知状況
    • WAFログ検索機能
  • WAFログ連携(旧方式)で設定した場合
    • 検知通知機能
    • 月次レポート機能

新方式

新方式でWAFログを連携することにより、Dashboard画面の検知状況や、WAFログ検索機能が有効になります。

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

  • 対象のWAF Config名
  • WAFログを出力しているS3バケットの名前とパス
    • WAFログが実際に出力されている場所まで移動した上で、パス全体をご共有ください。
  • S3バケットのリージョン(例:us-east-1など)

事前準備

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

  • 対象のWeb ACLでWAFログ出力設定が有効化されていること
  • WAFログに含まれる情報に個人情報が含まれないこと
    • マスキング処理についてはAWS公式ドキュメントのフィールドのマスキングについてをご参照ください。

注意点

  • マスキングすべき内容が含まれているかや、どの情報をマスキングするかについては、お客様にてご確認の上ご判断ください。
  • マスキングを行った場合、当該箇所のデータは提供されないため、以下の機能で当該データは利用不可となります。
    • Denylist機能の再マッチング処理
      • マスキングされた範囲のデータは再マッチング処理できないため、当該箇所に含まれる内容については検査できません。
    • 検知状況・WAFログ検索機能
      • マスキングされた範囲のデータは表示されず、検索もできません。
    • 例
      • URIをマスキングした場合、URIに不審なリクエスト思われる内容が含まれていても、再マッチングにて検知できません。また、検知状況やWAFログ検索において、URIを用いた情報の表示・検索ができない状態となります。

設定手順

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

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

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

    プレフィックスを指定している場合、 [S3 Prefix] の箇所にData Firehose上で設定したプレフィックスの値をご記載ください。

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

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

  • Amazon Data Firehoseを使用している場合、S3バケットのプレフィックスを指定可能です。S3バケットのプレフィックスは、 waflogs/ などの一般的なパス以外に、timestamp名前空間などが用意されていますが、WafCharmでは以下の形式にのみ対応しています。
    • waflogs/ や firehoselogs/ などの一般的なパス
    • 一般的なパスに、 YYYY/MM/DD/HH を追加したプレフィックス
      • 例: waflogs/YYYY/MM/DD/HH
  • なお、以下のようなtimestamp名前空間には対応しておりません。以下のようなプレフィックスを設定された場合、WafCharmにて新方式での連携を行なった場合でも、WAFログのダウンロードができなくなりますのであらかじめご了承ください。
    • waflog/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/
    • waflog/!{timestamp:yyyy}/!{timestamp:MM}/!{timestamp:dd}/!{timestamp:HH}/
  • WAFログはGZIPとしてデータ圧縮を行ってください。

旧方式

以下をご参考ください。

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

WAFログアラート

WAFログアラート設定は、旧管理画面のNotification画面に該当します。

WAFログ連携(旧方式)を設定している場合に、本設定を有効にすると、指定したメールアドレス宛に検知通知メールが送信されます。

  • WafCharm Email Notification
    • 検知通知の送信のON/OFFを切り替えるための項目です。ONの場合、リクエストが検知(COUNT/BLOCK)された際にメールにて通知を行います。
  • Managed Rule Email Notification
    • AWS WAF Classicにて、弊社が販売するManaged Ruleをご利用の場合にこちらをONにすると、Managed Rulesでの検知の際にその情報をメールにて通知します。
    • 弊社のManaged Ruleを併用されていない場合、ONにしても通知は送信されません。

注意点

  • 1 メール (ログファイル) につき最大10件まで検知内容が記載されます。
  • 通知間隔は、WAFログの出力間隔に依存します。
    • 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ログの転送に失敗します。