Federal Migration Guide: AWS GovCloud to Azure Government¶
A comprehensive guide for federal architects, ISSOs, and compliance officers migrating from AWS GovCloud analytics to Microsoft Azure Government using CSA-in-a-Box.
Federal Focus
This guide addresses the unique regulatory, procurement, and security requirements that federal and DoD agencies face when migrating analytics workloads from AWS GovCloud to Azure Government. It covers FedRAMP inheritance, Impact Level alignment, CMMC, ITAR, procurement vehicles, and agency-specific compliance patterns.
Executive summary¶
Federal agencies adopted AWS GovCloud analytics (Redshift, EMR, Glue, Athena, S3) for good reasons: GovCloud opened in 2011 with a three-year head start over Azure Government, and the analytics services have deep operational maturity. The decision to migrate is rarely because AWS is inadequate --- it is driven by forcing functions: an Azure-first mandate from the mission owner, tenant consolidation onto a single hyperscaler, IL5 coverage gaps for specific analytics services on GovCloud, a need for services available only in Azure Government at the required compliance tier, or a partner/prime requirement.
This guide is for federal tenants that have decided to move. It provides an honest, side-by-side comparison of AWS GovCloud and Azure Government for analytics workloads, covering compliance coverage, procurement, and agency-specific considerations.
Key differentiators driving federal migration:
- Platform consolidation: Most federal agencies run Microsoft 365 on Azure; consolidating analytics on the same tenant eliminates cross-cloud identity, networking, and governance complexity
- IL5 breadth for analytics: Azure Government provides IL5-authorized Databricks, ADLS Gen2, Power BI (GCC High), and Purview; AWS GovCloud IL5 coverage for analytics is service-dependent
- Unified governance: Purview + Unity Catalog + Entra ID provides a single governance plane; AWS requires stitching Lake Formation + Glue Catalog + IAM + CloudTrail
- BI integration: Power BI is the federal BI standard and integrates natively with Teams, SharePoint, and Copilot; QuickSight does not
- Cost structure: Fabric capacity-based pricing vs five independent AWS pricing models
AWS GovCloud vs Azure Government comparison¶
Cloud environment comparison¶
| Characteristic | AWS GovCloud | Azure Government |
|---|---|---|
| Launch year | 2011 | 2014 |
| US regions | 2 (US-Gov-West-1, US-Gov-East-1) | 8 (Gov VA, Gov TX, Gov AZ, DoD East, DoD Central, Secret, Top Secret) |
| Operator screening | US persons | US persons with federal background investigations |
| Network isolation | Separate from commercial AWS | Separate backbone from commercial Azure |
| FedRAMP baseline | FedRAMP High P-ATO | FedRAMP High P-ATO |
| Services available | ~180 services | ~180 services |
| Identity | AWS IAM (separate partition: aws-us-gov) | Entra ID Government (separate directory) |
| Support | GovCloud-cleared support | Government-cleared support engineers |
| IaC | CloudFormation / CDK / Terraform | Bicep / Terraform / ARM |
| Default encryption | SSE-S3 or SSE-KMS | Microsoft-managed or CMK via Key Vault |
Analytics service availability comparison¶
| Analytics service | AWS GovCloud | Azure Government | Notes |
|---|---|---|---|
| Data warehouse | Redshift (RA3, Serverless) | Databricks SQL / Synapse | Both available |
| Spark compute | EMR (EC2, Serverless, EKS) | Databricks (Standard, Serverless) | Both available |
| ETL/orchestration | Glue (Jobs, Crawlers, Catalog) | ADF + Purview + Unity Catalog | Both available |
| Serverless SQL | Athena | Databricks SQL Serverless / Fabric SQL | Both available |
| Object storage | S3 | ADLS Gen2 / OneLake | Both available |
| Streaming | Kinesis (Data Streams, Firehose) | Event Hubs | Both available |
| Managed Kafka | MSK | Event Hubs (Kafka protocol) | Both available |
| BI tool | QuickSight | Power BI (GCC High) | Both available; Power BI has broader federal adoption |
| ML platform | SageMaker | Azure ML / Databricks ML | Both available |
| Foundation models | Bedrock (limited model availability in GovCloud) | Azure OpenAI (GPT-4o, GPT-4.1, o3 in Azure Gov) | Azure OpenAI has broader model access in Gov |
| Data catalog | Glue Data Catalog | Purview Unified Catalog | Purview adds classification, lineage, glossary |
| Data governance | Lake Formation | Purview + Unity Catalog | Unity Catalog adds column masks, row filters |
| SaaS analytics | N/A | Microsoft Fabric (GCC, GCC High roadmap) | No AWS equivalent |
FedRAMP High comparison¶
FedRAMP authorization model¶
Both AWS GovCloud and Azure Government carry FedRAMP High Provisional Authorization to Operate (P-ATO) from the Joint Authorization Board (JAB). The difference is in what the P-ATO covers.
AWS GovCloud: The P-ATO covers the GovCloud infrastructure and a list of authorized services. Each service has its own FedRAMP boundary. When you use Redshift + EMR + Glue + Athena + S3, your ATO package inherits controls from five service boundaries.
Azure Government: The P-ATO covers the Azure Government infrastructure and 200+ services under a single authorization boundary. When you use Databricks + ADF + ADLS + Purview + Power BI, your ATO package inherits controls from one platform boundary.
Control inheritance comparison¶
| Control family | AWS GovCloud inheritance | Azure Government inheritance | CSA-in-a-Box value |
|---|---|---|---|
| AC (Access Control) | IAM policies per service | Entra ID + RBAC (unified) | Pre-mapped in nist-800-53-rev5.yaml |
| AU (Audit) | CloudTrail + CloudWatch per service | Azure Monitor (unified) + tamper-evident chain | CSA-0016 tamper-evident audit |
| CM (Configuration Management) | AWS Config per service | Azure Policy (unified) | Bicep modules enforce configuration |
| IA (Identification and Authentication) | IAM per partition | Entra ID (unified, Conditional Access) | Pre-configured in landing zone |
| SC (System and Communications Protection) | VPC + KMS per service | VNet + Key Vault + Private Endpoints | Private Endpoint patterns in Bicep |
| SI (System and Information Integrity) | GuardDuty + Inspector per service | Defender for Cloud (unified) | Diagnostic settings enforced |
ATO acceleration: CSA-in-a-Box ships machine-readable control mappings in csa_platform/csa_platform/governance/compliance/nist-800-53-rev5.yaml that document exactly how each NIST 800-53 Rev 5 control is met by the platform. This reduces ATO documentation effort from weeks to days for the platform layer.
Cross-reference: docs/compliance/nist-800-53-rev5.md for the narrative control mapping.
DoD Impact Level analysis¶
IL4 (Controlled Unclassified Information)¶
| Dimension | AWS GovCloud | Azure Government | Notes |
|---|---|---|---|
| Coverage | Most analytics services | Most analytics services | Parity |
| Data types | CUI, FOUO, SBU | CUI, FOUO, SBU | Same data types |
| Encryption at rest | KMS CMK (AES-256) | Key Vault CMK (AES-256) | Parity |
| Encryption in transit | TLS 1.2+ | TLS 1.2+ | Parity |
| Physical isolation | GovCloud regions (US-only) | Gov regions (US-only) | Parity |
Assessment: IL4 is at parity between AWS GovCloud and Azure Government for analytics workloads. The choice should be driven by operational factors, not compliance.
IL5 (National Security Information)¶
| Dimension | AWS GovCloud | Azure Government | Notes |
|---|---|---|---|
| Coverage | Service-dependent; check IL5 boundary list per service | DoD regions (East, Central) authorized at IL5 | Azure broader for analytics |
| Redshift / Databricks | Redshift: verify against AWS IL5 list | Databricks: IL5 authorized in Gov DoD regions | Check AWS coverage |
| EMR / Databricks | EMR: verify against AWS IL5 list | Databricks: IL5 authorized | Check AWS coverage |
| Glue / ADF+Purview | Glue: verify against AWS IL5 list | ADF + Purview: IL5 authorized | Check AWS coverage |
| S3 / ADLS Gen2 | S3: IL5 authorized in GovCloud | ADLS Gen2: IL5 authorized | Parity |
| QuickSight / Power BI | QuickSight: verify IL5 coverage | Power BI: GCC High (IL5) | Power BI in GCC High |
| SageMaker / Azure ML | SageMaker: verify IL5 coverage | Azure ML: IL5 authorized | Check AWS coverage |
| Bedrock / Azure OpenAI | Bedrock: limited model availability | Azure OpenAI: available in Gov (check IL5) | Azure broader model access |
Assessment: Azure Government provides broader IL5 coverage for analytics services. The critical action for AWS GovCloud agencies is to check every analytics service against the current AWS IL5 service boundary list before assuming coverage. The AWS IL5 list is updated quarterly.
Cross-reference: docs/GOV_SERVICE_MATRIX.md for the live Azure Government service coverage matrix.
IL6 (Classified / Secret)¶
| Dimension | AWS Top Secret Region | Azure Government Secret | Notes |
|---|---|---|---|
| Availability | Production since 2021 | Available (limited service catalog) | AWS more mature |
| Analytics services | Broader analytics service coverage | Narrower analytics service catalog | AWS leads for IL6 analytics |
| Air gap | Full air gap | Full air gap | Parity on isolation |
| Personnel | TS/SCI cleared | TS/SCI cleared | Parity |
Assessment: For IL6 analytics workloads, AWS Top Secret Region remains the safer choice. CSA-in-a-Box does not cover IL6. Agencies with IL6 requirements should keep those specific workloads on AWS while moving IL4/IL5 analytics to Azure. This hybrid approach is explicitly supported --- OneLake shortcuts and Delta Sharing enable cross-cloud data access where classification boundaries allow.
CMMC 2.0 implications¶
CMMC alignment for analytics migration¶
The Cybersecurity Maturity Model Certification (CMMC) 2.0 applies to Defense Industrial Base (DIB) organizations handling Controlled Unclassified Information (CUI). Analytics platforms that process CUI must meet CMMC Level 2 requirements (110 NIST SP 800-171 practices).
| CMMC domain | AWS GovCloud approach | Azure Government + CSA-in-a-Box | Notes |
|---|---|---|---|
| Access Control (AC) | IAM + Lake Formation | Entra ID + Unity Catalog + RBAC; mapped in cmmc-2.0-l2.yaml | Pre-mapped controls |
| Audit and Accountability (AU) | CloudTrail + CloudWatch | Azure Monitor + tamper-evident audit chain | CSA-0016 |
| Configuration Management (CM) | AWS Config + CloudFormation | Azure Policy + Bicep; enforced at deployment | IaC-driven compliance |
| Identification and Authentication (IA) | IAM + MFA | Entra ID + Conditional Access + MFA | Unified identity |
| Media Protection (MP) | S3 encryption (KMS) | ADLS encryption (Key Vault CMK) | Parity |
| System and Communications Protection (SC) | VPC + TLS + KMS | VNet + Private Endpoints + TLS + Key Vault | Zero-trust networking |
CSA-in-a-Box advantage: CMMC control mappings ship as machine-readable YAML (csa_platform/csa_platform/governance/compliance/cmmc-2.0-l2.yaml) with narrative documentation (docs/compliance/cmmc-2.0-l2.md). DIB primes building on CSA-in-a-Box inherit these mappings directly, reducing CMMC assessment preparation effort.
ITAR considerations¶
International Traffic in Arms Regulations (ITAR) require that controlled technical data be stored and processed in the United States by US persons.
| ITAR requirement | AWS GovCloud | Azure Government | Notes |
|---|---|---|---|
| US-only data residency | GovCloud regions (US-only) | Gov regions (US-only) | Parity |
| US persons operations | GovCloud operated by US persons | Gov operated by US persons with background checks | Parity |
| Tenant isolation | Separate AWS partition | Separate Azure tenant (GCC High) | Both provide isolation |
| ITAR-compliant storage | S3 in GovCloud | ADLS Gen2 in Azure Government | Parity |
| ITAR-compliant compute | Redshift/EMR in GovCloud | Databricks in Azure Government | Parity |
Migration note: ITAR data must remain in US-sovereign infrastructure throughout the migration. Use ExpressRoute (not public internet) for data transfer from AWS GovCloud to Azure Government. Azure Data Box is an alternative for large volumes that avoids network transfer entirely.
Procurement comparison¶
Contract vehicles¶
| Vehicle | AWS GovCloud | Azure Government | Notes |
|---|---|---|---|
| SEWP V | Available | Available | NASA GWAC; popular for cloud procurement |
| 2GIT | Available (resellers) | Available (resellers) | GSA GWAC for IT products |
| GSA MAS | Available (resellers) | Available (resellers) | Multiple Award Schedule |
| Enterprise Agreement | No AWS EA equivalent; Enterprise Discount Program (EDP) | Microsoft EA (annual commitment, true-up) | EA provides predictable pricing |
| CSP | AWS Marketplace resellers | Azure CSP (managed billing) | CSP provides partner management |
| Direct | AWS direct contract | Microsoft direct contract | Large agency engagements |
| DEOS | N/A | Available (DoD Enterprise Office Solution) | DoD-specific for Microsoft services |
Pricing model comparison for procurement¶
| Factor | AWS GovCloud | Azure Government | Notes |
|---|---|---|---|
| Commitment model | EDP (1-3 year, % discount) | EA (1-3 year, commitment + consumption) | EA more flexible |
| Reserved pricing | RIs per service (Redshift, EC2, etc.) | Azure Reservations (VMs, Databricks, Cosmos) | Azure reservations simpler |
| Savings Plans | Compute Savings Plans (cross-instance-family) | No direct equivalent; EA commitment discount | Different approach |
| On-demand pricing | Higher per-service rates | Consumption-based; single bill | Fewer pricing dimensions |
| Spot/preemptible | Spot Instances (EMR) | Azure Spot VMs (Databricks) | Both available |
| Free tier | Limited in GovCloud | Limited in Azure Government | Both minimal |
| FinOps tooling | AWS Cost Explorer + Budgets | Azure Cost Management + Advisor | Both included |
Budget planning for migration¶
┌─────────────────────────────────────────────────────────┐
│ AWS GovCloud analytics spend (current) │
│ ├── Redshift: $XXX,XXX/year │
│ ├── EMR: $XXX,XXX/year │
│ ├── Glue: $XXX,XXX/year │
│ ├── Athena: $XX,XXX/year │
│ ├── S3: $XX,XXX/year │
│ ├── QuickSight: $XX,XXX/year │
│ └── Total: $X,XXX,XXX/year │
├─────────────────────────────────────────────────────────┤
│ Azure Government analytics spend (target) │
│ ├── Databricks: $XXX,XXX/year │
│ ├── Fabric / Power BI: $XXX,XXX/year │
│ ├── ADF: $XX,XXX/year │
│ ├── ADLS Gen2: $XX,XXX/year │
│ ├── Purview + monitoring: $XX,XXX/year │
│ └── Target: $X,XXX,XXX/year (25-50% reduction) │
├─────────────────────────────────────────────────────────┤
│ Migration investment (one-time) │
│ ├── Planning + architecture: $XXX,XXX │
│ ├── Migration execution: $XXX,XXX │
│ ├── Cross-cloud egress: $XX,XXX │
│ └── Total: $XXX,XXX (recoverable in 6-12 months) │
└─────────────────────────────────────────────────────────┘
For detailed cost analysis, see TCO Analysis.
Agency-specific considerations¶
Department of Defense (DoD)¶
- IL5 requirement: Most DoD analytics workloads require IL5 or higher. Azure Government DoD regions provide IL5 authorization for Databricks, ADLS Gen2, and Power BI (GCC High).
- DEOS contract: DoD agencies can procure Azure Government and Microsoft 365 GCC High through the DEOS contract vehicle, simplifying procurement.
- JWCC: Joint Warfighting Cloud Capability provides access to all major cloud providers including Azure at IL2-IL6.
- IL6 hybrid: Keep classified workloads on AWS Top Secret Region; move IL4/IL5 analytics to Azure Government. OneLake shortcuts support cross-cloud reads where classification allows.
Intelligence Community (IC)¶
- CSA-in-a-Box scope: CSA-in-a-Box does not cover IC-specific requirements (ICD 503, Top Secret/SCI). IC workloads requiring Top Secret cloud should remain on AWS C2S/Secret Region or Azure Government Top Secret.
- Unclassified analytics: IC agencies with unclassified or CUI analytics workloads can use Azure Government with CSA-in-a-Box at IL4/IL5.
Civilian agencies (CFO Act agencies)¶
- Microsoft 365 consolidation: Most civilian agencies run Microsoft 365 on Azure. Consolidating analytics on Azure eliminates cross-cloud identity management and networking.
- FedRAMP High sufficiency: Most civilian analytics workloads require FedRAMP High, not IL5. Both AWS GovCloud and Azure Government meet this requirement. The differentiator is operational simplification and Microsoft ecosystem integration.
- FinOps simplification: Civilian agencies with 5-10 person data teams benefit most from Azure's simpler pricing model (fewer billing dimensions to manage).
- Power BI mandate: Many civilian agencies have standardized on Power BI through their M365 EA. Migrating analytics to Azure enables Direct Lake mode, eliminating the import/refresh cycle.
Tribal and territorial governments¶
- Sovereignty considerations: Tribal data sovereignty requires that data remain under tribal control. Both AWS GovCloud and Azure Government provide US-only data residency.
- CSA-in-a-Box reference:
examples/tribal-health/provides a worked implementation for HHS/IHS scenarios. - HIPAA: Healthcare analytics for tribal health requires HIPAA Security Rule compliance. CSA-in-a-Box maps HIPAA controls in
csa_platform/csa_platform/governance/compliance/hipaa-security-rule.yaml.
ATO transition strategies¶
Approach 1: New system ATO (cleanest)¶
- Create a new ATO package for the Azure Government analytics platform.
- Inherit 800+ controls from Azure Government P-ATO.
- Use CSA-in-a-Box control mappings (NIST 800-53, CMMC, HIPAA) as evidence.
- Platform ATO covers Databricks, ADF, ADLS, Purview, Power BI.
- Application-level controls documented per mission system.
- Timeline: 2-4 months for platform ATO (with CSA-in-a-Box accelerators).
Approach 2: ATO amendment (preserves existing)¶
- Keep existing AWS GovCloud ATO active during migration.
- Submit an ATO amendment to add Azure Government as an authorized environment.
- During dual-run period, both ATOs are active.
- After full migration, retire the AWS GovCloud ATO.
- Timeline: 4-6 months (amendment process varies by agency).
Approach 3: Reciprocity-based (fastest)¶
- Leverage FedRAMP reciprocity: Azure Government's P-ATO is accepted by the agency.
- Focus ATO effort on agency-specific controls and application-layer security.
- CSA-in-a-Box YAML mappings serve as pre-built evidence for inherited controls.
- Timeline: 1-2 months for agencies that accept FedRAMP reciprocity.
Preserving AWS audit evidence during migration¶
Critical for post-migration audits:
- Archive CloudTrail logs to S3 with lifecycle policy (retain 7+ years for federal records).
- Export Redshift query history (
STL_QUERYTEXT,STL_QUERY) before cluster decommission. - Export S3 access logs before bucket deletion.
- Export Lake Formation audit logs for data access history.
- Export IAM credential reports for identity baseline documentation.
- Store all exports in a dedicated archive S3 bucket with Glacier Deep Archive and Object Lock (WORM) for compliance retention.
Migration sequence for federal¶
| Phase | Duration | Federal-specific activities |
|---|---|---|
| 0. Compliance review | 2-3 weeks | Map compliance requirements to Azure Gov; verify IL5 coverage; identify IL6 workloads |
| 1. ATO preparation | 2-4 weeks | Choose ATO strategy; prepare SSP amendment or new package; engage ISSO |
| 2. Landing zone deployment | 4-6 weeks | Deploy CSA-in-a-Box DMLZ/DLZ in Azure Gov; configure Private Endpoints; STIG hardening |
| 3. Identity migration | 2-3 weeks | Configure Entra ID groups; map IAM roles to RBAC; deploy managed identities |
| 4. Data migration | 8-16 weeks | S3 to ADLS via ExpressRoute or Data Box; OneLake shortcuts for bridge |
| 5. Compute migration | 8-16 weeks | Redshift/EMR/Glue/Athena to Databricks/ADF/dbt |
| 6. BI migration | 4-6 weeks | QuickSight to Power BI GCC High |
| 7. Validation | 2-4 weeks | Dual-run; data parity; security scan; penetration test |
| 8. ATO authorization | 2-6 weeks | Final ATO review; authorization to operate on Azure Gov |
| 9. Decommission | 2-4 weeks | Archive AWS audit logs; decommission resources; final cost reconciliation |
Compliance documentation provided by CSA-in-a-Box¶
| Document | Path | Description |
|---|---|---|
| NIST 800-53 Rev 5 YAML | csa_platform/csa_platform/governance/compliance/nist-800-53-rev5.yaml | Machine-readable control mapping |
| NIST 800-53 Rev 5 narrative | docs/compliance/nist-800-53-rev5.md | Human-readable control evidence |
| CMMC 2.0 Level 2 YAML | csa_platform/csa_platform/governance/compliance/cmmc-2.0-l2.yaml | DIB-specific control mapping |
| CMMC 2.0 Level 2 narrative | docs/compliance/cmmc-2.0-l2.md | DIB-specific evidence |
| HIPAA Security Rule YAML | csa_platform/csa_platform/governance/compliance/hipaa-security-rule.yaml | Healthcare control mapping |
| HIPAA Security Rule narrative | docs/compliance/hipaa-security-rule.md | Healthcare evidence |
| Government Service Matrix | docs/GOV_SERVICE_MATRIX.md | Azure Government service-level IL coverage |
Last updated: 2026-04-30 Maintainers: CSA-in-a-Box core team Related: Migration Center | Security Migration | Why Azure over AWS | Migration Playbook