如何使用 AWS WAF 允許或封鎖特定國家/地區或地理位置發出的請求?
簡短描述
使用地理位置比對規則陳述式,封鎖對特定國家/地區網站的存取權,或者僅允許特定國家/地區的存取權。
若要允許根據來源國家/地區提出某些 Web 請求,則針對您要允許的國家/地區新增地理位置比對規則陳述式。然後,針對您要封鎖的國家/地區,新增第二個地理比對規則陳述式。
**注意:**如果您使用 CloudFront 地理位置限制來封鎖某個國家/地區,阻止其存取您的內容,則該國家/地區的任何請求都會遭到封鎖,且不會轉送至 AWS WAF。如果您想要根據具有其他 AWS WAF 條件的地理位置來允許或封鎖請求,請改用 AWS WAF 地理位置比對規則陳述式。
解決方案
若要使用 AWS WAF 允許或封鎖特定國家/地區或地理位置發出的請求,請執行以下操作︰
1. 開啟 AWS WAF 主控台。
2. 在導覽窗格的 AWS WAF 下,選擇 Web ACL。
3. 在區域中,選取您在其中建立 Web ACL 的 AWS 區域。
注意:如果您的網路 ACL 是針對 Amazon CloudFront 所設定,請選取全域。
4. 選取您的 Web ACL。
5. 選擇 Rules (規則),然後選擇 Add Rules, Add my own rules and rule groups (新增規則、新增我自己的規則和規則群組)。
6. 針對 Rule Builder (規則產生器),輸入規則的名稱。
**注意:**名稱必須包含 1 至 128 個有效字元,例如 A 至 Z、a 至 z、0 至 9、- (連字號) 和 _ (底線)。
7. 針對 If a request (如果請求),選擇 matches the statement (比對所有陳述式)。
8. 針對 Choose an inspection (選擇檢查) 選項,選擇 Originates from a country (源自某個國家/地區)。
9. 針對 Choose country codes (選擇國家/地區代碼),選擇您要檢查請求所在的國家/地區。
10. (選用) 選擇 Source IP address (來源 IP 地址) 或 IP address in header (標頭中的 IP 地址),用於判斷來源國家/地區。
**警告:**當請求透過 CDN 或其他 Proxy 網路路由時,來源 IP 地址會識別 Proxy。然後,原始 IP 地址會在標題中
傳送。使用 IP address in header (標頭中的 IP 地址) 時請小心,因為 Proxy 可能會不一致地處理標頭,並且可對其進行修改以繞過檢查。
11. 針對 Action (動作),選擇 Allow (允許),以允許請求;或選擇 Block (封鎖),以封鎖步驟 9 中所選國家/地區發出的請求。
**注意:**選擇封鎖或允許請求時,請考慮 Web ACL 的預設動作集。如果預設動作為 Block (封鎖),則會封鎖來自所有國家/地區的請求,但此步驟中明確允許的國家/地區除外。這是管理允許的地理位置請求的最簡組態,但此組態並不提供檢查要求內容的機會。
如果預設行動為 Allow (允許),則可以建立否定 (NOT) 規則,來指定不得封鎖的國家/地區。此規則的動作必須遭到封鎖。這會建立一項規則,不會封鎖來自您要允許的國家/地區的請求,但也不會明確允許這些請求。請求必須等待通過使用者定義的其他規則,如檢查惡意內容,才會被預設動作允許。這是更強大的組態。
12. 選擇 Add Rule (新增規則)。
13. (選用) 針對 Set Rule Priority (設定規則優先順序),選取您的規則,然後移動其優先順序。規則會依照顯示的順序進行處理。
如需詳細資訊,請參閱在 Web ACL 中處理規則和規則群組的順序。
14. 選擇 Save (儲存)。