

**の新しいコンソールエクスペリエンスの紹介 AWS WAF**

更新されたエクスペリエンスを使用して、コンソールの任意の場所で AWS WAF 機能にアクセスできるようになりました。詳細については、[「コンソールの使用](https://docs.aws.amazon.com/waf/latest/developerguide/working-with-console.html)」を参照してください。

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

# ウェブ ACL トラフィック情報のログ記録
<a name="classic-logging"></a>

**警告**  
AWS WAF Classic は計画されたend-of-lifeプロセスを進めています。リージョン固有のマイルストーンと日付については、 AWS Health ダッシュボードを参照してください。

**注記**  
これは **AWS WAF Classic** ドキュメントです。このバージョンは、2019 年 11 月 AWS WAF より前にルールやウェブ ACLs などのリソースを作成し AWS WAF 、最新バージョンに移行していない場合にのみ使用してください。Web ACL を移行するには、[AWS WAF Classic リソースの への移行 AWS WAF](waf-migrating-from-classic.md) を参照してください。  
**の最新バージョンについては、 AWS WAF**「」を参照してください[AWS WAF](waf-chapter.md)。

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

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

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

Amazon Kinesis Data Firehose を作成し、保存されているログを確認する方法については、「[What Is Amazon Data Firehose?](https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html)」を参照してください。Kinesis Data Firehose の設定に必要な許可を理解するには、「[Controlling Access with Amazon Kinesis Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html)」(Amazon Kinesis Data Firehose によるアクセスの制御) を参照してください。

ログ記録を正常に有効化するには、次の許可がある必要があります。
+ `iam:CreateServiceLinkedRole`
+ `firehose:ListDeliveryStreams`
+ `waf:PutLoggingConfiguration`

サービスにリンクされたロールおよび `iam:CreateServiceLinkedRole` 許可の詳細については、「[AWS WAF Classic のサービスにリンクされたロールの使用](classic-using-service-linked-roles.md)」を参照してください。<a name="classic-logging-procedure"></a>

**ウェブ ACL でログ記録を有効にするには**

1. Amazon Kinesis Data Firehose を「aws-waf-logs-」で始まるプレフィックスを使用して作成します (例: `aws-waf-logs-us-east-2-analytics`)。`PUT` ソースを使用して、動作しているリージョンでデータ Firehose を作成します。Amazon CloudFront のログをキャプチャしている場合は、米国東部 (バージニア北部) に Firehose を作成します。詳細については、「[Amazon Data Firehose 配信ストリームの作成](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html)」を参照してください。
**重要**  
ソースとして `Kinesis stream` を選択しないでください。  
1 つの AWS WAF Classic ログは、1 つの Firehose レコードに相当します。通常、1 秒あたり 10,000 件のリクエストを受信していて、完全なログを有効にする場合、Firehose には 1 秒あたり 10,000 件のレコード設定を行う必要があります。Firehose を正しく設定しないと、 AWS WAF Classic はすべてのログを記録しません。詳細については、「[Amazon Kinesis Data Firehose Quotas](https://docs.aws.amazon.com/firehose/latest/dev/limits.html)」(Amazon Kinesis Data Firehose のクォータ) を参照してください。

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/wafv2/](https://console.aws.amazon.com/wafv2/) で AWS WAF コンソールを開きます。

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

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

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

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

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

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

1. **[Enable logging]** (ログの有効化) を選択します。
**注記**  
ログ記録を正常に有効にすると、 AWS WAF Classic は Amazon Kinesis Data Firehose にログを書き込むために必要なアクセス許可を持つサービスにリンクされたロールを作成します。詳細については、「[AWS WAF Classic のサービスにリンクされたロールの使用](classic-using-service-linked-roles.md)」を参照してください。<a name="classic-logging-disable-procedure"></a>

**ウェブ ACL でログ記録を無効にするには**

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

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

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

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

**Example ログの例**  

```
{
			
	"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\$1BASED、REGULAR、GROUP です。

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

**terminatingRuleMatchDetails**  
リクエストに一致した終了ルールに関する詳細情報。終了ルールには、ウェブリクエストに対する検査プロセスを終了するアクションがあります。終了ルールに対して実行できるアクションは、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 です。

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

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

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

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

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

**ruleId (excludedRules group)**  
除外されたルールグループ内のルールの ID。

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

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

**limitKey**  
が 1 つのソースからリクエストが到着する可能性が高く、レートモニタリングの対象となるかどうかを判断するために 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。