ウェブ ACL トラフィック情報のログ記録 - AWS WAF, AWS Firewall Managerおよび AWS Shield Advanced

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ウェブ ACL トラフィック情報のログ記録

注記

これは AWS WAF Classic ドキュメントです。このバージョンは、2019 年 11 月 AWS WAF より前にルールやウェブ ACLs などのリソースを作成 AWS WAF しており、まだ最新バージョンに移行していない場合にのみ使用してください。リソースを移行するには、「AWS WAF クラシックリソースをに移行する AWS WAF」を参照してください。

の最新バージョンについては、 AWS WAF「」を参照してくださいAWS WAF

注記

Amazon Security Lake を使用して AWS WAF Classic データを収集することはできません。

ログ記録を有効にして、ウェブ ACL で分析されるトラフィックに関する詳細情報を取得できます。ログに含まれる情報には、 AWS WAF Classic が AWS リソースからリクエストを受信した時間、リクエストに関する詳細情報、および各リクエストが一致したルールのアクションが含まれます。

開始するには、Amazon Kinesis Data Firehose をセットアップします。このプロセスの一環として、ログの保存先を選択します。次に、ログ記録を有効にするウェブ ACL を選択します。ログ記録を有効にすると、 は Firehose を介してストレージ宛先にログを AWS WAF 配信します。

Amazon Kinesis Data Firehose を作成して保存されたログを確認する方法については、「Amazon Data Firehose とは」を参照してください。Kinesis Data Firehose の設定に必要な許可を理解するには、「Controlling Access with Amazon Kinesis Data Firehose」(Amazon Kinesis Data Firehose によるアクセスの制御) を参照してください。

ログ記録を正常に有効化するには、次の許可がある必要があります。

  • iam:CreateServiceLinkedRole

  • firehose:ListDeliveryStreams

  • waf:PutLoggingConfiguration

サービスにリンクされたロールおよび iam:CreateServiceLinkedRole 許可の詳細については、「Classic でのサービスにリンクされたロールの使用 AWS WAF」を参照してください。

ウェブ ACL でログ記録を有効にするには
  1. プレフィックスaws-waf-logs「-」で始まる名前を使用して Amazon Kinesis Data Firehose を作成します。例えば、 ですaws-waf-logs-us-east-2-analyticsPUT ソースを使用して、動作しているリージョンでデータ Firehose を作成します。Amazon のログをキャプチャする場合は CloudFront、米国東部 (バージニア北部) に Firehose を作成します。詳細については、「Creating an Amazon Data Firehose Delivery Stream」を参照してください。

    重要

    ソースとして Kinesis stream を選択しないでください。

    1 つの AWS WAF Classic ログは、1 つの Firehose レコードに相当します。通常、1 秒あたり 10,000 件のリクエストを受信し、フルログを有効にする場合は、Firehose で 1 秒あたり 10,000 件のレコードを設定する必要があります。Firehose を正しく設定しないと、 AWS WAF Classic はすべてのログを記録しません。詳細については、「Amazon Kinesis Data Firehose Quotas」(Amazon Kinesis Data Firehose のクォータ) を参照してください。

  2. にサインイン AWS Management Console し、https://console.aws.amazon.com/wafv2/ で AWS WAF コンソールを開きます。

    ナビゲーションペインに AWS WAF 「クラシックに切り替える」と表示されている場合は、それを選択します。

  3. ナビゲーションペインで [Web ACLs] (ウェブ ACL) を選択します。

  4. ログ記録を有効にするウェブ ACL の名前を選択します。これにより、右ペインで、ウェブ ACL の詳細を含むページが開きます。

  5. [Logging] (ログ記録) タブで [Enable logging] (ログの有効化) を選択します。

  6. 最初のステップで作成した Kinesis Data Firehose を選択します。aws-waf-logs「-」で始まる Firehose を選択する必要があります。

  7. (オプション) 特定のフィールドとその値がログに含まれることを希望しない場合には、このフィールドをマスキングします。マスキングするフィールドを選び、[Add] (追加) を選択します。必要に応じて手順を繰り返し、追加のフィールドをマスキングします。マスキングされたフィールドは、ログに REDACTED と表示されます。例えば、[cookie] フィールドをマスキングした場合、ログ内の [cookie] フィールドは REDACTED となります。

  8. [Enable logging] (ログの有効化) を選択します。

    注記

    ログ記録を正常に有効にすると、 AWS WAF Classic は Amazon Kinesis Data Firehose にログを書き込むために必要なアクセス許可を持つサービスにリンクされたロールを作成します。詳細については、「Classic でのサービスにリンクされたロールの使用 AWS WAF」を参照してください。

ウェブ ACL でログ記録を無効にするには
  1. ナビゲーションペインで [Web ACLs] (ウェブ ACL) を選択します。

  2. ログ記録を無効にするウェブ ACL の名前を選択します。これにより、右ペインで、ウェブ ACL の詳細を含むページが開きます。

  3. [Logging] (ログ記録) タブで [Disable logging] (ログの無効化) を選択します。

  4. 確認ダイアログボックスで、[Disable logging] (ログの無効化) を選択します。

例 ログの例
{ "timestamp":1533689070589, "formatVersion":1, "webaclId":"385cb038-3a6f-4f2f-ac64-09ab912af590", "terminatingRuleId":"Default_Action", "terminatingRuleType":"REGULAR", "action":"ALLOW", "httpSourceName":"CF", "httpSourceId":"i-123", "ruleGroupList":[ { "ruleGroupId":"41f4eb08-4e1b-2985-92b5-e8abf434fad3", "terminatingRule":null, "nonTerminatingMatchingRules":[ {"action" : "COUNT", "ruleId" : "4659b169-2083-4a91-bbd4-08851a9aaf74"} ], "excludedRules": [ {"exclusionType" : "EXCLUDED_AS_COUNT", "ruleId" : "5432a230-0113-5b83-bbb2-89375c5bfa98"} ] } ], "rateBasedRuleList":[ { "rateBasedRuleId":"7c968ef6-32ec-4fee-96cc-51198e412e7f", "limitKey":"IP", "maxRateAllowed":100 }, { "rateBasedRuleId":"462b169-2083-4a93-bbd4-08851a9aaf30", "limitKey":"IP", "maxRateAllowed":100 } ], "nonTerminatingMatchingRules":[ {"action" : "COUNT", "ruleId" : "4659b181-2011-4a91-bbd4-08851a9aaf52"} ], "httpRequest":{ "clientIp":"192.10.23.23", "country":"US", "headers":[ { "name":"Host", "value":"127.0.0.1:1989" }, { "name":"User-Agent", "value":"curl/7.51.2" }, { "name":"Accept", "value":"*/*" } ], "uri":"REDACTED", "args":"usernam=abc", "httpVersion":"HTTP/1.1", "httpMethod":"GET", "requestId":"cloud front Request id" } }

以下ではこれらのログに示されている各項目について説明しています。

timestamp

タイムスタンプ (ミリ秒単位)。

formatVersion

ログの形式バージョン。

webaclId

ウェブ ACL の GUID。

terminatingRuleId

リクエストを終了したルールの ID。リクエストを終了したものがない場合、この値は Default_Action となります。

terminatingRuleType

リクエストを終了したルールのタイプ。可能な値は、RATE_BASED、REGULAR、GROUP です。

action

アクション。終了ルールの可能な値は、ALLOW および BLOCK です。COUNT は、終了ルールの有効な値ではありません。

terminatingRuleMatch詳細

リクエストに一致した終了ルールに関する詳細情報。終了ルールには、ウェブリクエストに対する検査プロセスを終了するアクションがあります。終了ルールに対して実行できるアクションは、ALLOW および BLOCK です。これは、SQL インジェクションおよびクロスサイトスクリプティング (XSS) 一致ルールステートメントに対してのみ設定されます。複数の対象を検査するすべてのルールステートメントと同様、 AWS WAF は最初の一致にアクションを適用し、ウェブリクエストの検査を停止します。終了アクションを伴うウェブリクエストには、ログで報告された脅威に加えて、他の脅威が含まれている可能性があります。

httpSourceName

リクエストの送信元。指定できる値: CF (ソースが Amazon の場合 CloudFront)、APIGW (ソースが Amazon API Gateway の場合)、ALB (ソースが Application Load Balancer の場合)。

httpSourceId

ソース ID。このフィールドには、関連付けられた Amazon CloudFront ディストリビューションの ID、API Gateway の REST API、または Application Load Balancer の名前が表示されます。

ruleGroupList

このリクエストで動作したルールグループのリスト。前述のコード例では、1 つのみです。

ruleGroupId

ルールグループの ID ルールがリクエストをブロックした場合、ruleGroupID の ID は、terminatingRuleId の ID と同じです。

terminatingRule

リクエストを終了したルールグループ内のルール。これが Null 以外の値の場合、[ruleid] および [action] (アクション) も含まれます。この場合、アクションは常に BLOCK です。

nonTerminatingMatchingルール

リクエストに一致するルールグループ内のルールのリスト。これは常に COUNT ルール (一致する非終了ルール) です。

アクション (nonTerminatingMatchingルールグループ)

これは常に COUNT (一致する非終了ルール) です。

ruleId (nonTerminatingMatchingルールグループ)

リクエストに一致する非終了ルールグループ内のルールの ID。これが COUNT ルールです。

excludedRules

除外されているルールグループ内のルールのリスト。これらのルールのアクションは [COUNT] に設定されます。

exclusionType (excludedRules group)

除外されたルールにアクション COUNT があることを示すタイプ。

ruleId (excludedRules group)

除外されたルールグループ内のルールの ID。

rateBasedRuleリスト

このリクエストで動作したレートベースのルールのリスト。

rateBasedRuleID

このリクエストで動作したレートベースのルールの ID。これがリクエストを終了した場合、rateBasedRuleId の ID は、terminatingRuleId の ID と同じです。

limitKey

が AWS WAF 1 つのソースからリクエストが到着する可能性が高いかどうかを判断するために使用するフィールド。したがって、レートモニタリングの対象となります。可能性のある値は IP です。

maxRateAllowed

5 分間に許可される limitKey で指定されたフィールドに同じ値を持つ、リクエストの最大数。リクエストの数が を超えmaxRateAllowed、ルールで指定された他の述語も満たされた場合、 はこのルールに指定されたアクションを AWS WAF トリガーします。

httpRequest

リクエストに関するメタデータです。

clientIp

リクエストを送信するクライアントの IP アドレス。

country

リクエストの送信国。 AWS WAF が発信元の国を特定できない場合、このフィールドは に設定されます-

headers

ヘッダーの一覧。

uri

リクエストの URI。上記のコードの例では、このフィールドがマスキングされた場合の値を示しています。

args

クエリ文字列。

httpVersion

HTTP のバージョン。

httpMethod

リクエストの HTTP メソッド。

requestId

リクエストの ID。