速率型規則陳述式 - AWS WAF、AWS Firewall Manager 與 AWS Shield Advanced

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

速率型規則陳述式

速率型規則會追蹤每個來源 IP 位址的請求速率,並針對速率超過限制的 IP 觸發規則動作。您將限制設定為每 5 分鐘時間範圍的請求數目。您可以使用這種規則類型對來自傳送過多請求的 IP 地址的請求放置暫時的封鎖。在預設情況下,AWS WAF根據來自 Web 請求源的 IP 地址聚合請求,但您可以將規則配置為使用來自 HTTP 標頭的 IP 地址,如X-Forwarded-For,而不是。

AWS WAF針對您使用的基於比率的規則的每個實例分別跟蹤和管理 Web 請求。例如,如果您在兩個 Web ACL 中提供相同的基於比率的規則設置,則兩個規則語句中的每一條都表示基於比率的規則的單獨實例,並通過AWS WAF。如果您在規則組內定義了基於比率的規則,然後在多個位置使用該規則組,則每個使用都會創建一個單獨的基於比率的規則實例,該實例可通過AWS WAF。

當規則操作觸發時,AWS WAF將動作應用於來自 IP 地址的其他請求,直到請求速率低於限制為止。操作更改可能需要一兩分鐘才能生效。

您可以檢索目前因速率限制而封鎖的 IP 地址列表。如需相關資訊,請參閱 以速度為基礎的規則列出封鎖的 IP 地址

下列警告適用於AWS WAF速率為基礎的規則:

  • 您可以設置的最低費率為 100。

  • AWS WAF每 30 秒檢查一次請求速率,並每次對前五分鐘的請求進行計數。因此,IP 地址可能會在 30 秒之前以過高的速率發送請求AWS WAF檢測並阻止它。

  • AWS WAF最多可以阻止 10,000 個 IP 地址。如果超過 10,000 個 IP 地址同時發送高速請求,AWS WAF只會阻止其中的 10,000 個。

您可以縮小AWS WAF軌道和計數. 若要執行這項操作,請將另一個範圍下限陳述式嵌套在速率型陳述式內。然後,AWS WAF只會計算符合範圍縮小陳述式的請求。如需範圍縮小陳述式的詳細資訊,請參範圍縮小語句

例如,根據您最近從美國攻擊者看到的請求,您可以使用下列範圍下限陳述式建立速率型規則:

  • AND 規則陳述式,其中包含下列第二層巢狀陳述式:

    • 地理比對陳述式,指定源自美國的請求。

    • 字串比對陳述式,會在 User-Agent 標頭中搜尋字串 BadBot

假設您也設定了 1,000 的速率限制。對於每個 IP 地址,AWS WAF計算滿足兩個嵌套語句條件的請求。不符合這兩個要求的要求將不計算在內。如果 IP 位址的計數在任何 5 分鐘的時間範圍內超過 1,000 個請求,會針對該 IP 位址觸發規則的動作。

另一個例子是,您可能希望限制對您網站的登入頁面發出的請求數。若要這樣做,您可以使用下列巢狀化字串比對陳述式來建立速率型規則:

  • 所以此檢查 請求元件URI path

  • 所以此符合類型Starts with string

  • 所以此要比對的字串login

將這個以速率為基礎的規則新增到 Web ACL,您就可以限制對您登入頁面的請求數量,但不影響網站的其他部分。

不可巢狀— 您無法將此陳述式類型巢狀化在其他陳述式中。您可以將它直接包含在 Web ACL 和規則羣組中。

(可選)範圍縮小語句— 此規則類型採用可選的範圍縮小陳述式,以縮小速率為基礎的陳述式追蹤的請求範圍。如需詳細資訊,請參閱 範圍縮小語句

WCU— 2 個加上嵌套陳述式的任何其他 WCU。

此語句使用以下可選設置:

  • (可選)轉發的 IP 配置— 在預設情況下,AWS WAF聚合在 Web 請求源中的 IP 地址上,但是您可以將規則配置為在 HTTP 標頭中使用轉發的 IP 地址,如X-Forwarded-For。AWS WAF使用標頭中的第一個 IP 位址。使用此配置時,您還可以指定應用於指定標頭中 IP 地址格式錯誤的 Web 請求的回退行為。回退行為將請求的匹配結果設置為匹配或不匹配。如需詳細資訊,請參閱 轉發 IP 地址

哪裡可以找到此項

  • 規則建置器在您的 Web ACL 中,控制台上 — 在規則, 用於類型,選擇以速率為基礎的規則

  • API 陳述式RateBasedStatement