
WebサイトやWebアプリケーションを保護するAWS WAFを導入している企業にとって、WAFログの管理と分析は重要な課題です。
ただし、AWS WAFマネジメントコンソール(管理画面)では1週間分のログしか確認できないため、AWS WAFのログをほかのAWSサービスに出力する必要があります。
AWS WAFログの出力先として、CloudWatch LogsとS3、Kinesis Data Firehoseを選択できますが、この記事ではそれぞれの違いや特徴、また詳しい設定方法について詳しく解説します。
【無料資料配布中】AWS WAFの運用に悩んでいます?AWS WAF運用のノウハウを完全解説する資料をご用意しております。詳しくはこちらからダウンロードしてください。
目次
- そもそもAWS WAFログの重要性とは?
- なぜAWS WAFログを別サービスに出力する必要があるのか?
- AWS WAFログの主な出力先とその違い
- AWS WAFログを出力する方法
- AWS WAFログの出力だけじゃ足りない!確認や分析も行いましょう
- AWS WAF自動運用サービス「WafCharm」ならログの確認や分析が簡単にできます
そもそもAWS WAFログの重要性とは?
AWS WAFログの確認・分析はセキュリティ対策の検討において非常に重要な役割を果たします。
AWS WAFログを分析することで、誤検知の有無を確認し、誤検知が発生した場合の原因特定が可能になります。誤検知とは、正常アクセスを誤って検知・遮断してしまう現象のことです。
また、WAFログから悪意のあるIPアドレスを特定し、ブラックリスト(ブロックリスト)に登録し、Webアプリケーションを守ることができます。
さらに、AWS WAFログの解析によって自社が直面しているセキュリティ脅威を把握することができ、次なるセキュリティ対策につなげることができます。
効果的なセキュリティ対策を実施するためには、AWS WAFログを適切に保管し、定期的に分析することが必要不可欠です。
なぜAWS WAFログを別サービスに出力する必要があるのか?
AWS WAFマネジメントコンソール(管理画面)からでもAWS WAFログの確認や簡単な分析ができますが、管理画面で確認できるAWS WAFログは最長1週間までとなっているので、1週間より前のログはAWS WAFの管理画面から確認することができません。
セキュリティ脅威を把握するためにも、より長期間のログデータが必要です。そのため、AWS WAFログをあらかじめその他のAWSサービスに出力して保存しておく必要があります。
AWS WAFログの主な出力先とその違い
AWS WAFログの主な出力先として、Amazon CloudWatch Logs、Amazon S3(Simple Storage Service)とAmazon Data Firehoseの3つのサービスがあります。
ここではそれぞれの特徴や違いについて解説します。用途や予算に合わせて最適なサービスを選びましょう!
Amazon CloudWatch Logs
Amazon CloudWatch LogsはAmazon Elastic Compute Cloud(Amazon EC2)インスタンス、Route 53、およびその他のソースからログファイルをモニタリング、保存、アクセスできるサービスです。1GBのログデータあたり毎月0.25〜0.5ドルの費用がかかります。
さまざまなサービスと連携できるため、使用中のAWSサービスの各種ログをAmazon CloudWatch Logsに集約して一元管理することができます。
また、CloudWatch Logs Insightsを使用することでAmazon CloudWatch Logsに保存したログデータを解析することができますので、ログの確認や分析に複数サービスを使う必要がありません。
ただし、CloudWatch Logs Insightsでは、複雑な解析が難しい場合があります。その場合、Amazon AthenaをはじめとするAWSサービスを利用する必要があります。
Amazon S3(Simple Storage Service)
Amazon S3(Simple Storage Service)はAWSが提供するストレージサービスです。コストが低いため、多くの企業ではAWSの基本サービスとして利用しています。
1GBのログデータあたり毎月0.025ドルからで利用できるため、長期保存を目的としてAmazon S3を利用している企業が多いです。
コストが低いため、Amazon S3には分析機能がありません。そのため、保存したログデータを分析するには、Amazon Athenaを活用する企業が多いです。Amazon Athenaは、標準的なSQLを使用して、データを直接分析するサービスです。
また、Amazon S3に出力する場合、Amazon CloudWatch Logsに出力するのと同じく、リアルタイム処理が難しくてタイムラグが発生する可能性があるため要注意です。
Amazon Data Firehose
Amazon Data Firehose(旧称:Amazon Kinesis Data Firehose)とは、リアルタイムでデータをAmazon S3やAmazon RedShiftなどのサービスに転送するサービスです。AWS WAFログをAmazon Data Firehoseを利用して分析サービスに転送することで、Webアプリケーションのセキュリティ状況をリアルタイムで監視できます。
ただし、Amazon Data Firehoseはあくまでも転送サービスであるため、保存や分析する機能がありません。AWS WAFログを保存するにはAmazon S3を別途利用する必要があります。
料金に関してAmazon Data Firehoseで取り扱うデータ量によって異なりますが、1GBのログデータあたり毎月0.025~0.036ドルとなります。さらに、Amazon S3を利用する場合、Amazon S3の利用料金もかかります。
AWS WAFログを出力する方法
ここからはAWS WAFログをそれぞれのサービスに出力するための設定方法を紹介します。いずれも基本的な手順は似ていますが、細部に違いがあるので注意が必要です。
Amazon CloudWatch Logsに出力する設定方法
AWS WAFログをAmazon CloudWatch Logsへ出力する設定は以下の手順となります。
- AWS WAFコンソールから対象となるWeb ACLの管理画面を開きます。
- 設定をしたい Web ACL を開き“Logging and metrics”を選択します。
- Logging の項目の“Enable”を選択します。
- CloudWatch Logs log group を選択し、“Create new”を選択します。
- CloudWatchのロググループの作成画面が表示されますのでロググループ名を入力します。ロググループ名は「aws-waf-logs-」で始まる必要があります。
- ロギングの編集画面に戻り、作成したロググループを選択して保存します。
これで設定は完了しますが、設定後CloudWatch Log Insightsでクエリを実行して、ログが取得できているかを確認することをおすすめします。
詳しい設定方法はこちらのAWS公式ドキュメントをご参照ください。
Amazon S3に出力する設定方法
Amazon S3へAWS WAFログを出力する場合、下記の手順に沿って設定をしてください。
- AWS WAFコンソールから対象となるWeb ACLの管理画面を開きます。
- 設定をしたい Web ACL を開き“Logging and metrics”を選択します。
- Logging の項目の“Enable”を選択します。
- S3 bucket を選択し、“Create new”を選択します。
- バケットの作成画面が表示されますのでバケット名を入力します。バケット名には制約があり、「aws-waf-logs-」で始まる必要があります。
- ロギングの編集画面に戻り、作成したバケットを選択して保存します。
これでAWS WAFログをAmazon S3への出力設定が完了します。設定完了後、S3バケットにWAFログが出力されているかどうかを確認してください。ログが反映されるまで5分ほどかかる場合があるので、少し時間を置いてから確認するのがおすすめです。
詳しい設定方法はこちらのAWS公式ドキュメントをご参照ください。
Amazon Data Firehoseに出力する設定方法
最後はAmazon Data Firehoseへの出力設定です。AWS WAFコンソールで設定する前に、「aws-waf-logs-」で始まる名前のPUTソースを使ったAmazon Data Firehoseを作成する必要があります。
Data Firehoseを作成した後、下記の手順でAWS WAFログの出力設定を行います。
- AWS WAFコンソールから対象となるWeb ACLの管理画面を開きます。
- 設定をしたい Web ACL を開き“Logging and metrics”を選択します。
- Logging の項目の“Enable”を選択します。
- 最初に作成したData Firehoseを選択します。
- “Enable logging”を選択し、ログ出力を有効にします。
これで設定は完了し、リアルタイムでログデータが転送されるようになります。
詳しい設定方法はこちらのAWS公式ドキュメントをご参照ください。
AWS WAFログの出力だけじゃ足りない!確認や分析も行いましょう
セキュリティ脅威を把握し、次のセキュリティ対策を検討するためには、出力したAWS WAFログを定期的に確認・分析することが重要です。
出力したAWS WAFログを確認することで、どのようなアクセスがブロックされているのか、誤検知は発生していないか、新たな攻撃パターンは出現していないかなどを把握できます。定期的に分析し適切に対策することでセキュリティの強化につながります。
ただし、AWS WAFログを分析するにはAmazon CloudWatch Log InsightsやAmazon Athenaなどのサービスを利用することがあるので、習得が必要です。
さらに、ログの量が膨大となる場合があるので、確認するのに時間がかかります。セキュリティ人材が不足している中、人的リソースの確保が難しく、そのためAWS WAFログの確認ができていない企業が多いのが実情です。
【無料資料配布中】AWS WAFの運用に悩んでいます?AWS WAF運用のノウハウを完全解説する資料をご用意しております。詳しくはこちらからダウンロードしてください。
AWS WAF自動運用サービス「WafCharm」ならログの確認や分析が簡単にできます
AWS WAFログの確認や分析は重要ですが、専門知識が必要となり、また膨大なログデータを処理するには多くの時間と労力がかかります。特にベンチャーやスタートアップ企業ではセキュリティ人材の確保が難しく、定期的なログ分析を行うのが困難な場合が多いのが現状です。
このような課題を解決するのがAWS WAF自動運用サービス「WafCharm」です。
WafCharmの管理画面(コンソール)では、攻撃を検知したルールの割合や、アクセス元の国・地域やIPアドレス、アクセスのあったパスなど、不正アクセスやサイバー攻撃に関する情報が確認できます。難しい分析を行わなくてもWebアプリケーションのセキュリティ状況を把握できます。
さらに、WafCharmにはログ検索機能が付いており、時間帯やアクセスされたパスなどの条件を組み合わせてAWS WAFログを絞り込むことができます。WafCharmを活用することで、WAFログのさらなる分析も簡単にできます。

WafCharmについて詳しくはこちらの資料をダウンロードしてご確認ください。