測試 Web ACL - AWS WAF、AWS Firewall Manager 與 AWS Shield Advanced

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

測試 Web ACL

為了確定您之前沒有將 AWS WAF 設定錯誤,將想封鎖的請求設為允許、想允許的請求設為封鎖,建議在您的網站上或 Web 應用程式上使用規則前完整測試您的 Web ACL。

計數在 Web ACL 中符合規則的 web 請求

將規則新增至 Web ACL 時,您需要指定是否要 AWS WAF 允許、封鎖或計數符合規則中所有條件的 Web 請求。建議您以下列組態開始動作:

  • 設定 Web ACL 的所有規則,以計數 Web 請求。如需如何針對 Web ACL 中的規則群組執行此作業的詳細資訊,請參閱在規則群組中設定要計數的規則動作

  • 設定 Web ACL 的預設動作,以允許請求。

在此組態中,AWS WAF會根據第一個規則中的比對陳述式檢查每個 Web 請求。如果 Web 請求匹配規則,AWS WAF會增加該規則的計數器。然後AWS WAF會根據下一個規則中的比對陳述式來檢查 Web 請求。如果 Web 請求符合規則,AWS WAF會遞增規則的計數器。這一直持續到AWS WAF已根據所有規則的比對陳述式檢查完請求。

在 Web ACL 設定完所有規則以計數請求之後,並將 Web ACL 與一個或多個AWS資源 (Amazon CloudFront 分發、Amazon API Gateway REST API、Application Load Balancer 或AWS AppSyncGraphQL SQL API),您可以在亞馬遜雲觀察圖中查看結果計數。對於 Web ACL 中的每個規則以及關聯的資源轉送至AWS WAF,CloudWatch 可讓您執行以下操作:

  • 檢視前一小時或前三小時的資料,

  • 變更資料點之間的間隔。

  • 變更 CloudWatch 對資料執行的計算,例如最大值、最小值、平均值等

注意

AWS WAF與 CloudFront 是一個全域服務和指標,只在您選擇美國東部 (維吉尼亞北部)中的區域AWS Management Console。如果您選擇另一個區域,則沒有AWS WAF指標會出現在 CloudWatch 主控台中。

若要在 Web ACL 查看規則資料

  1. 登入 AWS Management Console 並開啟位於 https://console.aws.amazon.com/cloudwatch/ 的 CloudWatch 主控台。

  2. 在導覽窗格中,於 Metrics (指標) 下選擇 AWS/WAFV2

  3. 選取要檢視資料的 Web ACL 的核取方塊。

  4. 變更適用的設定:

    統計數字

    選擇 CloudWatch 對資料執行的計算。

    時間範圍

    選擇您想要檢視前一小時或前三個小時的資料。

    期間

    選擇圖形中資料點之間的間隔。

    規則

    選擇您要檢視資料的規則。

    注意下列事項:

    • 如果您最近將 Web ACL 與 AWS 資源關聯,您可能需要等待幾分鐘,資料才會顯示在圖形中,Web ACL 的指標也才會出現在可用的指標清單中。

    • 如果您將多個資源與一個 Web ACL 產生關聯,CloudWatch 資料將包括對這所有資源的請求。

    • 您可以將滑鼠指標移至資料點以取得更多資訊。

    • 圖形不會自動自我重新整理。若要更新顯示,請選擇重新整理 ( Icon to refresh the CloudWatch graph ) 圖示。

  5. (選用) 檢視相關聯的個別詳細資訊AWS資源已轉寄至AWS WAF。如需更多詳細資訊,請參閱 檢視 Web 請求的範例

  6. 如果您認為規則正在攔截您不希望攔截的請求,請變更設定。如需更多詳細資訊,請參閱 管理和使用 Web 存取控制清單 (web ACL)

    當您對所有規則都能攔截到正確請求感到滿意時,請將每個規則的操作更改為允許封鎖。如需更多詳細資訊,請參閱 編輯 Web ACL

檢視 Web 請求的範例

在 AWS WAF 主控台中,如果您已啟用請求取樣,則可以檢視關聯的資源轉送至 AWS WAF 供檢查的請求範例。對於每個抽樣請求,您可以查看請求的詳細資料,例如源於的 IP 地址和包含在請求中的標頭。您也可以檢視請求符合的規則、規則是否有正確設定以用於允許或封鎖請求。

請求樣本最多含有 100 個請求符合所有條件中的每個規則中,以及另外 100 個預設動作的請求,這些請求適用於不符合所有條件中的任何規則。樣本中的請求來自所有在前 15 分鐘收到了您的內容請求的受保護資源。

檢視關聯的資源轉送至 AWS WAF 的 Web 請求範例

  1. 登入。AWS Management Console,開啟AWS WAF主控台位於https://console.aws.amazon.com/wafv2/

  2. 在導覽窗格中,選擇 Web ACL

  3. 選擇您要檢視請求的 Web ACL。

  4. Overview (概觀) 索引標籤中,Sampled requests (抽樣請求) 表為每個請求顯示以下的值:

    來源 IP

    請求源於的 IP 地址或、如果檢視器使用 HTTP 代理或 Application Load Balancer 傳送請求、代理伺服器的 IP 地址或 Application Load Balancer。

    URI

    URL 識別資源的一部分,例如 /images/daily-ad.jpg

    比對規則

    識別 web 請求中符合所有 Web ACL 條件的中第一個規則。如果 web 請求不符合和所有 Web ACL 條件的規則,則 Matches rule (比對規則)預設

    請注意,當 Web 請求符合規則的所有條件時,該規則的動作為 Count (計數),AWS WAF 根據 Web ACL 的後續規則,繼續檢查 Web 請求。在這種情況下,web 請求可能會在抽樣請求名單上出現兩次:一次因為規則操作 Count (計數) 的動作,並再次在後續規則或預設動作操作。

    動作

    指出動作對應的規則為允許封鎖Count (計數)

    時間

    那個時候AWS WAF收到來自 Amazon CloudFront、Amazon API Gateway、Application Load Balancer 或AWS AppSync。

  5. 若要顯示請求的額外資訊,請選擇該請求之 IP 地址左側的箭頭。AWS WAF 會顯示以下資訊:

    來源 IP

    相同的 IP 地址做為表格中來源 IP欄的值。

    國家/地區

    請求源自國家的雙字母國家/地區代碼。如果檢視器使用 HTTP 代理或 Application Load Balancer至發送請求,這是 HTTP 代理或 Application Load Balancer 所處國家/地區的兩個字母國家/地區代碼。

    如需雙字母國家/地區代碼對應的國家/地區名稱,請參閱 Wikipedia 項目 ISO 3166-1 alpha-2

    方法

    HTTP 請求方法的請求:GETHEADOPTIONSPUTPOSTPATCHDELETE

    URI

    相同的 URI 做為表格中來源 IP欄的值。

    請求標頭

    請求的標頭和請求的標頭值。

  6. 若要重新整理範例清單,選擇Get new samples (取得新的範例)