AWS WAF ClassicOld PlanLegacyUsage
WAFログ連携(旧方式、AWS WAF Classic向け)の設定方法について説明します。
旧方式では、以下の方法で設定します。
旧方式で設定を行う場合、AWSマネージメントコンソール上でIAMロールを作成したり、Lambdaの設定を行ったりする必要があります。
そのため、お客様のAWSマネージメントコンソール上で、上記のような操作をできる権限を持っている必要があります。
基本的には、以下の権限があれば設定を進める上で問題は発生いたしません。
アーキテクチャ概要は以下の通りです。
お客様のAWS環境にて、AWS WAFからAmazon Data Firehoseを経由してS3へログ転送を行います。
S3バケットにWAFログが出力されたことをトリガー(S3 putObject Event Trigger)に、Lambdaにてスクリプトが実行されます。
WafCharmへデータが渡り、月次レポートについては追加の設定をせずとも毎月月初に作成される月次レポートを閲覧できます。
WafCharmコンソールにてWafCharmルールのメールによる検知通知の設定を行うと、検知通知機能をご利用いただけます。WafCharmとCSCのManaged Rulesを併用されている場合、CSCマネージドルールの検知通知設定を行うとCSCマネージドルールで検知した際のメール通知機能もご利用いただけます。
CloudFrontをご利用の場合は、バージニアを選択します。
AWSの仕様上、名前の先頭に [aws-waf-logs-] とつける必要があります。
プレフィックスをつける場合、必ず末尾にスラッシュを記載します。
正常に動作しない可能性がございますので、必ずUTCのままにしてください。
Buffer interval: 推奨は 60 seconds
※Buffer intervals、またはBuffer size に達した時点で S3 にログが作成されます
以下のようなフォーマットになります。この情報は後ほど使用します。
csc-waftest/waflog/
S3バケット名とプレフィックス(あるいはその有無)は、上記手順での設定内容によって値が変わります。
以下の3つを作成します。
arn:aws:s3:::csc-waftest/waflog/*
先ほど設定したS3バケットのパスを記載します。Resources に指定するパスの末尾には必ず /*
とつける必要があります。
名前はどのような値でも問題ありません。
例:wafcharm-waflog-s3-read
arn:aws:s3:::wafcharm.com/*
WafCharmのS3バケットを指定し、WAFログを転送できるようにします。 Resources に指定するパスの末尾には必ず /*
とつける必要があります。
名前はどのような値でも問題ありません。
例:wafcharm-waflog-s3-put
名前はどのような値でも問題ありません。
例:wafcharm-waflog
名前はどのような値でも問題ありません。
例:wafcharm-waflog
Runtime: Node.js 18.x ~ Node.js 20.x
Execution Role: Use an existing role
Existing role: 先ほど作成したIAMロール(例:wafcharm-waflog)
Select a source: S3
Bucket: 上記手順で作成したS3バケット
Event types: All object create events
Prefix: 上記手順で作成したS3バケットのプレフィックス(例: waflog/
)
Description(任意)
Timeout: 1分
こちらの設定は任意です。
ログの保存期間を変更したい場合は、以下の手順でご実施ください。
WAFログがS3バケットに出力されたことをトリガーに実行されますので、対象環境にアクセスしてWAFログを出力してください。
デフォルトは「失効しない」になっているため、必要に応じて期間を変更してください。