集約キー機能を使用して、AWS WAF の顧客リクエストのレートを追跡および制限するルールを設定したいと考えています。
解決策
Cookie を使用してレート制限を設定する
単一の名前を持つ、値が動的な Cookie の場合は、次の手順を実行します。
- AWS WAF コンソールを開きます。
- ナビゲーションペインで [AWS WAF] を選択します。
- [リソースと保護パック] を選択します。
- 目的の保護パックを選択します。
- 選択した保護パックで [ルール] を選択します。
- [ルール] の横にある [表示と編集] を選択すると、保護パックに関連付けられたルールを表示、編集できます。
- 右側のペインの [ルールの管理] で [ルールを追加] を選択します。
- [新しいルールを作成] を選択します。
- [カスタムルール] を選択し、[次へ] を選択します。
- [ルールタイプ] で [レートベースルール] を選択し、[次へ] を選択します。
- [ルール] で [ルールを追加] を選択します。
- [独自のルールとルールグループを追加] を選択します。
- 次の値を入力してルールを設定します。
[ルールタイプ] で [ルールビルダー] を選択します。
[名前] に、このルールを識別するための名前を入力します。
[タイプ] で、[レートベースのルール] を選択します。
[レート制限] には、100 から 20,000,000 までの数値を入力します。
[評価期間] で、1 分、2 分、5 分、10 分 のいずれかを選択します。
[リクエスト集約] で [カスタムキー] を選択します。
(オプション) [テキスト変換] を選択するか、[なし] を選択します。
[リクエストの条件] で [すべてのリクエストを考慮する] を選択します。
[アクション] で [ブロック] を選択します。
[Cookie 名] に、Cookie 名を入力します。
- [ルールを追加] を選択します。
- [保存] を選択します。
マネージドラベルの名前空間を使用してレート制限を設定する
CategoryHttpLibrary というラベルを含むリクエストに対し、次の手順を実行します。
特定のマネージドルールグループをカウントモードに設定する
次の手順を実行します。
- AWS WAF コンソールを開きます。
- ナビゲーションペインで [AWS WAF] を選択します。
- [リソースと保護パック] を選択します。
- 目的の保護パックを選択します。
- 選択した保護パックで [ルール] を選択します。
- [ルール] の横にある [表示と編集] を選択すると、保護パックに関連付けられたルールを表示、編集できます。
- [ルール] で [ルールを追加] を選択します。
- [マネージドルールグループの追加] を選択します。
- [AWS マネージドルールグループ] を選択します。
- 有料****ルールグループの [Bot Control ルールセット] で、[ウェブ ACL に追加] をオンに切り替えます。
- [編集] を選択します。
- [検査レベル] で [共通] を選択します。
- ルールリストの [HTTP ライブラリ] で、[カウント] を選択します。
- [ルールを追加] を選択します。
- [ルール優先度を設定] で目的のルールを選択し、Bot Control ルールセットよりも低い優先度に更新します。
- [保存] を選択します。
ウェブ ACL にカスタムルールを追加する
次の手順を実行します。
- AWS WAF コンソールを開きます。
- ナビゲーションペインで [AWS WAF] を選択します。
- [リソースと保護パック] を選択します。
- 目的の保護パックを選択します。
- 選択した保護パックで [ルール] を選択します。
- [ルール] の横にある [表示と編集] を選択すると、保護パックに関連付けられたルールを表示、編集できます。
- 右側のペインの [ルールの管理] で [ルールを追加] を選択します。
- [新しいルールを作成] を選択します。
- [カスタムルール] を選択し、[次へ] を選択します。
- [ルールタイプ] で [レートベースルール] を選択し、[次へ] を選択します。
- [ルール] で [ルールを追加] を選択します。
- [独自のルールとルールグループを追加] を選択します。
- ルールを設定するには、次の値を設定します。
[ルールタイプ] で [ルールビルダー] を選択します。
[名前] に、このルールを識別するための名前を入力します。
[タイプ] で、[レートベースのルール] を選択します。
[レート制限] には、100 から 20,000,000 までの数値を入力します。
[評価期間] で、1 分、2 分、5 分、10 分 のいずれかを選択します。
[リクエスト集約] で [カスタムキー] を選択します。
ラベル名前空間には、awswaf:managed:aws:bot-control:bot:category:
[検査範囲とレート制限] で [すべてのリクエストを考慮する] を選択します。
[アクション] で [ブロック] を選択します。
- [ルールを追加] を選択します。
- **[ルール優先度の設定] ** でカスタムルールのルール優先度を更新し、マネージドルールの優先度よりも低くします。詳細については、「ルール優先度を設定する」を参照してください。
- [保存] を選択します。
IP を使用してレート制限を設定する
注: IP を使用してレート制限を設定できるのは、トラフィックに特定のホストヘッダーが付いている場合だけです。トラフィックにヘッダーがない場合、AWS WAF はレート制限を適用しません。
example.com などの特定のホストヘッダーを含むリクエストの場合は、次の手順を実行します。
- AWS WAF コンソールを開きます。
- ナビゲーションペインで [AWS WAF] を選択します。
- [リソースと保護パック] を選択します。
- 目的の保護パックを選択します。
- 選択した保護パックで [ルール] を選択します。
- [ルール] の横にある [表示と編集] を選択すると、保護パックに関連付けられたルールを表示、編集できます。
- 右側のペインの [ルールの管理] で [ルールを追加] を選択します。
- [新しいルールを作成] を選択します。
- [カスタムルール] を選択し、[次へ] を選択します。
- [ルールタイプ] で [レートベースルール] を選択し、[次へ] を選択します。
- ルールを設定するには、次の値を設定します。
[ルールタイプ] で [ルールビルダー] を選択します。
[名前] に、このルールを識別するための名前を入力します。
[タイプ] で、[レートベースのルール] を選択します。
[レート制限] には、100 から 20,000,000 までの数値を入力します。
[評価期間] で、1 分、2 分、5 分、10 分 のいずれかを選択します。
[リクエスト集約] で [ソース IP アドレス] を選択します。
[検査範囲とレート制限] で、[ルールステートメントの条件に一致するリクエストのみを考慮する] を選択します。
[リクエストの条件] で、[ステートメントと一致] を選択します。
[検査] で [単一ヘッダー] を選択します。
[ヘッダーフィールド名] に Host と入力します。
[マッチタイプ] で [完全に一致する文字列] を選択します。
[一致する文字列] に example.com と入力します。注: example.com は、お使いのウェブアドレスに置き換えてください。
(オプション) [テキスト変換] を選択するか、[なし] を選択します。
[アクション] で [ブロック] を選択します。
- [ルールを追加] を選択します。
- [保存] を選択します。