-
Notifications
You must be signed in to change notification settings - Fork 2
Governance Anti Patterns Networking
Network isolation, firewall rules, and public exposure detection
Domain: networking
| Check | Description |
|---|---|
| ANTI-NET-001 | Public network access is enabled — disable public access and use private endpoints. This applies to ALL environments including POC. |
| ANTI-NET-002 | Overly permissive network rule detected (0.0.0.0/0) — use specific IP ranges or service tags instead. |
| ANTI-NET-003 | Direct external ingress detected — consider using API Management or Front Door as a gateway for production. |
| ANTI-NET-004 | VNet integration disabled or missing — enable VNet integration for backend connectivity to private resources. |
| ANTI-NET-005 | Empty IP restrictions — configure IP restrictions or use VNet integration to limit access. |
| ANTI-NET-006 | Private endpoint references a VNet as its privateLinkServiceId — VNets are not valid Private Link targets. ARM will reject this with HTTP 400. |
| ANTI-NET-007 | VNet/NSG diagnostic settings must use category = "AllMetrics" only — log categories are not supported and cause ARM errors. |
| ANTI-NET-008 | NSGs do NOT support diagnostic settings — remove the diagnostic settings resource entirely. |
| ANTI-NET-009 | Oversized address space detected — use /22 to /24 for POC subnets, /20 to /22 for VNets. |
| ANTI-NET-010 | NSG rule uses wildcard (*) for source or destination — use specific IP ranges, CIDR blocks, or service tags. |
Public network access is enabled — disable public access and use private endpoints. This applies to ALL environments including POC.
Rationale: Public network access exposes service data planes to internet-based attacks; all PaaS services should disable public access and use private endpoints.
Agents: terraform-agent, bicep-agent
| Services | Triggers On | Correct Patterns |
|---|---|---|
|
|
|
Overly permissive network rule detected (0.0.0.0/0) — use specific IP ranges or service tags instead.
Rationale: Allowing all internet traffic (0.0.0.0/0) in NSG or firewall rules defeats network segmentation and exposes resources to attack.
Agents: terraform-agent, bicep-agent
| Services | Triggers On | Correct Patterns |
|---|---|---|
|
|
Direct external ingress detected — consider using API Management or Front Door as a gateway for production.
Rationale: Direct external ingress bypasses WAF, rate limiting, and centralized authentication that API Management or Front Door provides.
Agents: terraform-agent, bicep-agent
| Services | Triggers On | Correct Patterns |
|---|---|---|
|
|
VNet integration disabled or missing — enable VNet integration for backend connectivity to private resources.
Rationale: Without VNet integration, compute resources cannot access private endpoints or backend services on private networks.
Agents: terraform-agent, bicep-agent
| Services | Triggers On | Correct Patterns |
|---|---|---|
|
|
Empty IP restrictions — configure IP restrictions or use VNet integration to limit access.
Rationale: Empty IP restrictions allow all internet traffic to reach the app directly, bypassing network controls.
Agents: terraform-agent, bicep-agent
| Services | Triggers On | Correct Patterns |
|---|---|---|
|
|
Private endpoint references a VNet as its privateLinkServiceId — VNets are not valid Private Link targets. ARM will reject this with HTTP 400.
Rationale: Private endpoints connect to specific Azure PaaS services, not VNets. ARM will reject this with HTTP 400.
Agents: terraform-agent, bicep-agent
| Services | Triggers On | Correct Patterns |
|---|---|---|
|
|
|
VNet/NSG diagnostic settings must use category = "AllMetrics" only — log categories are not supported and cause ARM errors.
Rationale: VNets and NSGs do not support log category groups. Using categoryGroup = "allLogs" causes ARM HTTP 400 validation errors.
Agents: terraform-agent, bicep-agent
| Services | Triggers On | Correct Patterns |
|---|---|---|
|
|
|
NSGs do NOT support diagnostic settings — remove the diagnostic settings resource entirely.
Rationale: NSGs do not support diagnostic settings at all (no logs, no metrics). The ARM API will reject with HTTP 400.
Agents: terraform-agent, bicep-agent
| Services | Triggers On | Correct Patterns |
|---|---|---|
|
|
|
Oversized address space detected — use /22 to /24 for POC subnets, /20 to /22 for VNets.
Rationale: A /16 allocates 65,536 IPs and a /8 allocates 16 million — wildly excessive for POC workloads that typically need fewer than 1,000 addresses.
Agents: terraform-agent, bicep-agent
| Services | Triggers On | Correct Patterns |
|---|---|---|
|
|
|
NSG rule uses wildcard (*) for source or destination — use specific IP ranges, CIDR blocks, or service tags.
Rationale: Wildcard rules negate the purpose of NSGs and allow any traffic through, creating an open network.
Agents: terraform-agent, bicep-agent
| Services | Triggers On | Correct Patterns |
|---|---|---|
|
|
|
Getting Started
Stages
Interfaces
Configuration
Agent System
Features
- Backlog Generation
- Cost Analysis
- Error Analysis
- Docs & Spec Kit
- MCP Integration
- Knowledge System
- Escalation
Quality
Help
Policies — Azure
AI Services
Compute
Data Services
- Azure SQL
- Backup Vault
- Cosmos Db
- Data Factory
- Databricks
- Event Grid
- Event Hubs
- Fabric
- IoT Hub
- Mysql Flexible
- Postgresql Flexible
- Recovery Services
- Redis Cache
- Service Bus
- Stream Analytics
- Synapse Workspace
Identity
Management
Messaging
Monitoring
Networking
- Application Gateway
- Bastion
- CDN
- DDoS Protection
- DNS Zones
- Expressroute
- Firewall
- Load Balancer
- Nat Gateway
- Network Interface
- Private Endpoints
- Public Ip
- Route Tables
- Traffic Manager
- Virtual Network
- Vpn Gateway
- WAF Policy
Security
Storage
Web & App
Policies — Well-Architected
Reliability
Security
Cost Optimization
Operational Excellence
Performance Efficiency
Integration