ウェブアクセスコントロールリスト (ウェブ ACL)
ウェブアクセスコントロールリスト (ウェブ ACL) を使用すると、保護されたリソースが応答するすべての HTTP(S) ウェブリクエストをきめ細かく制御できます。Amazon CloudFront、Amazon API Gateway、Application Load Balancer、AWS AppSync、Amazon Cognito リソースを保護できます。
次のような基準を使用すると、リクエストを許可またはブロックできます。
-
リクエストの IP アドレスの送信元
リクエストの送信元の国
リクエストの一部に含まれる文字列一致または正規表現 (regex) 一致
-
リクエストの特定の部分のサイズ
-
悪意のある SQL コードまたはスクリプトの検出
これらの条件の任意の組み合わせをテストすることもできます。指定された条件を満たすだけでなく、5 分間にわたって指定された数のリクエストを超えるウェブリクエストを、ブロックまたはカウントできます。論理演算子を使用して条件を組み合わせることができます。リクエストに対して CAPTCHA パズルやサイレントクライアントセッションのチャレンジを実行することもできます。
AWS WAF ルールステートメントで、一致基準と一致に対して実行するアクションを指定します。ルールステートメントは、ウェブ ACL 内、およびウェブ ACL で使用する再利用可能なルールグループで直接定義できます。オプションの詳細なリストについては、「AWS WAF ルールステートメント」および「AWS WAF ルールアクション」を参照してください。
ウェブリクエストの検査および処理基準を指定するには、次のタスクを実行します。
指定したルールのいずれにも一致しないウェブリクエストのウェブ ACL デフォルトアクション (Allow または Block) を選択します。詳細については、「ウェブ ACL のデフォルトアクションの決定」を参照してください。
-
ウェブ ACL で使用するルールグループを追加します。マネージドルールグループには通常、ウェブリクエストをブロックするルールが含まれます。ルールグループについては、「ルールグループ」を参照してください。
1 つ以上のルールで、追加の一致基準と処理手順を指定します。複数のルールを追加するには、
AND
またはOR
ルールステートメントをまず使用し、結合するルールをそれらの下にネストします。ルールオプションを否定する場合は、NOT ステートメントでルールをネストします。必要に応じて、通常のルールの代わりにレートベースのルールを使用して、条件を満たす単一の IP アドレスからのリクエストの数を制限できます。ルールについては、「[Rules] (ルール)」を参照してください。
複数のルールをウェブ ACL に追加した場合は、ウェブ ACL にリストされた順に、AWS WAF でルールが評価されます。詳細については、「ウェブ ACL ルールおよびルールグループの評価」を参照してください。
ウェブ ACL を作成するときに、その ACL を使用するリソースのタイプを指定します。詳細については、「ウェブ ACL の作成」を参照してください。ウェブ ACL を定義した後、その ACL をリソースに関連付けて、リソースの保護を開始できます。詳細については、「ウェブ ACL と AWS リソースの関連付けまたは関連付けの解除」を参照してください。
AWS リソースが AWS WAF からのレスポンスの遅延を処理する方法
AWS WAF で内部エラーが発生し、関連付けられている AWS リソースへの、リクエストを許可するかブロックするかについての応答が遅延する場合があります。そのような場合は、CloudFront がリクエストを許可するか、コンテンツを提供するのが一般的ですが、 およびリージョンレベルのサービスはリクエストを拒否し、コンテンツを提供しないのが一般的です。