Federal Migration Guide: Snowflake to Azure Government¶
Status: Authored 2026-04-30 Audience: CISO, AO (Authorizing Official), ISSM, compliance officers, acquisition leads, federal program managers Scope: FedRAMP Moderate-to-High gap analysis, Snowflake Gov region limitations, IL coverage gaps, procurement path, ATO strategy
1. The compliance forcing function¶
This document exists because of a specific compliance reality: Snowflake Government holds FedRAMP Moderate authorization as of April 2026. For federal systems that require FedRAMP High, DoD IL4/IL5, or certain CMMC 2.0 Level 2 controls, Snowflake creates a compliance ceiling that cannot be resolved by customer-side controls alone.
This is not a marketing argument. It is a factual gap in platform authorization that either blocks your ATO or requires compensating controls that are more expensive than migration.
2. FedRAMP Moderate vs High: what is the actual gap¶
Authorization levels¶
| Level | Snowflake Gov | Azure Government | Gap |
|---|---|---|---|
| FedRAMP Moderate (110 controls) | Authorized | Authorized | None |
| FedRAMP High (421 controls) | Not authorized | Authorized | 311 additional controls |
What FedRAMP High adds¶
FedRAMP High includes 311 controls beyond Moderate, covering:
| Control family | Additional controls | What they protect |
|---|---|---|
| AC (Access Control) | +18 controls | Multi-factor, session controls, information flow enforcement |
| AU (Audit) | +14 controls | Audit correlation, tamper resistance, non-repudiation |
| CA (Assessment) | +6 controls | Continuous monitoring, penetration testing |
| CM (Configuration) | +12 controls | Software restriction, component inventory, baseline config |
| CP (Contingency) | +10 controls | Alternate sites, system backup, information system recovery |
| IA (Identification) | +8 controls | PIV authentication, cryptographic authentication |
| IR (Incident Response) | +6 controls | Automated incident handling, supply chain coordination |
| MA (Maintenance) | +4 controls | Non-local maintenance, maintenance personnel |
| MP (Media Protection) | +6 controls | Media sanitization, CUI marking |
| PE (Physical) | +12 controls | Facility access, environmental controls |
| PL (Planning) | +4 controls | Security architecture, rules of behavior |
| PM (Program Management) | +8 controls | Risk management strategy, senior leadership |
| PS (Personnel) | +4 controls | Personnel screening, termination |
| RA (Risk Assessment) | +6 controls | Vulnerability monitoring, threat intelligence |
| SA (System Acquisition) | +16 controls | Supply chain risk, developer security |
| SC (System Communications) | +22 controls | Cryptographic protection, network disconnect, boundary protection |
| SI (System Information) | +16 controls | Flaw remediation, malicious code, input validation |
What this means for your ATO¶
If your system's security categorization is High (per FIPS 199), your ATO package must demonstrate compliance with all 421 FedRAMP High controls. When Snowflake provides 110 (Moderate), you must either:
- Accept risk -- Your AO accepts a platform that does not meet the required authorization level. Most federal AOs will not sign this.
- Implement compensating controls -- You build and evidence 311 additional controls yourself, on top of Snowflake. This is technically possible but costs more than migration.
- Use a different platform -- Migrate to a FedRAMP High-authorized platform. Azure Government inherits FedRAMP High, and csa-inabox maps controls to implementation.
csa-inabox control coverage¶
csa-inabox provides:
- NIST 800-53 Rev 5 mappings --
csa_platform/csa_platform/governance/compliance/nist-800-53-rev5.yaml - Control narratives --
docs/compliance/nist-800-53-rev5.md - Bicep modules with control evidence -- Each infrastructure module references its control IDs
- Tamper-evident audit chain (CSA-0016) -- Exceeds AU (Audit) family requirements
- Purview classification automation -- Addresses RA (Risk Assessment) and SI (System Information) controls
3. DoD Impact Level coverage¶
IL4 (Controlled Unclassified Information)¶
| Requirement | Snowflake Gov | Azure Government | Notes |
|---|---|---|---|
| FedRAMP High baseline | Not met | Met | Required for IL4 |
| DoD Cloud SRG compliance | Limited (partner-dependent) | Direct compliance | Azure Gov is in DISA SWIP |
| Encryption at rest (FIPS 140-2) | Yes | Yes (HSM via Key Vault Premium) | Both meet this |
| PIV/CAC authentication | Via SAML to agency IdP | Native Entra ID + PIV | Entra natively supports PIV |
| Data residency (CONUS) | Snowflake Gov region | Azure Gov (physically separate) | Both meet this |
IL5 (Higher sensitivity CUI + mission-critical)¶
| Requirement | Snowflake Gov | Azure Government | Notes |
|---|---|---|---|
| FedRAMP High baseline | Not met | Met | Required for IL5 |
| Dedicated infrastructure | Shared Gov region | Azure Gov isolated from commercial | Azure Gov is physically separate |
| National security background checks | Unknown for Snowflake ops staff | Microsoft Gov ops staff cleared | Required for IL5 |
| Service-level IL5 authorization | Gap | Most services; Fabric per roadmap | See docs/GOV_SERVICE_MATRIX.md |
IL6 (Classified)¶
Neither Snowflake nor csa-inabox addresses IL6. This requires Top Secret cloud infrastructure (Azure Top Secret or AWS Secret Region).
4. Snowflake Gov region limitations¶
As of April 2026, Snowflake Government operates in a single region (us-gov-west-1) with these limitations:
| Capability | Commercial Snowflake | Snowflake Gov | Gap |
|---|---|---|---|
| Core SQL warehousing | GA | GA | None |
| Snowpark Python | GA | GA | None |
| Snowpark Java/Scala | GA | GA | None |
| Cortex LLM functions | GA (multiple models) | Limited (subset of models) | Reduced model selection |
| Cortex Search | GA | Not available | Full gap |
| Cortex Analyst | GA | Not available | Full gap |
| Cortex Guard | GA | Not available | Full gap |
| Cortex Fine-tuning | GA | Not available | Full gap |
| Snowpark Container Services | GA | Limited | Partial availability |
| Snowpipe Streaming | GA | Partial | Not all features |
| Data Clean Rooms | GA | Not available | Full gap |
| Marketplace | GA (full catalog) | Available (reduced catalog) | Reduced listings |
| Notebooks | GA | Limited | Partial availability |
| Replication (cross-region) | Multi-region | Single Gov region | No Gov-to-Gov DR |
Key observation: Many of the capabilities Snowflake markets (AI, streaming, containers, clean rooms) are either not available or limited in the Gov region. You are paying for a commercial feature set but receiving a subset.
5. CMMC 2.0 Level 2 considerations¶
For DIB primes and subcontractors¶
CMMC 2.0 Level 2 requires compliance with all 110 practices in NIST SP 800-171 Rev 2. The data platform must support these practices.
| CMMC domain | Snowflake support | csa-inabox support | Advantage |
|---|---|---|---|
| Access Control (AC) | RBAC, MFA, network policies | Entra RBAC, MFA, Conditional Access, Private Endpoints | Azure (identity-centric) |
| Audit & Accountability (AU) | Query history, access history | Azure Monitor + Purview audit + tamper-evident chain | Azure (tamper-evident) |
| Configuration Management (CM) | Snowflake-managed infra | Bicep IaC with drift detection | Azure (IaC-managed) |
| Identification & Authentication (IA) | Username/password, key pair, SSO | Entra ID with PIV/CAC, managed identities | Azure (PIV-native) |
| Incident Response (IR) | No built-in IR tooling | Azure Sentinel integration | Azure (SIEM-integrated) |
| Media Protection (MP) | Encryption at rest | Encryption + FIPS 140-2 L3 HSM + soft delete | Azure (HSM-backed) |
| Physical Protection (PE) | Snowflake-managed datacenters | Azure Gov datacenters (cleared ops) | Azure (dedicated Gov) |
| Risk Assessment (RA) | Manual assessment | Purview auto-classification + vulnerability scanning | Azure (automated) |
| System & Communications Protection (SC) | TLS, encryption | Private Endpoints + TLS + customer-managed keys | Azure (network isolation) |
| System & Information Integrity (SI) | Limited | Azure Defender + Purview + Content Safety | Azure (defense-in-depth) |
csa-inabox documents CMMC mappings in csa_platform/csa_platform/governance/compliance/cmmc-2.0-l2.yaml with narratives in docs/compliance/cmmc-2.0-l2.md.
6. HIPAA considerations¶
For HHS, IHS, tribal health, and healthcare-adjacent agencies:
| HIPAA safeguard | Snowflake | csa-inabox |
|---|---|---|
| BAA available | Yes | Yes (Microsoft BAA) |
| PHI encryption at rest | Yes | Yes (FIPS 140-2 L3 HSM) |
| Access controls on PHI | RBAC + masking policies | Purview PHI classification + UC masking |
| Audit trail for PHI access | Access history | Tamper-evident audit + Purview audit |
| PHI de-identification | Manual | Purview auto-classification + masking automation |
| Minimum necessary standard | Manual role design | Classification-driven access (automated) |
See examples/tribal-health/ for the IHS / tribal health worked implementation and csa_platform/csa_platform/governance/compliance/hipaa-security-rule.yaml for the control mapping.
7. Procurement path¶
Federal acquisition vehicles¶
| Vehicle | Snowflake availability | Azure availability |
|---|---|---|
| GSA Schedule (IT 70) | Yes | Yes |
| GSA MAS (Multiple Award Schedule) | Yes | Yes |
| BPA (Blanket Purchase Agreement) | Agency-specific | Agency-specific |
| Azure Enterprise Agreement (ELA) | N/A | Yes (many agencies have existing ELAs) |
| SEWP V | Yes | Yes |
| NASA GWAC | Yes | Yes |
| DISA milCloud | No | Yes (Azure Gov is in milCloud catalog) |
Cost comparison for procurement¶
| Factor | Snowflake Gov | Azure Gov |
|---|---|---|
| Initial contract | Credit commit (typically annual) | Consumption-based or reserved capacity |
| Pricing model | Credits per hour per warehouse | Per-service consumption |
| Contract flexibility | Credit commits lock in spend | Consumption adjusts to usage |
| Existing entitlements | Unlikely | Many agencies have Azure ELA credits |
| Migration funding | N/A | Microsoft may fund migration professional services |
Procurement timeline¶
| Phase | Duration | Actions |
|---|---|---|
| Market research | 2-4 weeks | Compare Snowflake Gov vs Azure Gov for your requirements |
| Requirements definition | 2-4 weeks | Document FedRAMP High need; map to PWS/SOO |
| Solicitation | 4-8 weeks | RFQ or task order under existing vehicle |
| Evaluation | 2-4 weeks | Technical evaluation + cost comparison |
| Award | 1-2 weeks | Contract award |
| Migration | 24-32 weeks | See master playbook Phase 0-7 |
Tip: If your agency has an existing Azure ELA, procurement is often a task order modification rather than a new solicitation.
8. ATO strategy¶
Approach A: Inherit Azure Gov authorization¶
The fastest path to ATO:
- Inherit Azure Government's FedRAMP High authorization as the cloud service provider (CSP) authorization
- Document customer-responsible controls in your System Security Plan (SSP)
- Implement csa-inabox control mappings (NIST 800-53 YAML + Bicep modules)
- Evidence controls using Azure Monitor, Purview audit, tamper-evident chain
- Assess with your 3PAO or agency security team
Timeline: 8-16 weeks for the ATO documentation (can run in parallel with migration Phases 1-3)
Approach B: Reciprocity from existing Azure ATO¶
If your agency already has an ATO for an Azure Government system:
- Leverage the existing Azure ATO as a reciprocal authorization
- Document the data platform as an extension of the existing system
- Evidence the additional controls specific to the data platform
- Brief the AO on the incremental risk
Timeline: 4-8 weeks (reduced scope because Azure is already authorized)
Approach C: Continuous ATO (cATO)¶
For agencies with a continuous ATO program:
- Add the data platform to the continuous monitoring scope
- Configure automated control testing (Azure Policy, Purview scans)
- Feed results into your cATO dashboard
- Maintain ongoing authorization through automated evidence
csa-inabox's compliance-as-code approach (YAML + Bicep + automated scanning) is well-suited to cATO programs.
ATO documentation deliverables¶
| Deliverable | Source |
|---|---|
| System Security Plan (SSP) | Template + csa-inabox control narratives |
| Control Implementation Summary (CIS) | csa_platform/csa_platform/governance/compliance/nist-800-53-rev5.yaml |
| POA&M (Plan of Action and Milestones) | Generated from gap analysis |
| Continuous Monitoring Plan | Azure Monitor + Purview + tamper-evident audit |
| Incident Response Plan | Azure Sentinel integration + agency IR procedures |
| Contingency Plan | ADLS GRS + Databricks DR + backup procedures |
| Privacy Impact Assessment (PIA) | Purview auto-classification findings |
9. Data residency and sovereignty¶
Snowflake Gov data residency¶
- Data resides in Snowflake's Gov region (
us-gov-west-1, typically hosted on AWS GovCloud) - Snowflake manages the infrastructure; customer has limited visibility into physical location
- Cross-region replication within Gov is not available (single region)
Azure Gov data residency¶
- Data resides in Azure Government datacenters (physically separate from commercial Azure)
- Azure Government is a separate cloud instance, not a logical partition
- Multiple Azure Gov regions available (US Gov Virginia, US Gov Texas, US Gov Arizona, etc.)
- Cross-region replication available for disaster recovery
- Tenant-binding ensures data cannot leave the Azure Gov boundary
ITAR compliance¶
Both Snowflake Gov and Azure Gov support ITAR data residency. Azure Gov's advantage is:
- Physically separate infrastructure (not shared with commercial)
- Cleared operations personnel in Azure Gov datacenters
- Multiple regions for DR without leaving the ITAR boundary
10. Risk register¶
Document these risks in your migration risk register:
| Risk ID | Risk | Likelihood | Impact | Mitigation |
|---|---|---|---|---|
| R-001 | Snowflake contract lock-in prevents timely migration | Medium | High | Review contract terms; negotiate exit clause; begin migration before renewal |
| R-002 | Partner agencies cannot consume Delta Sharing | Low | Medium | Delta Sharing is open protocol; provide pandas/DuckDB client guide |
| R-003 | FedRAMP High evidence gaps during ATO | Medium | High | Use csa-inabox compliance YAML mappings; engage 3PAO early |
| R-004 | Snowflake Gov features used that are not in Azure Gov | Low | Medium | Feature mapping identifies all gaps; only Clean Rooms is material |
| R-005 | Data loss during migration | Low | Critical | Run parallel for 2+ weeks; reconcile row counts and aggregates |
| R-006 | Performance regression after migration | Medium | Medium | Benchmark top 20 queries; right-size warehouses; apply Z-ORDER |
| R-007 | Staff retraining delay | Medium | Medium | Start training in Phase 0; Databricks Academy and Microsoft Learn available |
| R-008 | Procurement delay blocks Azure deployment | Medium | High | Use existing Azure ELA if available; start procurement in parallel with Phase 0 |
| R-009 | Cortex features needed in Gov that Azure has | Low | Low | Azure OpenAI in Gov exceeds Cortex; AI Search replaces Cortex Search |
| R-010 | Snowflake releases FedRAMP High during migration | Low | Medium | Continue migration -- Azure advantages extend beyond FedRAMP authorization |
11. Migration-specific compliance steps¶
During migration (parallel-run phase)¶
- Maintain Snowflake ATO documentation until decommission
- Add Azure Gov to your system boundary in the SSP
- Document dual-platform architecture as a transition state
- Ensure audit logging is active on both platforms
- Verify data classifications are consistent across platforms
Post-migration¶
- Update SSP to remove Snowflake from system boundary
- Archive Snowflake audit logs (retain per your retention policy)
- Update POA&M to close Snowflake-related findings
- Update continuous monitoring plan to reference Azure-only controls
- Brief the AO on the completed migration and reduced risk posture
Related documents¶
- Why Azure over Snowflake -- executive white paper
- Security Migration -- technical security controls migration
- TCO Analysis -- cost justification for procurement
- Master playbook -- Section 6 for compliance considerations
docs/compliance/nist-800-53-rev5.md-- NIST 800-53 control narrativesdocs/compliance/cmmc-2.0-l2.md-- CMMC Level 2 practice mappingsdocs/compliance/hipaa-security-rule.md-- HIPAA safeguard mappingsdocs/GOV_SERVICE_MATRIX.md-- Azure Gov service availability matrix
Last updated: 2026-04-30 Maintainers: CSA-in-a-Box core team