AWS WAF 入門 - AWS WAF、AWS Firewall Manager 與 AWS Shield Advanced

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

AWS WAF 入門

此教學課程說明如何使用 AWS WAF 執行以下任務:

  • 設定 AWS WAF。

  • 在 AWS WAF 主控台中使用精靈建立 Web 存取控制清單 (Web ACL)。

  • 選擇您要 AWS WAF 檢查 Web 請求的 AWS 資源。本教學課程涵蓋了 Amazon CloudFront 的步驟。Amazon API Gateway REST API、Application Load Balancer 或AWS AppSyncGraphQL API。

  • 新增您要用來篩選 Web 請求的規則和規則群組。例如,您可以指定請求源於的 IP 地址和僅由攻擊者使用的請求數值。針對每個規則,您可以指定要封鎖或允許符合的 Web 請求。在規則群組內定義的規則會在規則群組內定義其動作。

  • 指定 Web ACL 的預設動作,BlockAllow。這是當 Web 請求不符合任何規則時 AWS WAF 採取的動作。

注意

對於您在本教學課程中建立的資源,AWS 通常每天計價少於 0.25 美元。當您完成此教學課程,我們建議您刪除資源以免產生不必要的費用。

步驟 1:設定 AWS WAF

如果您已經註冊AWS 帳戶中所述的 IAM 使用者,並依照設定,請前往步驟 2:建立 Web ACL

如果還沒,請移至 設定 執行至少前兩個步驟。(您可以略過下載工具步驟,因為此入門主題著重於使用 AWS WAF 主控台)。

步驟 2:建立 Web ACL

AWS WAF 主控台逐步引導您設定 AWS WAF 根據您指定的條件 (例如發出請求的 IP 地址或請求的值) 以封鎖或允許 Web 請求。在此步驟中,建立Web ACL。如需有關 的詳細資訊AWS WAFWeb ACL,請參閱管理和使用 Web 存取控制清單 (web ACL)

建立 Web ACL

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

  2. 從AWS WAF首頁,選擇建立 Web ACL

  3. 對於 Name (名稱),輸入您要用來識別此 Web ACL 的名稱。

    注意

    建立 Web ACL 後無法修改名稱。

  4. (選擇性) 對於 Description - optional (描述 - 選用性),如果需要,請為 Web ACL 輸入較長的描述。

  5. 適用於CloudWatch Metric下,變更預設名稱 (如果適用)。遵循主控台上的指引,以瞭解有效的字元。名稱不能包含特殊字元、空格或保留給 AWS WAF 使用的指標名稱,包括「All」和「Default_Action」。

    注意

    建立 Web ACL 後無法變更 CloudWatch 指標名稱。

  6. 對於 Resource type (資源類型),選擇 CloudFront distributions (CloudFront 分發)Region (區域) 會自動填入 CloudFront 分發的 Global (CloudFront) (全域 (CloudFront))

  7. (選擇性)關聯AWS資源-可選中,選擇AddAWSresources。在對話方塊中,選擇您要關聯的資源,然後選擇Add。AWS WAF會跳至描述網頁 ACL 和相關聯的AWSresources(憑證已建立!) 頁面上的名稱有些許差異。

  8. 選擇 Next (下一步)

步驟 3:新增字串比對規則

字串比對陳述式會識別您想要 AWS WAF 在請求中搜尋的字串 (例如,標頭或查詢字串中指定的值)。通常,字串包含可列印 ASCII 字元,但您可以指定十六字元範圍 0x00 到 0xFF 的任何字元 (小數點 0 到 255)。在此步驟中,您會建立使用字串比對陳述式的規則,並指出如何處理比對請求。如需的相關資訊AWS WAF規則,請參閱AWS WAF 規則

建立字串比對規則陳述式

  1. Add rules and rule groups (新增規則和規則群組) 頁面上,選擇 Add rules (新增規則)Add my own rules and rule groups (新增我自己的規則和規則群組)Rule builder (規則建置器)Rule visual editor (規則視覺化編輯器)

    注意

    主控台提供 Rule visual editor (規則視覺化編輯器)Rule JSON editor (規則 JSON 編輯器)。JSON 編輯器可讓您在 Web ACL 之間輕鬆複製組態,並且是更複雜的規則集所需,例如具有多層巢狀的規則集。

    此程序使用 Rule visual editor (規則視覺化編輯器)

  2. 對於 Name (名稱),輸入您要用來識別此規則的名稱。

  3. 對於 Type (類型),選擇 Regular rule (一般規則)

  4. 對於 If a request (如果請求),選擇 matches the statement (比對陳述式)

    其他選項會對規則使用邏輯陳述式類型,這可讓您結合或否定規則陳述式結果。

  5. Statement (陳述式) 上,對於 Inspect (檢查),開啟下拉式功能表並選擇您要 AWS WAF 尋找您的字串所在的 Web 請求元件。在此範例中,請選擇 Header (標頭)

    當您選擇 Header (標題) 時,您也可以指定要 AWS WAF 檢查的標題。輸入 User-Agent。此值不會區分大小寫。

  6. 對於 Match type (比對類型),選擇指定的字串必須顯示在 User-Agent 標頭中的位置。

    對於此範例,選擇 Exactly matches string (完全符合字串)。這表示 AWS WAF 會檢查每個 Web 請求中的使用者代理程式標頭,找出與您指定的字串相同的字串。

  7. 對於 String to match (要比對的字串),指定您要 AWS WAF 搜尋的字串。String to match (符合值) 的長度上限為 200 個字元。如果您想要指定 base64 編碼值,可在編碼前指定最多 200 個字元。

    在本範例中,請輸入我的代理程式。AWS WAF將檢查User-Agent在 Web 請求中的值MyAgent

  8. Text transformation (文字轉換) 保持設定為 None (無)

  9. 適用於Action下,選取規則在比對到 Web 請求時要採取的動作。在本範例中,請選擇計數並保持其他選擇。計數動作會為符合規則的 Web 請求建立指標,但不會影響允許還是封鎖。如需動作選擇的詳細資訊,請參閱AWS WAF 規則動作網頁 ACL 規則和規則群組評估

  10. 選擇 Add rule (新增規則)。

步驟 4:新增AWS受管規則群組

AWS受管規則提供一組受管規則群組供您使用,其中大部分都可以免費進行AWS WAF顧客。如需規則群組的詳細資訊,請參閱規則群組。我們將新增AWS受管理的規則規則群組新增至此 Web ACL。

新增AWS受管規則群組

  1. Add rules and rule groups (新增規則和規則群組) 頁面上,選擇 Add rules (新增規則),然後選擇 Add managed rule groups (新增受管規則群組)

  2. 新增受管規則群組頁面上,展開AWS受管規則群組。(您也會看到AWS Marketplace賣方。 您可以訂閱它們的提供項目,然後按照與AWS受管規則群組。)

  3. 對於您要新增的規則群組,請執行下列動作:

    1. 在 中Action欄中,開啟新增至 Web ACL切換切換。

    2. 選擇Edit (編輯),並在規則群組的規則列表中,開啟將所有規則動作設定為計數切換切換。這會將規則群組中所有規則的動作設定為僅計數。這可讓您在使用規則群組之前,先查看規則群組中所有規則對您的 Web 請求的運作方式。

    3. 選擇儲存規則

  4. 在 中新增受管規則群組頁面,選擇新增規則。這會讓您回到新增規則和規則群組(憑證已建立!) 頁面上的名稱有些許差異。

步驟 5:完成您的 Web ACL 組態

完成將規則和規則群組新增至 Web ACL 組態時,請在 Web ACL 中管理規則的優先順序,以及進行指標、標記和記錄等設定來完成工作。

完成您的 Web ACL 組態

  1. Add rules and rule groups (新增規則和規則群組) 頁面上,選擇 Next (下一步)

  2. Set rule priority (設定規則優先順序) 頁面上,您可以查看 Web ACL 中規則和規則群組的處理順序。AWS WAF 會從上方開始處理它們。您可以透過上移和下移來變更處理順序。若要這樣做,請在清單中選取一個,然後選擇 Move up (上移)Move down (下移)

  3. 選擇 Next (下一步)

  4. 設定指標(PDF) 頁面上的Amazon CloudWatch 指標,您可以查看規則和規則群組的計劃指標,您可以查看 Web 請求取樣選項。如需 Amazon CloudWatch 指標的相關資訊,請參閱使用 Amazon CloudWatch 進行監控。如需檢視範例要求的相關資訊,請參閱檢視 Web 請求的範例

  5. 選擇 Next (下一步)

  6. Review and create web ACL (檢閱並建立 Web ACL) 頁面上,檢閱您的設定,然後選擇 Create web ACL (建立 Web ACL)

精靈會帶您回到 Web ACL 頁面,其中會列出新的 Web ACL。

步驟 6:清除您的資源

現在,您已成功完成教學課程。為避免您的帳戶產生額外 AWS WAF 費用,請清除所建立的 AWS WAF 物件。或者,您可以變更設定,以確實比對要允許、封鎖和計數的 web 請求。

注意

對於您在本教學課程中建立的資源,AWS 通常每天計價少於 0.25 美元。當您完成時,我們建議您刪除資源以免產生不必要的費用。

刪除 AWS WAF 收取費用的物件

  1. Web ACL 頁面中,從清單中選取您的 Web ACL,然後選擇 Edit (編輯)

  2. 在 上關聯AWS資源-選用,選取所有關聯的資源,然後選擇Remove (移除)。這會將 Web ACL 與您的 AWS 資源取消關聯。

  3. 在下列每個畫面中,選擇 Next (下一步),直到您回到 Web ACL 頁面為止。

    Web ACL 頁面中,從清單中選取您的 Web ACL,然後選擇 Delete (刪除)

規則和規則陳述式無法存在於規則群組和 Web ACL 定義之外。如果您刪除 Web ACL,這會刪除您在 Web ACL 中定義的所有個別規則。當您從 Web ACL 移除某個規則群組時,您只是移除對它的參考。