【Security Hub修復手順】[WAF.1] AWS WAF クラシックグローバルウェブ ACL ログ記録を有効にする必要があります

AWS SecurityHub 基礎セキュリティのベストプラクティスコントロール修復手順をご紹介します。
2023.08.29

こんにちは、AWS事業本部@福岡オフィスのべこみん(@beco_minn)です。

皆さん、お使いのAWS環境のセキュリティチェックはしていますか?

当エントリでは、AWS Security HubによるAWS環境のセキュリティ状況スコアリングに該当する項目についての修復手順をご紹介します。

本記事の対象コントロール

[WAF.1] AWS WAF クラシックグローバルウェブ ACL ログ記録を有効にする必要があります

[WAF.1] AWS WAF Classic Global Web ACL logging should be enabled

前提条件

本記事はAWS Security Hubで「AWS基礎セキュリティのベストプラクティススタンダード」を利用されている方向けの内容となります。 AWS Security Hubの詳細についてはこちらのブログをご覧ください。

対象コントロールの説明

本コントロールはAWS WAF Classic用のコントロールです。AWS WAF v2のコントロールではありません。 本コントロールでは、AWS WAF Classicのグローバルweb ACL、つまりAmazon CloudFront用のACLにおいて、ログ記録を有効かしているかどうかがチェックされます。

ログ記録はAWS WAFを運用するにあたり重要なオプションです。ログを分析して適切な対応を取ることで、Webアプリケーションの信頼性や可用性を維持出来ます。

ただし、ログ記録の有効化は利用料金の増加に直結します。ステークホルダーとよく認識を合わせた上で有効化することを推奨します。

ログ記録の詳細については下記をご参照ください。

修復手順

1. ステークホルダーに確認を取る

ステークホルダー(リソースの作成者や管理している部署などの関係者)に以下を確認します。

  • ログ記録を行うかどうか
  • ログの保存先
    • 今回の手順では新規作成したS3バケットにログを保存します
  • ログの保持期間

2. ログ保存先のS3バケットを作成する

ログを保存するS3バケットを作成します。

リージョンやバケットの名称に条件はありません。任意のリージョン、任意の名称で作成します。

ここでは細かい手順説明を省略します。

3. Kinesis Data Firehoseを作成する

AWS WAF ClassicではS3バケットへのログ保存にKinesis Data Firehoseが必要です。

グローバルなweb ACLで利用する場合、Kinesis Data Firehoseの配信ストリームは下記の条件で作成する必要があります。

それでは作成します。

まず、バージニア北部リージョンの配信ストリーム作成画面を開きます。上記のリンクからでも作成画面に飛べます。

以下の通りに設定します。

  • ソース:Direct PUT
  • 送信先:Amazon S3
  • 配信ストリーム名:aws-waf-logs-で始まる任意の名前

送信先の設定で、手順2で作成したS3バケットを指定します。S3バケットのプレフィックスなどのオプションを指定する場合はここで指定します。

設定が完了したら配信ストリームを作成します。

4. 対象のリソースを把握する

それではSecurityHubの結果より、対象のディストリビューションを確認します。バージニア北部リージョン(us-east-1)の場合、下記URLから確認可能です。

https://us-east-1.console.aws.amazon.com/securityhub/home?region=us-east-1#/controls/WAF.1

下図赤枠部が対象のディストリビューションIDです。

5. 対象web ACLのログ記録を有効化する

今回操作するのはAWS WAF Classicなので、WAF&ShieldのコンソールからClassic用のコンソールに移動します。

下図の赤枠部からAWS WAF Classicのコンソールに飛びます。

FilterからリージョンをGlobalに変更します。

対象のweb ACLを選択し、Loggingタブを開きます。

Loggingタブで Enable Logging をクリックすると、下図のLogging設定ページが開きます。

Amazon Kinesis Data Firehoseとして、手順3で作成した配信ストリームを指定します。

Redacted Fieldsでは出力されるログから除外したい項目を選べます。

Createを押して、Logging設定を完了します。

Logging設定が完了すると、下図のようにLoggingが Enabled になっているはずです。

以上で設定は完了です。お疲れ様でした。

最後に

今回は、AWS Security HubによるAWS環境のセキュリティ状況スコアリングに該当する項目についての修正手順をご紹介しました。

コントロールを修正して、お使いのAWS環境のセキュリティをパワーアップさせましょう!

最後までお読みいただきありがとうございました!どなたかのお役に立てれば幸いです。

以上、べこみんでした。

クラスメソッドメンバーズをご契約の皆さまに

AWS Security Hub 「基礎セキュリティのベストプラクティス」の各チェック項目(コントロール)に対する弊社としての推奨対応やコメントを記載しているClassmethod Cloud Guidebook を提供しています。 クラスメソッドメンバーズポータルの「お役立ち情報」→「組織的な AWS 活用のためのノウハウ」からご参照ください。