AWS WAF (Web Application Firewall)

更新 發佈閱讀 5 分鐘

AWS WAF (Web Application Firewall) 是 AWS 提供的 「網頁應用程式防火牆」

一句話總結:它是專門擋在你的網站最前線,負責檢查 HTTP/HTTPS 請求內容的「守門員」,用來防禦常見的網頁攻擊(如 SQL 資料隱碼攻擊、XSS 跨站腳本攻擊)以及惡意機器人。

它是 OSI 模型第 7 層 (應用層) 的防護服務。


1. 核心功能 (Core Functions)

AWS WAF 的主要任務是過濾惡意流量,它能做到以下幾件事:

  1. 防禦常見漏洞:直接阻擋 OWASP Top 10 安全漏洞(例如:SQL Injection、XSS)。
  2. IP 封鎖與地理限制:封鎖來自特定惡意 IP 的連線。封鎖特定國家/地區的流量(Geo-blocking)。
  3. Bot Control (機器人控制):辨識並阻擋爬蟲 (Scrapers)、掃描器或惡意機器人,避免資源被濫用。
  4. 速率限制 (Rate Limiting):設定規則:「如果某個 IP 在 5 分鐘內發送超過 2,000 個請求,就封鎖它」。這能有效防禦 第 7 層 DDoS 攻擊 (HTTP Flood)。

2. 部署位置 (Supported Resources) —— 考試必考!

AWS WAF 不能隨便裝在任何地方,它只能掛載在以下 四種 面向公網的服務上:

  1. Amazon CloudFront (CDN) —— 全球層級 (Global)這是唯一可以在 Edge location 進行攔截的部署方式。
  2. Application Load Balancer (ALB) —— 區域層級 (Regional)保護 EC2 或 Fargate 後端的服務。
  3. Amazon API Gateway (REST API) —— 區域層級 (Regional)保護 Serverless API。
  4. AWS AppSync (GraphQL API) —— 區域層級 (Regional)

(註:WAF 不能 直接掛在 EC2 上,EC2 前面必須要有 ALB)


3. 運作元件 (Components)

A. Web ACL (網路存取控制清單)

  • 這是 WAF 的最上層容器。你所有的規則 (Rules) 都放在這裡面。
  • 你需要將 Web ACL 綁定 (Associate) 到上述的資源(如 ALB)上才會生效。

B. Rules (規則)

你可以自己寫,也可以用買的:

  1. Managed Rules (受管規則) —— 強烈推薦!由 AWS 或資安廠商(如 Fortinet, Trend Micro)幫你維護好的規則集。你只要勾選 "AWS Managed Rules for SQL databases",就自動擁有防禦 SQL Injection 的能力,不用自己寫 Regex。
  2. Custom Rules (自訂規則):你自己定義邏輯。例如:「封鎖 User-Agent 包含 curl 的請求」或「封鎖 Header 裡沒有 x-token 的請求」。

C. Actions (動作)

當請求符合規則時,要怎麼做?

  • Block:直接擋掉,回傳 403 Forbidden。
  • Allow:允許通過。
  • Count:測試用。只計數不阻擋,讓你在正式上線前觀察規則會不會誤殺好人。
  • CAPTCHA / Challenge:懷疑是機器人時,跳出驗證碼給使用者解。

4. 超級比一比:WAF vs. Security Group vs. Network Firewall

這三個都有「防火牆」的功能,差別在哪?

raw-image



5. 考試與實務 關鍵字 (Keywords)

  • Protect against SQL injection / XSS (防禦 SQL 資料隱碼 / 跨站腳本) →→ WAF。
  • Block specific countries (Geo-match) (封鎖特定國家) →→ WAF。
  • Block malicious bot traffic (阻擋惡意機器人) →→ WAF Bot Control。
  • Rate-based rules (基於速率的規則 / 防禦 HTTP Flood) →→ WAF。
  • Deploy on CloudFront / ALB / API Gateway。
  • AWS Managed Rules (不想自己維護規則時選這個)。
  • Web ACL。

總結

如果你需要保護網站應用程式免受 駭客攻擊 (Layer 7),而不僅僅是限制 IP 連線,請使用 AWS WAF,並記得開啟 Managed Rules 來省事。

留言
avatar-img
郝信華 iPAS AI應用規劃師 學習筆記
43會員
571內容數
現職 : 富邦建設資訊副理 證照:經濟部 iPAS AI應用規劃師 初級+中級(數據分析) AWS Certified AI Practitioner (AIF-C01) 其他:富邦美術館志工
2025/12/05
Access Keys (存取金鑰),通常是指 IAM User 用來進行 「程式設計存取 (Programmatic Access)」 的憑證。 簡單來說:Access Key 就是給「程式碼」或「指令工具 (CLI)」用的帳號密碼。 以下是關於 Access Keys 的詳細分類、組成與重要
Thumbnail
2025/12/05
Access Keys (存取金鑰),通常是指 IAM User 用來進行 「程式設計存取 (Programmatic Access)」 的憑證。 簡單來說:Access Key 就是給「程式碼」或「指令工具 (CLI)」用的帳號密碼。 以下是關於 Access Keys 的詳細分類、組成與重要
Thumbnail
2025/12/05
簡單的一句話區分: SQS (Queue):是用來 「排隊與緩衝」 的(解耦、一對一)。 SNS (Topic):是用來 「廣播」 的(發布/訂閱、一對多)。 SES (Email):是用來 「寄 Email」 的(行銷信、驗證信)。 以下是詳細的比較與架構設計重點: 1. 快速比較表
Thumbnail
2025/12/05
簡單的一句話區分: SQS (Queue):是用來 「排隊與緩衝」 的(解耦、一對一)。 SNS (Topic):是用來 「廣播」 的(發布/訂閱、一對多)。 SES (Email):是用來 「寄 Email」 的(行銷信、驗證信)。 以下是詳細的比較與架構設計重點: 1. 快速比較表
Thumbnail
2025/12/05
簡單來說:所有的無伺服器 (Serverless) 服務都是託管 (Managed) 服務,但並非所有的託管服務都是無伺服器服務。 我們可以把這想成是**「租車」與「叫計程車 (Uber)」**的差別: 託管服務 (Managed) = 租車。車商幫你保養車子(硬體/OS),但你要自己決定租哪種
Thumbnail
2025/12/05
簡單來說:所有的無伺服器 (Serverless) 服務都是託管 (Managed) 服務,但並非所有的託管服務都是無伺服器服務。 我們可以把這想成是**「租車」與「叫計程車 (Uber)」**的差別: 託管服務 (Managed) = 租車。車商幫你保養車子(硬體/OS),但你要自己決定租哪種
Thumbnail
看更多
你可能也想看
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
別讓你的房子,變成家中最大的「閒置資產」 作為一名服務高淨值客戶的私人銀行顧問,我每天的任務只有一個:幫客戶「讓錢滾動」。然而,當我觀察身旁許多同樣育有子女的朋友們,即便他們多半已是職場上的中高階主管,表面上看似光鮮亮麗,有房有車;但實際上,大家都是典型的「夾心世代」。每個月薪水一入帳,扣掉沉重的
Thumbnail
別讓你的房子,變成家中最大的「閒置資產」 作為一名服務高淨值客戶的私人銀行顧問,我每天的任務只有一個:幫客戶「讓錢滾動」。然而,當我觀察身旁許多同樣育有子女的朋友們,即便他們多半已是職場上的中高階主管,表面上看似光鮮亮麗,有房有車;但實際上,大家都是典型的「夾心世代」。每個月薪水一入帳,扣掉沉重的
Thumbnail
如何查詢 CloudTrail Event history 使用 Event name 篩選 RequestSpotFleet CloudTrail Event history 使用 Resource name 篩選,該 Request ID (提提知道ID) 使用上述查詢,目的是為了
Thumbnail
如何查詢 CloudTrail Event history 使用 Event name 篩選 RequestSpotFleet CloudTrail Event history 使用 Resource name 篩選,該 Request ID (提提知道ID) 使用上述查詢,目的是為了
Thumbnail
由於客戶需要透過  Cost Explorer 來監控 ECS Fargate tasks 成本,ECS 設置需要的 Tag 標籤, AWS Billing (Cost allocation tags)啟用 Tag 後,還是沒出現。 原因是,ECS Cluster 本生沒有產生費用,故才未
Thumbnail
由於客戶需要透過  Cost Explorer 來監控 ECS Fargate tasks 成本,ECS 設置需要的 Tag 標籤, AWS Billing (Cost allocation tags)啟用 Tag 後,還是沒出現。 原因是,ECS Cluster 本生沒有產生費用,故才未
Thumbnail
Fleet Manager (AWS Systems Manager 的功能) 是統一的使用者界面 (UI) 體驗,可助您遠端管理在 AWS 或內部部署上執行的受管節點 利用 Fleet Manager,您可以從單一主控台檢視整個伺服器機群的運作狀態和效能狀態 Fleet Manager 有哪些
Thumbnail
Fleet Manager (AWS Systems Manager 的功能) 是統一的使用者界面 (UI) 體驗,可助您遠端管理在 AWS 或內部部署上執行的受管節點 利用 Fleet Manager,您可以從單一主控台檢視整個伺服器機群的運作狀態和效能狀態 Fleet Manager 有哪些
Thumbnail
以下是限制 S3 bucket 訪問 HTTPS 的方法 測試 S3 存儲桶訪問 S3 bucket 通常允許 HTTP 和 HTTPS 訪問 AWS CLI 預設通常使用 HTTPS 向 AWS 服務發送請求 https://docs.aws.amazon.com/zh_tw/cli/l
Thumbnail
以下是限制 S3 bucket 訪問 HTTPS 的方法 測試 S3 存儲桶訪問 S3 bucket 通常允許 HTTP 和 HTTPS 訪問 AWS CLI 預設通常使用 HTTPS 向 AWS 服務發送請求 https://docs.aws.amazon.com/zh_tw/cli/l
Thumbnail
有這一篇原因是工作上,建立 OU 時,會自動新增額外的 FullAWSAccess 規則,但原本就會有預設Root OU繼承的FullAWSAccess,等於會有兩組一樣的規則,故所以詢問了AWS Support。 先謝謝 AWS 技術支援工程師 George 細心說明~ SCP很重要的
Thumbnail
有這一篇原因是工作上,建立 OU 時,會自動新增額外的 FullAWSAccess 規則,但原本就會有預設Root OU繼承的FullAWSAccess,等於會有兩組一樣的規則,故所以詢問了AWS Support。 先謝謝 AWS 技術支援工程師 George 細心說明~ SCP很重要的
Thumbnail
可以分析源代碼並檢查在遷移到 AWS Graviton 時需要更改的過時運行library 優化 aws 成本的方法之一是遷移到並採用具有高性價比的AWS Graviton 推薦使用AWS Graviton,從可持續性的角度來看,它有很好的表現 但有需要注意的地方: 不適用於所有操作系統和實
Thumbnail
可以分析源代碼並檢查在遷移到 AWS Graviton 時需要更改的過時運行library 優化 aws 成本的方法之一是遷移到並採用具有高性價比的AWS Graviton 推薦使用AWS Graviton,從可持續性的角度來看,它有很好的表現 但有需要注意的地方: 不適用於所有操作系統和實
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News