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、應用程式負載平衡器或AWS AppSyncGraphQL API。

  • 新增您要用來篩選 Web 請求的規則和規則群組。例如,您可以指定請求源於的 IP 地址和僅由攻擊者使用的請求數值。針對每個規則,您可以指定如何處理匹配的 Web 請求。您可以阻止它們、允許它們、對它們進行計數或插入CAPTCHA檢查他們。您可以為在 Web ACL 內定義的每個規則以及在規則組內定義的每個規則定義一個操作。

  • 指定 Web ACL 的預設動作,Block或者Allow。這是當 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 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 指標名稱,變更預設名稱 (如果適用)。遵循主控台上的指引,以瞭解有效的字元。名稱不能包含特殊字元、空格或保留給 AWS WAF 使用的指標名稱,包括「All」和「Default_Action」。

    注意

    您無法變更 CloudWatch 指標名稱。

  6. 適用於Resource Type (資源類型),選擇CloudFront分佈。所以此Region (區域)自動填充到全域 (CloudFront)為了 CloudFront分佈。

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

  8. 選擇 Next (下一步)。

步驟 3:添加字串比對規則

在此步驟中,您會建立使用字串比對陳述式的規則,並指出如何處理比對請求。字符串匹配規則語句標識所需的字符串AWS WAF以在請求中搜索。通常,字串包含可列印 ASCII 字元,但您可以指定十六字元範圍 0x00 到 0xFF 的任何字元 (小數點 0 到 255)。除了指定要搜索的字符串外,還可以指定要搜索的 Web 請求組件,如標頭、查詢字符串或請求正文。

此語句類型在 Web 請求組件上運行,並且需要以下請求組件設置:

  • 請求元件— 要檢查的 Web 請求部分,例如查詢字符串或正文。

    警告

    如果您檢查請求組件Body (本文)JSON 正文標頭, 或Cookie,閲讀有關內容數量的限制AWS WAF可以檢查超大請求組件處理

    如需 Web 請求要素的詳細資訊,請參Web 請求組件

  • 可選文字轉換— 所需的轉換AWS WAF在檢查請求組件之前對其執行。例如,您可以轉換為小寫或規格化空白。如果您指定一個以上的轉換,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, 用於檢查下,請打開下拉式菜單,然後選擇您需要的 Web 請求組件AWS WAF檢查。在此範例中,請選擇 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 個字元。

    在此範例中,輸入MyAgent。AWS WAF將檢查User-Agent在 Web 請求中的值MyAgent

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

  9. 適用於Action下,選擇規則在與 Web 請求匹配時要採取的動作。在此範例中,選擇計數並保持原樣的其他選項。計數動作會為符合規則的 Web 請求建立指標,但不會影響是允許還是封鎖請求。如需動作選擇的詳細資訊,請參AWS WAF 規則動作Web 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 (編輯),並在規則羣組的規則列表中,打開將所有規則操作設置為計數切換。這會將規則群組中所有規則的動作設定為僅計數。這可讓您在使用規則羣組中的所有規則之前,先查看規則羣組中的所有規則都是如何執行的。

    3. 選擇儲存規則

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

步驟 5:完成您的 Web ACL 配置

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

完成您的 Web ACL 組態

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

  2. 設定規則優先順序頁面上,您可以看到 Web ACL 中規則和規則羣組的處理順序。AWS WAF會從清單頂端開始處理它們。您可以通過上移或向下移動規則來更改處理順序。若要這樣做,請在清單中選取一個,然後選擇 Move up (上移)Move down (下移)。如需有關規則優先順序的詳細資訊,請參閱 在 Web ACL 中處理規則和規則組的順序

  3. 選擇 Next (下一步)。

  4. 配置指標組態(憑證已建立!)亞馬遜 CloudWatch 指標中,您可以查看規則和規則組的計劃指標,並可以查看 Web 請求抽樣選項。有關亞馬遜的信息 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 物件。或者,您可以更改設定,使之與您真正想要使用AWS WAF。

注意

對於您在本教學課程中建立的資源,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 移除某個規則群組時,您只是移除對它的參考。