特定のラベルを使用してリクエストをレート制限する - AWS WAF、AWS Firewall Manager、AWS Shield Advanced、および AWS Shield ネットワークセキュリティディレクター

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

更新されたエクスペリエンスを使用して、コンソールの任意の場所で AWS WAF 機能にアクセスできるようになりました。詳細については、「更新されたコンソールエクスペリエンスを使用する」を参照してください。

特定のラベルを使用してリクエストをレート制限する

複数のカテゴリのリクエストの数を制限するには、リクエストにラベルを追加する任意のルールまたはルールグループとレート制限を組み合わせることができます。そのためには、保護パック (ウェブ ACL) を次のように設定します。

  • ラベルを追加するルールまたはルールグループを追加し、レート制限するリクエストがブロックまたは許可されないように設定します。マネージドルールグループを使用する場合、この動作を実現するために一部のルールグループのルールアクションを Count にオーバーライドすることが必要になる場合があります。

  • ラベリングルールやルールグループよりも高い優先順位が設定されているレートベースのルールを保護パック (ウェブ ACL) に追加します。AWS WAF は、優先順位の低いルールから順番に評価するため、レートベースのルールはラベリングルールの後に実行されます。ルールのスコープダウンステートメントのラベル一致とラベル集約を組み合わせて、ラベルのレート制限を設定します。

次の例では、Amazon IP 評価リストの AWS マネージドルールのルールグループを使用しています。このルールグループのルールである AWSManagedIPDDoSList は、IP が DDoS 攻撃に積極的に関与していることがわかっているリクエストを検出し、ラベルを付けます。ルールのアクションは、ルールグループ定義で Count に設定されています。ルールグループの詳細については、「Amazon IP 評価リストマネージドルールグループ」を参照してください。

次の保護パック (ウェブ ACL) JSON リストでは、IP 評価ルールグループの後にラベル一致のレートベースのルールが続いています。レートベースのルールでは、スコープダウンステートメントを使用して、ルールグループのルールでマークされたリクエストをフィルタリングします。レートベースのルールステートメントは、フィルタリングされたリクエストを IP アドレスで集約してレート制限します。

{ "Name": "test-web-acl", "Id": ... "ARN": ... "DefaultAction": { "Allow": {} }, "Description": "", "Rules": [ { "Name": "AWS-AWSManagedRulesAmazonIpReputationList", "Priority": 0, "Statement": { "ManagedRuleGroupStatement": { "VendorName": "AWS", "Name": "AWSManagedRulesAmazonIpReputationList" } }, "OverrideAction": { "None": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "AWS-AWSManagedRulesAmazonIpReputationList" } }, { "Name": "test-rbr", "Priority": 1, "Statement": { "RateBasedStatement": { "Limit": 100, "EvaluationWindowSec": 300, "AggregateKeyType": "IP", "ScopeDownStatement": { "LabelMatchStatement": { "Scope": "LABEL", "Key": "awswaf:managed:aws:amazon-ip-list:AWSManagedIPDDoSList" } } } }, "Action": { "Block": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "test-rbr" } } ], "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "test-web-acl" }, "Capacity": 28, "ManagedByFirewallManager": false, "RetrofittedByFirewallManager": false, "LabelNamespace": "awswaf:0000000000:webacl:test-web-acl:" }