Security Group、Network ACL 的差異 — 初學者向解說
從適用範圍、具狀態與無狀態、允許與拒絕規則、考試重點等觀點,整理 Amazon VPC 中容易混淆的 Security Group 與 Network ACL 的差異。
比較對象服務
點擊服務名稱可在術語詳細頁面複習。
結論
Security Group 與 Network ACL 都用於 Amazon VPC 內的流量控制。
不過,兩者保護的位置與運作方式不同。
- 想以 Amazon EC2 等資源為單位進行控制時,使用 Security Group
- 想以子網路為單位進行控制時,使用 Network ACL
- Security Group 為具狀態 (stateful)
- Network ACL 為無狀態 (stateless)
在 AWS 考試中,「具狀態還是無狀態」是特別重要的判斷點。
比較表
| 項目 | Security Group | Network ACL |
|---|---|---|
| 適用範圍 | ENI、Amazon EC2 等資源層級 | 子網路層級 |
| 運作方式 | 具狀態 (stateful) | 無狀態 (stateless) |
| 規則 | 僅允許規則 | 允許規則與拒絕規則 |
| 回傳通訊 | 自動允許 | 需明確允許 |
| 評估順序 | 評估全部規則 | 依規則編號由小到大評估 |
| 預設值 | 預設的 Security Group 允許同一群組內的通訊 | 預設的 Network ACL 允許全部通訊 |
| 主要用途 | 執行個體層級的防火牆 | 在子網路邊界的追加防禦 |
| 考試關鍵字 | stateful, instance level | stateless, subnet level, allow and deny |
初學者導向說明
Security Group 是附加在 Amazon EC2 等資源上的防火牆。
EC2 Instance
└─ Security Group例如 Web 伺服器只允許 HTTP/HTTPS。
Network ACL 是附加在子網路上的防火牆。
Subnet
└─ Network ACL
└─ EC2 Instance控制進出子網路的通訊。
考試常考重點
Security Group 容易成為正解的情境
- 想以 Amazon EC2 執行個體為單位控制通訊
- 需要具狀態的通訊控制
- 想對 Web 伺服器僅允許 HTTP/HTTPS
- 想對應用程式伺服器僅允許資料庫連線
Network ACL 容易成為正解的情境
- 想以子網路為單位控制通訊
- 想使用明確的拒絕規則
- 題目要求無狀態的通訊控制
- 想設置追加的防禦層
實務上的使用區分
基本的通訊控制
使用 Security Group。
ALB Security Group
↓
EC2 Security Group
↓
RDS Security Group實務上,會先以 Security Group 允許最低限度的通訊。
想以子網路為單位進行限制時
使用 Network ACL。
Public Subnet
└─ Network ACLPrivate Subnet
└─ Network ACL
```
不過 Network ACL 為無狀態,因此撰寫規則時也需要考慮回傳通訊。
在本專案中的定位
本專案的 MVP 以 Amazon S3、Amazon CloudFront、AWS Lambda、Amazon DynamoDB 為主。
由於 AWS Lambda 預設不連接 VPC,直接設定 Security Group 或 Network ACL 的場景較少。
但在 SAA 準備上,這是 VPC 設計的基礎必修。
常見錯誤
錯誤 1:以為 Security Group 可以撰寫拒絕規則
Security Group 僅有允許規則。
想使用明確的拒絕規則時,請考慮 Network ACL。
錯誤 2:忘記 Network ACL 的回傳通訊
Network ACL 為無狀態。
即使允許了入站,若未允許出站的回傳通訊,通訊仍無法建立。
錯誤 3:以相同粒度記憶 Security Group 與 Network ACL
Security Group 為資源層級,Network ACL 為子網路層級。
這裡若混淆,在考試題目中容易誤選選項。
相關用語
相關題目
總結
Security Group 與 Network ACL 可依以下方式記憶。
- Security Group:資源層級、具狀態、僅允許
- Network ACL:子網路層級、無狀態、允許與拒絕
在 SAA 考試中為高頻出題範圍,需整理至能依表格立即回答的程度。
接下來學習的內容
透過比較了解差異後,請使用相關術語與模擬題確認學習成效。AWS 認證考試經常測驗「相似服務的使用情境差異」。