Secure Private AI — Zero Trust

AI deployed in a fully private, single-region network boundary. All services accessed exclusively via Private Endpoints — zero public internet exposure. Azure Firewall Premium controls egress, NSGs enforce micro-segmentation.

~$10,240/mo
Highest security tier
15
Azure Services
~$10,240
Monthly Cost
Zero Trust
Security Model
365-day
Log Retention

Overview

The Secure Private AI pattern implements Zero Trust principles for AI workloads. Every service has publicNetworkAccess: Disabled. Azure Firewall Premium handles all egress with TLS inspection and threat intelligence. AKS runs as a private cluster.

This is the most secure and most expensive pattern. It's designed for regulated industries (financial services, healthcare, government) where no data can traverse public internet.

Key Characteristics
  • Zero Public Endpoints — Every service has publicNetworkAccess = Disabled
  • Azure Firewall Premium — TLS inspection, threat intel deny mode
  • Private Cluster AKS — API server not exposed publicly
  • UDR Routing — All traffic 0.0.0.0/0 → Firewall
  • 7 Private Endpoints — OpenAI, Search, Blob, DFS, KV, AML
  • 365-day Log Retention — Full audit trail for compliance
  • NSGs per Subnet — Deny internet in/out on AI subnets
Firewall Config
SKUPremium
Threat IntelDeny
DNS ProxyEnabled
TLS InspectionCapable
NSG Rules (AI Subnets)
AllowVNet → VNet (P100)
DenyInternet In (P4000)
DenyInternet Out (P4000)
Storage
data embeddings models audit-logs

Architecture Diagram

graph TB
    subgraph VNet["Secure VNet 10.30.0.0/16"]
        subgraph FWSubnet["Firewall Subnet /26"]
            FW["Azure Firewall Premium<br/>Threat Intel: Deny<br/>DNS Proxy: On"]
        end
        subgraph AKSSubnet["AKS Subnet /20"]
            AKS["AKS Private Cluster<br/>D4s_v5 x3 nodes<br/>NSG: deny internet"]
        end
        subgraph PESubnet["Private Endpoints /24"]
            PE_AOAI["PE: Azure OpenAI"]
            PE_AIS["PE: AI Search"]
            PE_AML["PE: Azure ML"]
        end
        subgraph DataSubnet["Data Endpoints /24"]
            PE_BLOB["PE: ADLS Blob"]
            PE_DFS["PE: ADLS DFS"]
            PE_KV["PE: Key Vault"]
        end
        subgraph MgmtSubnet["Management /24"]
            MON["Log Analytics<br/>365-day retention"]
            APPINS["App Insights"]
        end
        RT["Route Table<br/>0.0.0.0/0 → Firewall"]
    end
    subgraph ExtServices["All Services: publicNetworkAccess = Disabled"]
        AOAI["Azure OpenAI"]
        AIS["Azure AI Search"]
        AML_SVC["Azure ML"]
        ADLS["ADLS Gen2"]
        KV["Key Vault"]
    end
    DNS["6 Private DNS Zones"]
    AKS -->|"UDR"| FW
    FW -->|"Controlled Egress"| ExtServices
    AKS --> PE_AOAI
    AKS --> PE_AIS
    PE_AOAI --- AOAI
    PE_AIS --- AIS
    PE_AML --- AML_SVC
    PE_BLOB --- ADLS
    PE_DFS --- ADLS
    PE_KV --- KV
    DNS --- PESubnet
    DNS --- DataSubnet
    RT --- AKSSubnet
          

Bill of Materials

#ServiceResource NameSKU / TierPublic AccessPurposeMonthly Cost
1Azure Firewall{base}-{env}-fwPremiumN/A (perimeter)Egress control, TLS inspection, threat intel$1,825
2Azure OpenAI{base}-{env}-openaiS0DisabledLLM + embeddings (private only)~$2,750
3Azure AI Search{base}-{env}-searchStandardDisabledVector + semantic search$245.28
4Azure ML{base}-{env}-amlWorkspaceDisabledML workspace & registry$0*
5ADLS Gen2{base}{env}adlsStandard LRS, HNSDisabledData lake (data, embeddings, models, audit)~$50
6Key Vault{base}-{env}-kvStandardDisabledSecrets, keys, certs~$5
7AKS{base}-{env}-aksD4s_v5 Ã- 3Private ClusterContainer compute~$420
8Log Analytics{base}-{env}-lawPerGB2018, 365-dayCentralized logging & audit~$115
9Application Insights{base}-{env}-aiWorkspace-basedAPM telemetry + diagnosticsIncl.
10Route Table (UDR){base}-{env}-rt0.0.0.0/0 → FWForce all traffic through FirewallFree
11NSG (AI subnets){base}-{env}-ai-nsgDeny Internet In+OutMicro-segmentationFree
12NSG (AKS subnet){base}-{env}-aks-nsgDeny Internet InAKS subnet protectionFree
13Private DNS Zones6 zonesGlobalPrivate name resolution~$3
14Private Endpoints7 endpointsOpenAI, Search, Blob, DFS, KV, AML~$51
15Diagnostic SettingsOpenAI → LAWallLogs + AllMetricsFull audit trailIncl.
Estimated Total (Moderate Production)~$10,240/mo

* AML workspace free; compute billed separately. Firewall Premium is the single largest cost driver (~$1,825/mo).

Service Breakdown

Azure Firewall Premium
Premium$1,825/mo

The security cornerstone. All egress routed through Firewall via UDR. Threat intelligence in Deny mode blocks known malicious IPs. DNS Proxy enabled. TLS inspection capable for deep packet analysis.

AKS Private Cluster
D4s_v5 Ã- 3~$420/mo

Kubernetes with private API server — not accessible from internet. NSG denies all internet inbound. All egress forced through Firewall. Azure RBAC for Kubernetes authorization.

Azure OpenAI (Private)
S0 — Disabled~$2,750/mo

publicNetworkAccess = Disabled. Accessible only via Private Endpoint in the PE subnet. Full diagnostic settings streaming allLogs + AllMetrics to Log Analytics.

Log Analytics (365-day)
PerGB2018~$115/mo

Extended 365-day retention for regulatory compliance and full audit trails. Collects all diagnostics from Firewall, OpenAI, AKS, Search, and every other service.

7 Private Endpoints
PE + DNS~$54/mo

Every PaaS service has a dedicated Private Endpoint. Six Private DNS Zones handle name resolution for OpenAI, Search, Blob, DFS, Key Vault, and AML.

UDR + NSGs
Zero TrustFree

Route Table forces all 0.0.0.0/0 to Firewall. NSGs deny internet in/out on AI subnets. AKS NSG allows only VNet and Azure Load Balancer inbound. Defense in depth.

Security & Networking (Zero Trust)

Network Perimeter
  • Zero public endpoints — every service disabled
  • Azure Firewall Premium — all egress controlled
  • UDR 0.0.0.0/0 → Firewall
  • NSGs deny internet on all subnets
Data Protection
  • Private Cluster AKS — no public API
  • 7 Private Endpoints
  • 6 Private DNS Zones
  • TLS 1.2 everywhere
Observability
  • 365-day log retention
  • Full diagnostics (allLogs + AllMetrics)
  • Firewall logs for traffic audit
  • Threat Intel: Deny mode

Use Cases

Financial Services

PCI-DSS compliant AI workloads with complete network isolation and full audit trails.

Healthcare (HIPAA)

PHI processing with zero public internet exposure. 365-day logs for compliance audits.

Government / Defense

Classified or sensitive workloads requiring Zero Trust architecture and air-gapped services.

Regulated Industries

Any industry with strict data residency, encryption, and network isolation requirements.

Constraints & Considerations

ConstraintMitigation
Highest cost pattern (~$10,240/mo)Firewall Premium is main driver; consider Standard if TLS inspection not needed
Complex to operate and debugUse Firewall logs for traffic analysis; jumpbox for management
Private Cluster requires jumpbox/bastion for kubectlDeploy Azure Bastion or use AKS command invoke
All DNS must use Private DNS ZonesAutomate DNS zone creation in Bicep modules
Longer deployment time due to PE/DNS propagationPlan 15-30 min for full deployment; use staged approach
Ready to Deploy This Pattern?

Generate a complete deployment spec sheet with GitHub Actions workflow, Bicep file structure, and prerequisite checklist.

Generate Deployment Spec Sheet