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

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

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

注記

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

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

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

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

Amazon Kinesis Data Firehose を作成し、保存されているログを確認する方法については、「Amazon データファイアホースとは」を参照してください。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-analytics PUT ソースを使用して、動作しているリージョンでデータ Firehose を作成します。Amazon のログをキャプチャする場合は CloudFront、米国東部 (バージニア北部) に消防ホースを作成してください。詳細については、「Creating an Amazon Data Firehose Delivery Stream」を参照してください。

    重要

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

    1 AWS WAF つのクラシックログは 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-」で始まる消防ホースを選択する必要があります。

  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 したがってレート監視の対象となる可能性があるかどうかを判断するために使用するフィールド。可能性のある値は IP です。

maxRateAllowed

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

httpRequest

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

clientIp

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

country

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

headers

ヘッダーの一覧。

uri

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

args

クエリ文字列。

httpVersion

HTTP のバージョン。

httpMethod

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

requestId

リクエストの ID。