

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

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

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

# AWS WAF Classic の開始方法
<a name="classic-getting-started"></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)。

このチュートリアルでは、 AWS WAF Classic を使用して以下のタスクを実行する方法を示します。
+  AWS WAF Classic をセットアップします。
+  AWS WAF Classic コンソールを使用してウェブアクセスコントロールリスト (ウェブ ACL) を作成し、ウェブリクエストのフィルタリングに使用する条件を指定します。例えば、リクエストの発生元の IP アドレスと、攻撃者によってのみ使用されるリクエスト内の値を指定できます。
+ 条件をルールに追加します。ルールでは、ブロックまたは許可するウェブリクエストを対象にすることができます。ウェブリクエストは、 AWS WAF Classic が指定した条件に基づいてリクエストをブロックまたは許可する前に、ルールのすべての条件と一致する必要があります。
+ ルールをウェブ ACL に追加します。ウェブ ACL では、各ルールに追加する条件に基づいて、ウェブリクエストをブロックするか許可するかを指定します。
+ ブロックまたは許可のいずれかのデフォルトアクションを指定します。これは、ウェブリクエストがどのルールとも一致しない場合に AWS WAF Classic が実行するアクションです。
+  AWS WAF Classic がウェブリクエストを検査する Amazon CloudFront ディストリビューションを選択します。このチュートリアルでは、CloudFront のステップのみについて説明しますが、Application Load Balancer と Amazon API Gateway APIsのプロセスは基本的に同じです。CloudFront の AWS WAF Classic はすべての で使用できます AWS リージョン。API Gateway で使用する AWS WAF Classic または Application Load Balancer は、[AWS サービスエンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html)にリストされているリージョンで使用できます。

**注記**  
AWS 通常、 は、このチュートリアルで作成したリソースに対して 1 日あたり 0.25 USD 未満を請求します。チュートリアルを終了したら、不要な料金が発生しないようにリソースを削除することをお勧めします。

**Topics**
+ [ステップ 1: AWS WAF Classic をセットアップする](#classic-getting-started-aws-account)
+ [ステップ 2: ウェブ ACL を作成する](#classic-getting-started-wizard-create-web-acl)
+ [ステップ 3: IP 一致条件を作成する](#classic-getting-started-wizard-create-ip-condition)
+ [ステップ 4: Geo 一致条件を作成する](#classic-getting-started-wizard-create-geo-condition)
+ [ステップ 5: 文字列一致条件を作成する](#classic-getting-started-wizard-create-string-condition)
+ [ステップ 5A: (オプション) 正規表現条件を作成する](#classic-getting-started-wizard-create-regex-condition)
+ [ステップ 6: SQL インジェクション一致条件を作成する](#classic-getting-started-wizard-create-sql-condition)
+ [ステップ 7: (オプション) 追加の条件を作成する](#classic-getting-started-wizard-create-optional-conditions)
+ [ステップ 8: ルールを作成して条件を追加する](#classic-getting-started-wizard-create-rule)
+ [ステップ 9: ルールをウェブ ACL に追加する](#classic-getting-started-wizard-add-rule)
+ [ステップ 10: リソースをクリーンアップする](#classic-getting-started-wizard-clean-up)

## ステップ 1: AWS WAF Classic をセットアップする
<a name="classic-getting-started-aws-account"></a>

[AWS WAF Classic のセットアップ](classic-setting-up-waf.md) の一般的なセットアップ手順をまだ実行していない場合、今すぐ実行してください。

## ステップ 2: ウェブ ACL を作成する
<a name="classic-getting-started-wizard-create-web-acl"></a>

 AWS WAF Classic コンソールは、リクエストの送信元の IP アドレスやリクエストの値など、指定した条件に基づいてウェブリクエストをブロックまたは許可するように AWS WAF Classic を設定するプロセスをガイドします。このステップでは、ウェブ ACL を作成します。<a name="classic-getting-started-wizard-create-web-acl-procedure"></a>

**ウェブ ACL を作成するには**

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

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

1.  AWS WAF Classic を初めて使用する場合は、** AWS WAF 「クラシックに移動**」を選択し、**「ウェブ ACL の設定**」を選択します。

    AWS WAF Classic を以前に使用したことがある場合は、ナビゲーションペインで**ウェブ ACLs** を選択し、ウェブ **ACL の作成**を選択します。

1. **[Name web ACL]** (ウェブ ACL に名前を付ける) ページで、**[Web ACL name]** (ウェブ ACL の名前) に名前を入力します。
**注記**  
ウェブ ACL の作成後は、名前を変更することはできません。

1. **[CloudWatch metric name]** (CloudWatch メトリクス名)で、名前を入力します。名前には、英数字のみ (A～Z、a～z、0～9) を使用できます。空白を含めることはできません。
**注記**  
ウェブ ACL の作成後は、名前を変更することはできません。

1. **[Region]** (リージョン) で、リージョンを選択します。このウェブ ACL を CloudFront ディストリビューションに関連付ける場合は、**[Global (CloudFront)]** (グローバル (CloudFront)) を選択します。

1. [**AWS resource to associate (関連付けるリソース)**] で、ウェブ ACL に関連付けるリソースを選択し、[**Next (次へ)**] を選択します。

## ステップ 3: IP 一致条件を作成する
<a name="classic-getting-started-wizard-create-ip-condition"></a>

IP 一致条件では、リクエストの発生元の IP アドレスまたは IP アドレス範囲を指定します。このステップでは、IP 一致条件を作成します。後のステップで、指定した IP アドレスからのリクエストを許可するかブロックするかを指定します。

**注記**  
IP 一致条件の詳細については、「[IP 一致条件の使用](classic-web-acl-ip-conditions.md)」を参照してください。<a name="classic-getting-started-wizard-create-ip-condition-procedure"></a>

**IP 一致条件を作成するには**

1. **[Create conditions]** (条件を作成) ページの **[IP match conditions]** (IP 一致条件) で、**[Create condition]** (条件を作成) を選択します。

1. **[Create IP match condition]** (IP 一致条件の作成) ダイアログボックスの **[Name]** (名前) に名前を入力します。名前に使用できるのは英数字 (A～Z、a～z、0～9) または特殊文字 \$1-\$1"\$1`\$1\$1\$1,./ です。

1. **[Address]** (アドレス) で、**192.0.2.0/24** と入力します。この IP アドレス範囲は、CIDR 表記で指定しており、192.0.2.0 から 192.0.2.255 までの IP アドレスが含まれます (192.0.2.0/24 の IP アドレス範囲は例のために予約されているため、ウェブリクエストはこれらの IP アドレスから発生しません)。

   AWS WAF Classic は IPv4 アドレス範囲 /8、および /16 から /32 までの任意の範囲をサポートします。 AWS WAF Classic は IPv6 アドレス範囲 /24、/32、/48、/56、/64、および /128 をサポートします。(192.0.2.44 など 1 つの IP アドレスを指定するには、**192.0.2.44/32** と入力します)。他の範囲はサポートされていません。

   CIDR 表記の詳細については、Wikipedia の「[Classless Inter-Domain Routing](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)」(クラスレスドメイン間ルーティング) 記事を参照してください。

1. **[Create]** (作成) を選択します。

## ステップ 4: Geo 一致条件を作成する
<a name="classic-getting-started-wizard-create-geo-condition"></a>

Geo 一致条件では、リクエスト送信元の 1 つ以上の国を指定します。このステップでは、Geo 一致条件を作成します。後のステップで、指定した国から送信されたリクエストを許可するかブロックするかを指定します。

**注記**  
Geo 一致条件の詳細については、「[Geo (地理的) 一致条件の使用](classic-web-acl-geo-conditions.md)」を参照してください。<a name="classic-getting-started-wizard-create-geo-condition-procedure"></a>

**Geo 一致条件を作成するには**

1. **[Create conditions]** (条件を作成) ページの **[Geo match conditions]** (Geo 一致条件) で、**[Create condition]** (条件を作成) を選択します。

1. **[Create geo match condition]** (geo 一致条件の作成) ダイアログボックスの **[Name]** (名前) に名前を入力します。名前に使用できるのは英数字 (A～Z、a～z、0～9) または特殊文字 \$1-\$1"\$1`\$1\$1\$1,./ です。

1. **[Location type]** (場所のタイプ) と国を選択します。現時点では、**[Location type]** (場所のタイプ) は **[Country]** (国) にのみ設定できます。

1. **[Add location]** (場所を追加) を選択します。

1. **[Create]** (作成) を選択します。

## ステップ 5: 文字列一致条件を作成する
<a name="classic-getting-started-wizard-create-string-condition"></a>

文字列一致条件は、ヘッダーまたはクエリ文字列の指定された値など、リクエストで AWS WAF Classic が検索する文字列を識別します。通常、文字列は印刷可能な ASCII 文字で構成されますが、16 進数 0x00 〜 0xFF (10 進数 0 〜 255) の任意の文字を指定できます。このステップでは、文字列一致条件を作成します。後のステップで、指定した文字列を含むリクエストを許可するかブロックするかを指定します。

**注記**  
文字列一致条件の詳細については、「[文字列一致条件の使用](classic-web-acl-string-conditions.md)」を参照してください。<a name="classic-getting-started-wizard-create-string-condition-procedure"></a>

**文字列一致条件を作成するには**

1. **[Create conditions]** (条件を作成) ページの **[String and regex match conditions]** (文字列および正規表現の一致条件) で、**[Create condition]** (条件を作成) を選択します。

1. **[Create string match condition]** (文字列一致条件の作成) ダイアログボックスで、次の値を入力します。  
**[Name] (名前)**  
名前を入力します。名前に使用できるのは英数字 (A～Z、a～z、0～9) または特殊文字 \$1-\$1"\$1`\$1\$1\$1,./ です。  
**[Type] (タイプ)**  
**[String match]** (文字列の一致) を選択します。  
**[Part of the request to filter on] (フィルタリングするリクエストの一部)**  
 AWS WAF Classic で指定された文字列を検査するウェブリクエストの部分を選択します。  
この例では、**[Header]** (ヘッダー) を選択します。  
**[Part of the request to filter on]** (フィルタリングするリクエストの一部) の値として **[Body]** (本文) を選択した場合、CloudFront によって最初の 8,192 バイトのみが検査のために転送されるため、 AWS WAF Classic によって最初の 8,192 バイト (8 KB) のみが検査されます。本文が 8,192 バイトより長いリクエストを許可またはブロックするには、サイズ制約条件を作成します。(AWS WAF Classic はリクエストヘッダーから本文の長さを取得します）。詳細については、「[サイズ制約条件の使用](classic-web-acl-size-conditions.md)」を参照してください。  
**[Header] (ヘッダー) ([Part of the request to filter on] (フィルタリングするリクエストの一部) が [Header] (ヘッダー) の場合は必須)**  
**フィルタリングするリクエストの一部に****ヘッダー**を選択しているため、 AWS WAF Classic で検査するヘッダーを指定する必要があります。**[User-Agent]** を入力します。(この値は大文字と小文字が区別されません。)  
**[Match type] (一致タイプ)**  
指定した文字列が **[User-Agent]** ヘッダーに表示される場所 (文字列の先頭、末尾、または任意の場所など) を選択します。  
この例では、**完全一致**を選択します。これは、 AWS WAF Classic が指定した値と同じヘッダー値についてウェブリクエストを検査することを示します。  
**変換**  
 AWS WAF Classic をバイパスするために、攻撃者は空白を追加したり、リクエストの一部またはすべてを URL エンコードしたりするなどして、ウェブリクエストで異常な形式を使用します。[Transformation] (変換) を有効にすることで、ウェブリクエストはより標準的な形式に変換されます。そのために、空白が削除されたり、リクエストが URL デコードされたり、攻撃者がよく使用する特殊な形式の多くが排除されたりします。  
1 種類のテキスト変換しか指定できません。  
この例では、**[None]** (なし) を選択します。  
**[Value is base64 encoded] (値が base64 エンコードされている)**  
**[Value to match]** (一致する値) に入力した値が既に base64 でエンコードされている場合は、このチェックボックスをオンにします。  
この例では、このチェックボックスをオンにしないでください。  
**[Value to match] (照合する値)**  
Classic で AWS WAF 検索する値を、**フィルタリングするリクエストのパートで指定したウェブリクエストのパートで指定します**。  
この例では、**BadBot**. AWS WAF Classic はウェブリクエストの `User-Agent` ヘッダーに **BadBot** の値がないか検査します。」と入力します。  
**[Value to match]** (一致する値) は最大 50 文字です。base64 でエンコードされた値を指定する場合、エンコード前の長さで最大 50 文字指定できます。

1.  AWS WAF Classic で を含む`User-Agent`ヘッダー`BadBot`や を含むクエリ文字列など、複数の値についてウェブリクエストを検査する場合は`BadParameter`、次の 2 つの選択肢があります。
   + 両方の値が含まれているときにのみ (`AND`)、ウェブリクエストを許可またはブロックする場合は、値ごとに 1 つの文字列一致条件を作成します。
   + 一方か両方の値が含まれているときに (`OR`)、ウェブリクエストを許可またはブロックする場合は、両方の値を同じ文字列一致条件に追加します。

   この例では、**[Create]** (作成) を選択します。

## ステップ 5A: (オプション) 正規表現条件を作成する
<a name="classic-getting-started-wizard-create-regex-condition"></a>

正規表現条件は文字列一致条件の一種であり、ヘッダーやクエリ文字列の指定された値など、リクエストで AWS WAF Classic が検索する文字列を識別する点で似ています。主な違いは、正規表現 (regex) を使用して AWS WAF Classic で検索する文字列パターンを指定することです。このステップでは、正規表現一致条件を作成します。後のステップで、指定した文字列を含むリクエストを許可するかブロックするかを指定します。

**注記**  
正規表現一致条件の詳細については、「[正規表現一致条件の使用](classic-web-acl-regex-conditions.md)」を参照してください。<a name="classic-getting-started-wizard-create-regex-condition-procedure"></a>

**正規表現一致条件を作成するには**

1. **[Create conditions]** (条件を作成) ページの **[String match and regex conditions]** (文字列の一致および正規表現の条件)で、**[Create condition]** (条件を作成) を選択します。

1. **[Create string match condition]** (文字列一致条件の作成) ダイアログボックスで、次の値を入力します。  
**[Name] (名前)**  
名前を入力します。名前に使用できるのは英数字 (A～Z、a～z、0～9) または特殊文字 \$1-\$1"\$1`\$1\$1\$1,./ です。  
**[Type] (タイプ)**  
**[Regex match]** (正規表現の一致) を選択します。  
**[Part of the request to filter on] (フィルタリングするリクエストの一部) **  
 AWS WAF Classic で指定された文字列を検査するウェブリクエストの部分を選択します。  
この例では、**[Body]** (本文) を選択します。  
**[Part of the request to filter on]** (フィルタリングするリクエストの一部) の値として **[Body]** (本文) を選択した場合、CloudFront によって最初の 8,192 バイトのみが検査のために転送されるため、 AWS WAF Classic によって最初の 8,192 バイト (8 KB) のみが検査されます。本文が 8,192 バイトより長いリクエストを許可またはブロックするには、サイズ制約条件を作成します。(AWS WAF Classic はリクエストヘッダーから本文の長さを取得します）。詳細については、「[サイズ制約条件の使用](classic-web-acl-size-conditions.md)」を参照してください。  
**変換**  
 AWS WAF Classic をバイパスするために、攻撃者は空白を追加したり、リクエストの一部またはすべてを URL エンコードしたりするなどして、ウェブリクエストで異常な形式を使用します。[Transformation] (変換) を有効にすることで、ウェブリクエストはより標準的な形式に変換されます。そのために、空白が削除されたり、リクエストが URL デコードされたり、攻撃者がよく使用する特殊な形式の多くが排除されたりします。  
1 種類のテキスト変換しか指定できません。  
この例では、**[None]** (なし) を選択します。  
**Regex patterns to match to request (リクエストに一致する正規表現パターン)**  
**[Create regex pattern set]** (正規表現パターンセットを作成) を選択します。  
**New pattern set name (新しいパターンセット名)**  
名前を入力し、 AWS WAF Classic で検索する正規表現パターンを指定します。  
次に、正規表現 **I[a@]mAB[a@]dRequest**. AWS WAF Classic を入力します。 はウェブリクエストの `User-Agent` ヘッダーに値がないか検査します。  
   + **IamABadRequest**
   + **IamAB@dRequest**
   + **I@mABadRequest**
   + **I@mAB@dRequest**

1. **[Create pattern set and add filter]** (パターンセットを作成してフィルターを追加) を選択します。

1. **[Create]** (作成) を選択します。

## ステップ 6: SQL インジェクション一致条件を作成する
<a name="classic-getting-started-wizard-create-sql-condition"></a>

SQL インジェクション一致条件は、 AWS WAF Classic が悪意のある SQL コードを検査するヘッダーやクエリ文字列などのウェブリクエストの部分を識別します。攻撃者は SQL クエリを使用してデータベースからデータを抽出します。このステップでは、SQL インジェクション一致条件を作成します。後のステップで、悪意のある可能性がある SQL コードを含むリクエストを許可するかブロックするかを指定します。

**注記**  
文字列一致条件の詳細については、「[SQL インジェクション一致条件の使用](classic-web-acl-sql-conditions.md)」を参照してください。<a name="classic-getting-started-wizard-create-sql-condition-procedure"></a>

**ステップ 5: SQL インジェクション一致条件を作成するには**

1. **[Create conditions]** (条件を作成) ページの **[SQL injection match conditions]** (SQL インジェクション一致条件) で、**[Create condition]** (条件を作成) を選択します。

1. **[Create SQL injection match condition]** (SQL インジェクション一致条件の作成) ダイアログボックスで、次の値を入力します。  
**[Name] (名前)**  
名前を入力します。  
**[Part of the request to filter on] (フィルタリングするリクエストの一部)**  
 AWS WAF Classic で悪意のある SQL コードを検査するウェブリクエストの部分を選択します。  
この例では、**[Query string]** (クエリ文字列) を選択します。  
**[Part of the request to filter on]** (フィルタリングするリクエストの一部) の値として **[Body]** (本文) を選択した場合、CloudFront によって最初の 8,192 バイトのみが検査のために転送されるため、 AWS WAF Classic によって最初の 8,192 バイト (8 KB) のみが検査されます。本文が 8,192 バイトより長いリクエストを許可またはブロックするには、サイズ制約条件を作成します。(AWS WAF Classic はリクエストヘッダーから本文の長さを取得します）。詳細については、「[サイズ制約条件の使用](classic-web-acl-size-conditions.md)」を参照してください。  
**[Transformation] (変換)**  
この例では、**[URL decode]** (URL デコード) を選択します。  
攻撃者は Classic をバイパスするために URL エンコードなどの異常な形式を使用します AWS WAF 。**[URL decode]** (URL デコード) オプションを選択すると、 AWS WAF Classic によってリクエストが検査される前に、ウェブリクエストでその形式の部分が削除されます。  
1 種類のテキスト変換しか指定できません。

1. **[Create]** (作成) を選択します。

1. **[Next]** (次へ) を選択します。

## ステップ 7: (オプション) 追加の条件を作成する
<a name="classic-getting-started-wizard-create-optional-conditions"></a>

AWS WAF Classic には、以下を含む他の条件が含まれます。
+ **サイズ制約条件** – AWS WAF Classic で長さを確認するヘッダーやクエリ文字列などのウェブリクエストの部分を識別します。詳細については、「[サイズ制約条件の使用](classic-web-acl-size-conditions.md)」を参照してください。
+ **クロスサイトスクリプト一致条件** – 悪意のあるスクリプトを検査 AWS WAF するヘッダーやクエリ文字列などのウェブリクエストの一部を識別します。詳細については、「[クロスサイトスクリプティング一致条件の使用](classic-web-acl-xss-conditions.md)」を参照してください。

この時点で、必要に応じてこれらの条件を作成するか、「[ステップ 8: ルールを作成して条件を追加する](#classic-getting-started-wizard-create-rule)」に進むことができます。

## ステップ 8: ルールを作成して条件を追加する
<a name="classic-getting-started-wizard-create-rule"></a>

Classic がウェブリクエストで AWS WAF 検索する条件を指定するルールを作成します。ルールに複数の条件を追加する場合、 AWS WAF Classic がそのルールに基づいてリクエストを許可またはブロックするには、ウェブリクエストがルールのすべての条件と一致する必要があります。

**注記**  
ルールの詳細については、「[ルールの使用](classic-web-acl-rules.md)」を参照してください。<a name="classic-getting-started-wizard-create-rule-procedure"></a>

**ルールを作成して条件を追加するには**

1. **[Create rules]** (ルールの作成) ページで、**[Create rule]** (ルールの作成) を選択します。

1. **[Create rule]** (ルールの作成) ダイアログボックスで、次の値を入力します。  
**[Name] (名前)**  
名前を入力します。  
**[CloudWatch metric name] (CloudWatch メトリクス名)**  
 AWS WAF Classic が作成し、ルールに関連付ける CloudWatch メトリクスの名前を入力します。名前には、英数字のみ (A～Z、a～z、0～9) を使用できます。空白を含めることはできません。  
**[Rule type] (ルールタイプ)**  
**[Regular rule]** (通常ルール) または **[Rate-based rule]** (レートベースのルール) を選択します。レートベースのルールは通常ルールと同じですが、5 分間に識別された IP アドレスから着信したリクエストの数も考慮に入れます。ルールタイプの詳細については、「[AWS WAF Classic の仕組み](classic-how-aws-waf-works.md)」を参照してください。この例では、[`Regular rule`] を選択します。  
**[Rate limit] (レート制限)**  
レートベースのルールの場合、ルールの条件に一致する IP アドレスから 5 分間に許可するリクエストの最大数を入力します。

1. ルールに追加する最初の条件として、次の設定を指定します。
   + ウェブリクエストが条件の設定と一致するかどうかに基づいて、 AWS WAF Classic がリクエストを許可またはブロックするかどうかを選択します。

     この例では、**[does]** (条件に該当) を選択します。
   + ルールに追加する条件のタイプ (IP 一致セット条件、文字列一致セット条件、または SQL インジェクション一致セット条件) を選択します。

     この例では、**[originate from IP addresses in]** (次の IP アドレスから発信) を選択します。
   + ルールに追加する条件を選択します。

     この例では、前のタスクで作成した IP 一致条件を選択します。

1. **[Add condition]** (条件を追加) を選択します。

1. 前に作成した Geo 一致条件を追加します。次の値を指定します。
   + **[When a request does]** (リクエストが条件に該当する場合)
   + **[originate from a geographic location in]** (発生元の地理的場所)
   + Geo 一致条件を選択します。

1. **[Add another condition]** (別の条件を追加) を選択します。

1. 前に作成した文字列一致条件を追加します。次の値を指定します。
   + **[When a request does]** (リクエストが条件に該当する場合)
   + **[match at least one of the filters in the string match condition]** (文字列一致条件のフィルターの少なくとも 1 つに一致)
   + 文字列一致条件を選択します。

1. **[Add condition]** (条件を追加) を選択します。

1. 前に作成した SQL インジェクション一致条件を追加します。次の値を指定します。
   + **[When a request does]** (リクエストが条件に該当する場合)
   + **[match at least one of the filters in the SQL injection match condition]** (SQL インジェクション一致条件のフィルターの少なくとも 1 つに一致)
   + SQL インジェクション一致条件を選択します。

1. **[Add condition]** (条件を追加) を選択します。

1. 前に作成したサイズ制約条件を追加します。次の値を指定します。
   + **[When a request does]** (リクエストが条件に該当する場合)
   + **[match at least one of the filters in the size constraint condition]** (サイズ制約条件のフィルターの少なくとも 1 つに一致)
   + サイズ制約条件を選択します。

1. 正規表現条件など、他の条件を作成した場合は、同様の方法でそれらの条件を追加します。

1. **[Create]** (作成) を選択します。

1. **[Default action]** (デフォルトのアクション) で、**[Allow all requests that don't match any rules]** (ルールに一致しないすべてのリクエストを許可) を選択します。

1. **[Review and create]** (確認および作成) を選択します。

## ステップ 9: ルールをウェブ ACL に追加する
<a name="classic-getting-started-wizard-add-rule"></a>

ルールをウェブ ACL に追加するときは、次の設定を指定します。
+ Classic がルールのすべての条件に一致するウェブリクエストに対して AWS WAF 実行するアクション: リクエストを許可、ブロック、またはカウントします。
+ ウェブ ACL のデフォルトアクション。これは、ルールのすべての条件*に*一致しないウェブリクエストに対して AWS WAF Classic が実行するアクションです。リクエストを許可または拒否します。

AWS WAF Classic は、以下のすべての条件 (および追加した可能性のある他の条件) に一致する CloudFront ウェブリクエストのブロックを開始します。
+ `User-Agent` ヘッダーの値が `BadBot`
+ (正規表現条件を作成して追加した場合) `Body` の値がパターン `I[a@]mAB[a@]dRequest` と一致する 4 つの文字列のいずれか
+ リクエストの発生元が 192.0.2.0～192.0.2.255 の範囲の IP アドレス
+ リクエストの送信元が Geo 一致条件で選択した国
+ リクエスト内のクエリ文字列に悪意のある可能性がある SQL コードが含まれる

AWS WAF Classic を使用すると、CloudFront はこれらの 3 つの条件をすべて満たしていないリクエストに応答できます。

## ステップ 10: リソースをクリーンアップする
<a name="classic-getting-started-wizard-clean-up"></a>

これでチュートリアルは完了です。アカウントに AWS WAF Classic の追加料金が発生しないようにするには、作成した AWS WAF Classic オブジェクトをクリーンアップする必要があります。または、許可、ブロック、カウントするウェブリクエストに合わせて設定を変更することもできます。

**注記**  
AWS 通常、 は、このチュートリアルで作成したリソースに対して 1 日あたり 0.25 USD 未満を請求します。終了したら、不要な料金が発生しないようにリソースを削除することをお勧めします。<a name="classic-getting-started-wizard-clean-up-procedure"></a>

**AWS WAF Classic が請求するオブジェクトを削除するには**

1. CloudFront ディストリビューションからウェブ ACL の関連付けを解除します。

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

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

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

   1. 右ペインの **[Rules]** (ルール) タブで、**[AWS resources using this web ACL]** (このウェブ ACL を使用する リソース) セクションに移動します。ウェブ ACL を関連付けた CloudFront ディストリビューションに対して、**[Type]** (タイプ) 列の **[x]** を選択します。

1. ルールから条件を削除する:

   1. ナビゲーションペインで **[Rules]** (ルール) を選択します。

   1. チュートリアルで作成したルールを選択します。

   1. **[Edit rule]** (ルールの編集) を選択します。

   1. 各条件見出しの右にある **[x]** を選択します。

   1. **[Update]** (更新) を選択します。

1. ウェブ ACL からルールを削除し、ウェブ ACL を削除する:

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

   1. チュートリアルで作成したウェブ ACL の名前を選択します。これにより、右ペインで、ウェブ ACL の詳細を含むページが開きます。

   1. **[Rules]** (ルール) タブで、**[Edit web ACL]** (ウェブ ACL を編集) を選択します。

   1. 各ルール見出しの右にある **[x]** を選択します。

   1. **[Actions]** (アクション) を選択してから、**[Delete web ACL]** (ウェブ ACL を削除) を選択します。

1. ルールを削除する:

   1. ナビゲーションペインで **[Rules]** (ルール) を選択します。

   1. チュートリアルで作成したルールを選択します。

   1. **[Delete]** (削除) を選択します。

   1. **[Delete]** (削除) のダイアログボックスで、再度 **[Delete]** (削除) を選択して確認します。

AWS WAF Classic は条件に対して課金しませんが、クリーンアップを完了する場合は、次の手順を実行して条件からフィルターを削除し、条件を削除します。<a name="classic-getting-started-wizard-clean-up-conditions-procedure"></a>

**フィルターと条件を削除するには**

1. IP 一致条件で IP アドレス範囲を削除し、IP 一致条件を削除します。

   1.  AWS WAF Classic コンソールのナビゲーションペインで、**IP アドレス**を選択します。

   1. チュートリアルで作成した IP 一致条件を選択します。

   1. 追加した IP アドレス範囲のチェックボックスをオンにします。

   1. **[Delete IP address or range]** (IP アドレスまたは範囲を削除) を選択します。

   1. **[IP match conditions]** (IP 一致条件) ペインで、**[Delete]** (削除) を選択します。

   1. **[Delete]** (削除) のダイアログボックスで、再度 **[Delete]** (削除) を選択して確認します。

1. SQL インジェクションでフィルターを削除し、SQL インジェクション一致条件を削除する:

   1. ナビゲーションペインで、**[SQL injection]** (SQL インジェクション) を選択します。

   1. チュートリアルで作成した SQL インジェクション一致条件を選択します。

   1. 追加したフィルターのチェックボックスをオンにします。

   1. **[Delete filter]** (フィルターを削除) を選択します。

   1. **[SQL injection match conditions]** (SQL インジェクション一致条件) ペインで、**[Delete]** (削除) を選択します。

   1. **[Delete]** (削除) のダイアログボックスで、再度 **[Delete]** (削除) を選択して確認します。

1. 文字列一致条件でフィルターを削除し、文字列一致条件を削除します。

   1. ナビゲーションペインで、**[String and regex matching]** (文字列および正規表現の一致) を選択します。

   1. チュートリアルで作成した文字列一致条件を選択します。

   1. 追加したフィルターのチェックボックスをオンにします。

   1. **[Delete filter]** (フィルターを削除) を選択します。

   1. **[String match conditions]** (文字列一致条件) ペインで、**[Delete]** (削除) を選択します。

   1. **[Delete]** (削除) のダイアログボックスで、再度 **[Delete]** (削除) を選択して確認します。

1. フィルターを作成した場合は、正規表現一致条件でフィルタを削除してから、正規表現一致条件を削除します。

   1. ナビゲーションペインで、**[String and regex matching]** (文字列および正規表現の一致) を選択します。

   1. チュートリアルで作成した正規表現一致条件を選択します。

   1. 追加したフィルターのチェックボックスをオンにします。

   1. **[Delete filter]** (フィルターを削除) を選択します。

   1. **[Regex match conditions]** (正規表現一致条件) ペインで、**[Delete]** (削除) を選択します。

   1. **[Delete]** (削除) のダイアログボックスで、再度 **[Delete]** (削除) を選択して確認します。

1. サイズ制約条件でフィルターを削除し、サイズ制約条件を削除します。

   1. ナビゲーションペインで、**[Size constraints]** (サイズ制約) を選択します。

   1. チュートリアルで作成したサイズ制約条件を選択します。

   1. 追加したフィルターのチェックボックスをオンにします。

   1. **[Delete filter]** (フィルターを削除) を選択します。

   1. **[Size constraint conditions]** (サイズ制約の条件) ペインで、**[Delete]** (削除) を選択します。

   1. **[Delete]** (削除) のダイアログボックスで、再度 **[Delete]** (削除) を選択して確認します。