Network Security Group (NSG) คืออะไร?
NSG (Network Security Group) เป็นบริการของ Azure ที่ทำหน้าที่เป็น Firewall แบบ Stateful Layer 3/4 (Network Layer) ใช้ควบคุมการไหลของトラフィก (Traffic) เข้าและออกจากทรัพยากร Azure เช่น Virtual Machines (VMs), Virtual Machine Scale Sets, และ Subnets ภายใน Virtual Network (VNet)
คุณสมบัติหลักของ NSG
- Security Rules: กฎ Allow/Deny ตาม Priority (100-4099) จับคู่: Source/Destination IP/Port, Protocol (TCP/UDP/ICMP/*), Direction (Inbound/Outbound)
- Stateful: จำสถานะการเชื่อมต่อ (Connection Tracking) อนุญาต Traffic ตอบกลับ (Return Traffic) อัตโนมัติ
- Scope การผูกมัด: ผูกกับ Subnet (ผลลัพธ์กับทุก Resource ใน Subnet) หรือ Network Interface (NIC) ของ VM เฉพาะตัว
- Default Rules: มีกฎเริ่มต้น เช่น AllowVNetInBound, AllowAzureLoadBalancerInBound, DenyAllInBound, AllowVNetOutBound, AllowInternetOutBound, DenyAllOutBound
- Service Tags: ใช้แทน IP Range เช่น
Internet,VirtualNetwork,AzureLoadBalancer,Storage,Sqlฯลฯ - Application Security Groups (ASG): จัดกลุ่ม VMs ตาม Application (เช่น Web, App, DB) ใช้อ้างอิงใน Rules แทน IP
NSG vs Azure Firewall: ต่างอย่างไร?
| คุณสมบัติ | NSG | Azure Firewall |
|---|---|---|
| OSI Layer | Layer 3 & 4 (IP, Port, Protocol) | Layer 3, 4 & 7 (Application) |
| FQDN Filtering | ไม่รองรับ | รองรับ (Application Rules) |
| SNAT / DNAT | ไม่รองรับ (ต้องใช้ NAT Gateway/LB) | รองรับ Built-in |
| Threat Intelligence | ไม่มี | มี (Alert/Deny known malicious IPs/Domains) |
| Intrusion Detection/Prevention (IDPS) | ไม่มี | มี (Signature-based, แบบ Managed) |
| Logging | Flow Logs (NSG Flow Logs → Storage/Log Analytics) | Diagnostic Logs (App/Network/Threat) → Log Analytics/Event Hub/Storage |
| High Availability | Regional (Managed by Azure) | Zone Redundancy (99.99% SLA) |
| Cost | ฟรี (จ่ายค่า Log Storage/Analytics) | จ่ายตามชั่วโมง + Data Processed (~$1.25/hr + $0.016/GB) |
| Management | ARM/Bicep/Terraform, Portal, CLI, PowerShell | เดียวกัน + Firewall Manager (Central Policy) |
เมื่อไหร่ควรใช้ NSG, Azure Firewall, หรือทั้งคู่?
- NSG เพียงพอ: Workload เรียบง่าย, ควบคุม Port/IP ระหว่าง Subnet/VM, ไม่ต้องการ L7 Inspection, ต้องการต้นทุนต่ำ
- Azure Firewall จำเป็น: ต้องการ FQDN Filtering, IDPS, Threat Intelligence, SNAT/DNAT, Central Management หลาย VNet/Subscription, Compliance ต้องการ L7 Visibility
- ใช้ร่วมกัน (Best Practice): NSG ที่ Subnet/NIC สำหรับ Micro-segmentation (Zero Trust) + Azure Firewall ที่ Hub VNet สำหรับ Egress/Ingress Inspection และ Threat Protection
การสร้างและจัดการ NSG
- Portal: Create a resource → Networking → Network Security Group
- Subscription, Resource Group, Name, Region
- สร้างเสร็จ → ไปที่ Inbound/Outbound security rules → Add
- ผูกกับ Subnet: Subnets → Associate หรือผูกกับ NIC: Network interfaces → Associate
การประมวลผลกฎ (Rule Processing Order)
- Inbound: NIC NSG → Subnet NSG
- Outbound: Subnet NSG → NIC NSG
- กฎที่มี Priority ต่ำกว่า (หมายเลขน้อยกว่า) ถูกประมวลผลก่อน
- หากมีกฎ Match → หยุดประมวลผล (First Match Wins)
สรุป
NSG เป็น Firewall ระดับพื้นฐาน (Basic) ฟรี สำหรับควบคุม Traffic L3/L4 ภายใน VNet Azure Firewall เป็น Firewall ระดับ Enterprise (Managed) จ่ายเงิน รองรับ L7, Threat Intel, IDPS, HA สองตัวมักใช้ร่วมกันเพื่อ Defense in Depth