I’ll provide the complete architecture and implementation details:
Virtual Network Architecture:
We implement a hub-spoke topology with one hub VNet and 12 spoke VNets (one per tenant). Hub VNet (10.0.0.0/16) contains Azure Firewall, Azure Bastion for management, and shared services subnet. Each tenant spoke VNet uses /20 address space (10.X.0.0/20) with three subnets: web tier (/24), app tier (/24), and data tier (/26). VNet peering connects each spoke to the hub with “Allow Gateway Transit” enabled. Critical configuration: we explicitly disable VNet peering between spokes, ensuring no direct tenant-to-tenant communication. All inter-VNet traffic must traverse the hub where Azure Firewall applies security policies.
Application Gateway Configuration:
Single Application Gateway v2 deployed in the hub VNet with WAF enabled (OWASP 3.1 ruleset). We use multi-site listeners with distinct host headers per tenant (tenant1.erp.company.com, tenant2.erp.company.com, etc.). Backend pools are configured per tenant, pointing to VMs in respective spoke VNets via VNet peering. SSL certificates are managed centrally using Azure Key Vault integration. Health probes monitor each tenant’s web tier independently. Autoscaling is configured for 2-10 instances based on CPU and connection count. This architecture provides layer-7 routing, SSL offloading, and WAF protection while maintaining complete backend isolation.
Azure Firewall Security Controls:
Azure Firewall Premium in the hub enforces all outbound internet access and inter-tenant policies. Default deny-all rules with explicit allow lists per tenant. Each tenant has application rules permitting only required external services (payment gateways, API endpoints). Network rules control spoke-to-hub communication for shared services. TLS inspection is enabled for outbound HTTPS traffic. We use Azure Firewall Manager to centrally manage policies across all tenants while maintaining tenant-specific rule collections. Logging integrates with Log Analytics for compliance reporting. For auditors, we provide NSG flow logs and Firewall logs demonstrating zero cross-tenant traffic.
Automation and Operations:
Terraform modules provision complete tenant stack. Core module creates VNet, subnets, NSGs, route tables, VNet peering, and Application Gateway backend pool registration. Separate modules deploy compute (VM scale sets), database (Azure SQL with private endpoint), and monitoring (Log Analytics agent). Tenant onboarding workflow: 1) Execute Terraform with tenant parameters, 2) Configure SSL certificate in Key Vault, 3) Update Application Gateway listener, 4) Deploy application code via Azure DevOps pipeline. Average provisioning time: 25 minutes. We maintain a tenant registry in Azure Cosmos DB tracking VNet assignments, gateway configurations, and resource tags. For tenant decommissioning, Terraform destroy removes all resources while preserving audit logs in immutable storage.
Compliance and Audit:
For SOC2/ISO27001 compliance, we provide: NSG flow logs showing no cross-tenant traffic, Azure Firewall logs demonstrating policy enforcement, Azure Policy compliance reports for security baselines, and quarterly penetration testing results. Network Watcher packet capture capabilities allow on-demand traffic analysis. We implement Azure Sentinel for security monitoring with tenant-specific workbooks. For external integrations, tenants cannot initiate direct internet connections - all outbound traffic routes through Azure Firewall with explicit allow rules required. This provides audit trail and DLP controls.
Key metrics after 8 months: 99.97% uptime, zero security incidents, 40% cost reduction vs fully isolated deployments, 25-minute tenant provisioning time, supporting 12 tenants with 2 infrastructure engineers. The architecture scales to 50+ tenants with current design.