Network Security Group (NSG) - Tại sao cần và cách hoạt động
Network Security Group (NSG) là tài nguyên Azure (cũng có khái niệm tương tự AWS Security Group, GCP Firewall Rules) đóng vai trò firewall phân tán (distributed firewall) tại tầng mạng (Layer 3/4), kiểm soát lưu lượng vào/ra (inbound/outbound) cho các tài nguyên Azure.
Tại sao cần NSG? (Vấn đề cốt lõi)
- Zero Trust Network: "Không tin tưởng mặc định" - mọi traffic phải được xác thực rõ ràng
- Micro-segmentation: Chia nhỏ mạng thành các zone an toàn, giới hạn lateral movement
- Compliance: PCI-DSS, HIPAA, GDPR yêu cầu kiểm soát truy cập mạng
- Giảm bề mặt tấn công: Chỉ mở port/cổng cần thiết cho nghiệp vụ
- Quản trị tập trung: Một NSG áp dụng cho nhiều subnet/VM, dễ dàng audit, cập nhật
Cách NSG hoạt động
Quy tắc (Rules) - 5-tuple
Mỗi rule gồm:
- Name: Tên duy nhất
- Priority: 100-4096 (số nhỏ = ưu tiên cao)
- Source / Destination: IP CIDR, Service Tag, Application Security Group (ASG)
- Protocol: TCP, UDP, ICMP, ESP, AH, * (tất cả)
- Port Range: 80, 443, 22, 3389, 1-65535, *
- Action: Allow / Deny
- Direction: Inbound / Outbound
- Description: Mô tả nghiệp vụ
Default Rules (Mặc định - không xóa được, priority cao 65000+)
| Tên | Direction | Action | Mô tả |
|---|---|---|---|
| AllowVNetInBound | Inbound | Allow | Traffic trong cùng VNet |
| AllowAzureLoadBalancerInBound | Inbound | Allow | Health probe Azure LB |
| DenyAllInBound | Inbound | Deny | Chặn tất cả còn lại |
| AllowVnetOutBound | Outbound | Allow | Traffic trong VNet |
| AllowInternetOutBound | Outbound | Allow | Ra Internet |
| DenyAllOutBound | Outbound | Deny | Chặn tất cả còn lại |
| Đặc điểm | NSG | Azure Firewall | Firewall Manager |
|---|---|---|---|
| Layer | L3/L4 | L3/L4/L7 | Management plane |
| Stateful | Có | Có (full stateful) | - |
| FQDN Filtering | Không | Có | - |
| IDPS/IPS | Không | Có (Premium) | - |
| Threat Intelligence | Không | Có | - |
| SNAT/DNAT | Không | Có | - |
| Central Policy | Khó | Dễ | Chuyên dụng |
| Chi phí | Miễn phí | ~$1.25/hr + data | Miễn phí (policy) |
| Use case | Micro-segmentation, subnet/VM level | Perimeter, hub-spoke, egress control | Multi-firewall governance |
Best Practice triển khai NSG
- Default Deny: Tạo rule DenyAllInBound priority 4000 (dưới default 65000)
- Allowlist chỉ port cần thiết: 443 (HTTPS), 22/3389 (chỉ từ Bastion/Jumpbox IP)
- Dùng Service Tag & ASG: Tránh hardcode IP
- Outbound control: Chặn Internet mặc định, chỉ cho phép PaaS endpoints (Storage, KeyVault, ACR...) qua Service Tag
- Naming convention: `nsg-{env}-{region}-{tier}` (VD: nsg-prod-eastus-web)
- IaC (Bicep/Terraform/ARM): Version control, PR review, CI/CD
- Flow Logs + NSG Diagnostics: Gửi Log Analytics Workspace, query KQL, alert
- Test với IP Flow Verify & Connection Troubleshoot: Network Watcher
- Review định kỳ: Quarterly - xóa rule không dùng, audit priority conflict
Kết luận
NSG là cơ sở hạ tầng bảo mật mạng bắt buộc trên Azure. Miễn phí, stateful, tích hợp sâu Azure. Dùng cho micro-segmentation (subnet/NIC level). Kết hợp Azure Firewall cho perimeter/egress L7, Firewall Manager cho governance đa region. Triển khai IaC, default-deny, ASG/Service Tag, logging liên tục.