AWS WAF で新しい正規表現パターンセットを作成しようとすると、エラー "WAFLimitsExceededException" が発生します。新しい正規表現パターンと正規表現パターンセットを追加するために、既存の正規表現パターンセットを最適化しようと考えています。
解決策
AWS WAF と AWS WAF Classic では、各 AWS リージョンのクォータに、デフォルトの最大値の正規表現パターンが設定されています。これらのクォータは変更できません。クォータに達したら、既存の正規表現パターンセットを拡張または統合する必要があります。
正規表現パターンセットを再利用する
可能な場合は、正規表現パターンセットを複数のウェブアクセスコントロールリスト (ウェブ ACL) ルール内で再利用します。参照されている正規表現パターンセットを更新すると、AWS WAF はそれを参照するすべてのルールを自動的に更新します。
既存の正規表現パターンセットを更新する
AWS コマンドラインインターフェイス (AWS CLI) を使用して正規表現パターンセットを更新する
正規表現パターンセットを更新するには、update-regex-pattern-set を実行します。
注: AWS CLI コマンドの実行時にエラーが発生する場合は、「AWS CLI のエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
AWS WAF コンソールを使用して正規表現パターンセットを更新する
- AWS WAF コンソールを開きます。
- ナビゲーションペインで [AWS WAF] をクリックし、[リソースと保護パック] を選択します。
- [保護パック] で [セットとグループを管理] を選択します。
- [正規表現パターンセットを管理] をクリックします。
- 右側のペインで、正規表現パターンセットを選択します。
- [正規表現パターンを追加および編集] をクリックします。
- 新しいパターンを追加するには、新しい行に記述します。
- 既存のパターンを削除するには、その行を削除します。
- [正規表現パターンを保存] をクリックします。
既存の正規表現パターンセットを更新すると、1 つの正規表現パターンセットで複数のパターンを使用できます。文字数制限に対する効率を上げるには、OR 論理 (|) を使用して 1 つのパターンに複数のパターンを追加します。
注: AWS WAF では、各正規表現パターンの最大文字数に制限があります。これらは AWS WAF Classic のクォータとは異なります。
例えば、以下の代わりに
#--------------------------
# REGEX_Pattern_Set_A
#--------------------------
REGEX_PATTERN_1
REGEX_PATTERN_2
REGEX_PATTERN_3
REGEX_PATTERN_4
REGEX_PATTERN_5
REGEX_PATTERN_6
REGEX_PATTERN_7
REGEX_PATTERN_8
REGEX_PATTERN_9
REGEX_PATTERN_10
以下を実行します。
#--------------------------
#REGEX_Pattern_Set_A
#--------------------------
REGEX_PATTERN_1
REGEX_PATTERN_2
REGEX_PATTERN_3|REGEX_PATTERN_4|REGEX_PATTERN_5|REGEX_PATTERN_6
REGEX_PATTERN_7|REGEX_PATTERN_8|REGEX_PATTERN_9|REGEX_PATTERN_10
上記の更新により、正規表現パターンセット内により多く正規表現パターンを追加できます。
次の例は、1 つの正規表現パターンセットで複数のドメインを識別する方法を示しています。
(example.com|example.net|example.org)
注: この例は、example.com、example.net、example.org というドメインを識別するための正規表現パターンを示しています。これらのドメインを、実際に使用するドメインに置き換えてください。
正規表現パターンセットを AWS WAF ルールに追加する
次の手順を実行します。
- AWS WAF コンソールを開きます。
- ナビゲーションペインで [AWS WAF] をクリックし、[リソースと保護パック] を選択します。
- 目的の保護パックを探し、[ルール] の横にある [表示と編集] をクリックします。
- 右側のペインで [ルールを追加] をクリックします。
[カスタムルール] を選択し、[次へ] をクリックします。
[カスタムルール] を再度選択し、[次へ] をクリックします。
- ユースケースに基づいて [ルールアクション] を更新します。
- [ルール名] を入力します。
- [検査] で、リクエストコンポーネントを選択します。
- [マッチタイプ] で、[正規表現パターンセットからパターンを照合] を選択します。
- 正規表現パターンセットを選択します。
- [ルールを作成] をクリックします。
関連情報
Creating a regex pattern set (正規表現パターンセットを作成する)
Regex match rule statement (正規表現マッチルールのステートメント)