For Azure Government (GCC-High / IL4)¶
Comparative positioning note
This document is written from the perspective of Microsoft Azure, Cloud Scale Analytics, and CSA Loom. Any description of third-party or competing products, services, pricing, or capabilities is derived from publicly available documentation and sources believed accurate at the time of writing, and is provided for general comparison only. We do not claim expertise in, or authority over, any non-Microsoft product or service; the respective vendor's official documentation is the authoritative source for their offerings, which may change over time. Nothing here is intended to disparage any vendor — where a competing product has genuine advantages, we aim to note them honestly. Verify all third-party details against the vendor's current official documentation before making decisions.
The full Gov boundary: Azure Government cloud + M365 GCC-High tenant. FedRAMP High + DoD IL4 + ITAR-eligible.
What "GCC-High" means here¶
| Layer | Where it lives |
|---|---|
| Microsoft 365 tenant | M365 GCC-High |
| Azure subscriptions | Azure Government (usgovvirginia, usgovtexas, usgovarizona) |
| Compliance | FedRAMP High + DoD IL4 + ITAR-eligible |
Prerequisites¶
| Item | Notes |
|---|---|
| Azure Government subscription | Deployed to via GitHub Actions only — see Deploy |
| Region | usgovvirginia recommended (most services + AOAI chat models) + usgovarizona for OpenAI embeddings |
| Microsoft 365 GCC-High tenant | Identity provider |
AZURE_GOV_* repository secrets | The deploy identity. Missing secrets do not fail the workflow — they make it skip and report success |
| AOAI quota in usgovvirginia | gpt-4o + gpt-4.1 + o3-mini + gpt-5.1 |
| AOAI quota in usgovarizona | text-embedding-3-large (Standard mode is usgovarizona-only) |
Optional — only with
LOOM_SEMANTIC_MODEL_BACKEND=powerbi. Azure Analysis Services is not offered in Azure Government, so the default GCC-High semantic-model path is the Loom-native tabular layer (definition persisted with the item, emitted as TMSL, queried via Synapse ServerlessOPENROWSET(... FORMAT='DELTA')) — no Power BI capacity is required. If you opt into the Power BI backend, GCC-High supports F-SKU (F8 minimum).
Critical GCC-High dispatch deltas (vs Commercial)¶
Per Per-boundary dispatch matrix:
| Component | GCC-High |
|---|---|
| Container host | AKS (Container Apps not at IL4+) |
| Functions host | Premium EP1 (Flex not in Gov) |
| APIM | Classic Premium (v2 not confirmed in Gov) |
| Catalog primary | Microsoft Purview (UC managed not yet in Gov) |
| Databricks | Classic clusters + Hive metastore (no UC, no SQL Warehouse) |
| SQL Warehouse | Synapse Serverless (no Databricks SQL Warehouse in Gov) |
| Agent orchestration | Microsoft Agent Framework + AOAI direct (Foundry Agent Service Gov-GA unconfirmed) |
| Foundry portal | Not available (use classic Azure ML Hub) |
| Defender for Cloud AI Threat Protection | Commercial-only (use Sentinel pipeline) |
| OpenAI Batch API | Not in Gov (use synchronous calls or provisioned throughput) |
| OpenAI Content Safety | Not in Gov (use self-hosted Presidio) |
Deploy — Actions only¶
There is no local-CLI deployment path for GCC-High. All Azure Government deployment and verification runs through GitHub Actions; running Azure Government az commands from a workstation is prohibited. The workflows carry the Gov login endpoints and the AzureUSGovernment cloud switch internally.
An earlier version of this page published
az cloud set --name AzureUSGovernment+az login+ a singleaz deployment sub createas the GCC-High procedure. That contradicted the Actions-only rule stated in Greenfield, and it also omitteddeployAppsEnabled=false, the image phase and the bootstrap phase — so even setting the boundary rule aside, it could not have produced a working Console on a fresh subscription. It is corrected here rather than quietly removed.
The full walkthrough, including the three ways a green Gov run can mean nothing, is in Greenfield → Azure Government. Brownfield adoption on this boundary is in Brownfield → Azure Government.
# 1. Build the app images into the sovereign ACR.
gh workflow run gov-build-images.yml -f boundary=GCC-High
# 2. Provision + bootstrap. All three inputs differ from the defaults, and all
# three matter: whatif-only provisions nothing, and keep_resources=false
# tears the estate down and skips the post-deploy bootstrap.
gh workflow run deploy-fiab-gcch.yml \
-f run_mode=full \
-f topology=tenant \
-f keep_resources=true
The deploy requires manual approval on the gcc-high-deploy environment protection rule before it touches the Gov subscription.
Verification is also Actions-only:
Prerequisite: the AZURE_GOV_CLIENT_ID / _SECRET / _TENANT_ID / _SUBSCRIPTION_ID repository secrets. If any is missing, the workflow warns, skips every downstream job, and still concludes success — see when a green Gov run means nothing.
gcc-high.bicepparam sets: - environment = 'AzureUSGovernment' - location = 'usgovvirginia' - All endpoint suffixes use .usgovcloudapi.net / .us / .databricks.azure.us - containerPlatform = 'aks' - apimSku = 'Premium' (classic) - functionsHostSku = 'EP1' - databricksUnityCatalogEnabled = false - databricksSqlWarehouseEnabled = false - databricksMetastore = 'hive' - catalogPrimary = 'purview' - agentOrchestrator = 'maf' - foundryPortalEnabled = false - defenderForAIEnabled = false - contentSafetyEnabled = false - openaiBatchEnabled = false - openaiLocation = 'usgovvirginia' - openaiEmbeddingsLocation = 'usgovarizona' - openaiChatModel = 'gpt-4o' - powerBiSku = 'F64'
Plus compliance tags:
param complianceTags = {
Environment: 'GCC-High'
FedRAMP_Level: 'High'
DISA_IL: 'IL4'
Data_Classification: 'CUI'
M365_Boundary: 'GCC-High'
}
Deploy time¶
- Admin Plane: 45-65 min (AKS cluster spin-up is slower than Container Apps)
- First DLZ: 20-40 min
- Total to working Console: 70-110 min
Validation¶
Gov verification is Actions-only (gov-verify-facts.yml / gov-gates.yml, above). A health probe from a machine that can reach the Gov console:
Then sign in via browser using your GCC-High M365 identity. A curl 200 is not a verification receipt — a deploy is verified by a live in-browser walk.
Compare the result against the recorded Gov readiness ceiling, not against Commercial: the Gov ceiling is infrastructure-bound and legitimately lower, so a Gov estate reporting fewer green capabilities than Commercial is not necessarily broken.
ITAR considerations¶
GCC-High supports ITAR-eligible workloads. Customer responsibility: - Mark ITAR-restricted data with sensitivity labels - Apply Purview ITAR classification rules - Verify cross-cloud B2B is disabled or scoped per ITAR policy - Configure Sentinel rules to detect ITAR-data egress
See ITAR compliance page.
Cost (Azure-native GCC-High baseline)¶
GCC-High pricing is typically 10-25% above Azure Commercial:
| Component | Approximate $/month |
|---|---|
| Databricks Premium classic | $600-3,000 |
| Synapse Serverless | $5-50 |
| ADX cluster D14_v2 | $600 |
| ADLS Gen2 (10 TB) | $250 |
| AOAI Gov (50K TPM gpt-4o) | $250-600 |
| AI Search S1 | $300 |
| Purview | $350 |
| AKS cluster + workloads | $200-500 |
| Misc (KV Premium HSM, LA, Sentinel) | $200 |
| Total | ~$2,800-5,800/mo |
Optional add-on — only with LOOM_SEMANTIC_MODEL_BACKEND=powerbi: a Power BI Premium F8 capacity for the opt-in Power BI backend adds ~$1,200/mo. It is not part of the Azure-native baseline above — the default Loom-native / Synapse Serverless semantic-model path carries no separate capacity charge.
Forward migration¶
When Fabric Gov-H reaches GA: - F-SKU + Direct Lake natively available - Loom and Fabric Gov run side-by-side - Per-workload migration via Forward to Fabric runbook
Runbooks¶
- Deploy failure
- MCP troubleshooting
- Boundary promotion — promoting an existing GCC-H install to IL5 (v1.1)