MySQL Migration in Federal Government¶
Azure MySQL in Government regions, FedRAMP authorization, IL compliance, data residency requirements, encryption mandates, private connectivity in Azure Government, and CSA-in-a-Box integration for federal analytics.
Federal MySQL landscape
MySQL is widely deployed across federal agencies for web applications, content management systems, custom line-of-business applications, and supporting databases for larger enterprise systems. While MySQL does not carry the same licensing audit exposure as Oracle Database, federal organizations running self-hosted MySQL face significant operational compliance burdens -- patching timelines mandated by BOD 22-01, continuous monitoring requirements, and authorization boundaries that must be documented and maintained. Azure Database for MySQL Flexible Server in Azure Government regions inherits FedRAMP High authorization, simplifying compliance while eliminating operational overhead.
1. Federal MySQL footprint¶
1.1 MySQL across federal agencies¶
| Agency / Department | MySQL usage pattern | Migration drivers |
|---|---|---|
| DoD (various branches) | Web portals, internal tools, WordPress/Drupal CMS | IL4/IL5 compliance, cloud-first mandate |
| VA | Patient portal backends, appointment systems | Modernization, HIPAA compliance |
| HHS / CMS | Public health data, grants management web apps | FedRAMP requirements, data analytics |
| DHS / CISA | Cybersecurity tools, threat intelligence DBs | Security hardening, BOD 22-01 patching |
| Commerce / Census | Survey data collection, web applications | Cloud migration, data analytics |
| Education | Grant management, FAFSA support systems | Cost reduction, modernization |
| Interior / USGS | Scientific data collection, GIS backends | PostGIS migration, analytics |
| NASA | Mission support tools, research databases | Scientific computing, cost optimization |
| State | Consular applications, visa processing tools | Global availability, security |
| GSA | SAM.gov backends, procurement tools | Cloud consolidation |
1.2 Common federal MySQL patterns¶
| Pattern | Description | Count (estimated) |
|---|---|---|
| WordPress / Drupal CMS | Content management for agency websites | 5,000+ instances |
| Custom web applications | Python/PHP/Java backends with MySQL | 10,000+ instances |
| COTS backend databases | Commercial software using MySQL | 2,000+ instances |
| Data collection systems | Survey and data intake applications | 1,000+ instances |
| DevOps tooling | CI/CD, monitoring, ticketing (GitLab, Grafana, JIRA) | 3,000+ instances |
| MariaDB forks | Agencies that switched from MySQL to MariaDB | 1,000+ instances |
2. Compliance and authorization¶
2.1 Azure database services in Government regions¶
| Service | Azure Government | FedRAMP High | DoD IL2 | DoD IL4 | DoD IL5 | DoD IL6 |
|---|---|---|---|---|---|---|
| Azure MySQL Flexible Server | GA | Authorized | Authorized | Authorized | Authorized | Not available |
| Azure PostgreSQL Flexible Server | GA | Authorized | Authorized | Authorized | Authorized | Not available |
| Azure SQL Database | GA | Authorized | Authorized | Authorized | Authorized | Authorized |
| Azure SQL Managed Instance | GA | Authorized | Authorized | Authorized | Authorized | Not available |
| Azure DMS | GA | Authorized | Authorized | Authorized | Authorized | Not available |
| Azure Data Factory | GA | Authorized | Authorized | Authorized | Authorized | Not available |
| Microsoft Fabric | GA | Authorized | Authorized | Authorized | Roadmap | Not available |
| Microsoft Purview | GA | Authorized | Authorized | Authorized | Authorized | Not available |
2.2 Government region availability¶
Azure Government operates in physically isolated data centers:
| Region | Location | IL levels | Services |
|---|---|---|---|
| US Gov Virginia | Virginia | IL2, IL4, IL5 | Full service availability |
| US Gov Texas | Texas | IL2, IL4, IL5 | Full service availability |
| US Gov Arizona | Arizona | IL2, IL4, IL5 | Full service availability |
| US DoD Central | Iowa | IL2, IL4, IL5, IL6 | DoD-specific services |
| US DoD East | Virginia | IL2, IL4, IL5, IL6 | DoD-specific services |
2.3 FedRAMP inheritance¶
When you deploy Azure Database for MySQL Flexible Server in an Azure Government region, you inherit Azure's FedRAMP High authorization. This means:
| NIST 800-53 control family | Azure-provided controls | Customer responsibility |
|---|---|---|
| AC (Access Control) | Physical access, network access controls | Database user management, Entra ID configuration |
| AU (Audit) | Infrastructure audit, platform logs | Database audit log configuration, log review |
| CM (Configuration Management) | OS and platform patching | Server parameters, application configuration |
| CP (Contingency Planning) | Infrastructure redundancy, geo-redundancy | Backup retention policy, DR plan |
| IA (Identification & Authentication) | Entra ID, MFA infrastructure | User provisioning, MFA enforcement |
| IR (Incident Response) | Platform security monitoring | Application-level monitoring, response procedures |
| PE (Physical & Environmental) | Data center physical security | N/A (fully inherited) |
| SC (System & Communications) | TLS, encryption at rest, network isolation | Private Link configuration, CMK management |
| SI (System & Information Integrity) | Patch management, vulnerability scanning | Application patching, custom code scanning |
3. Data residency requirements¶
3.1 Data residency by classification¶
| Data classification | Residency requirement | Azure Government support |
|---|---|---|
| Unclassified / CUI | US-based processing and storage | US Gov Virginia/Texas/Arizona |
| ITAR | US-only access, no foreign national access | Azure Government (US persons only) |
| EAR | Export control compliance | Azure Government |
| HIPAA/PHI | BAA required, US-based recommended | Azure Government with BAA |
| DoD IL4 | US-based, DoD-approved cloud | US Gov Virginia/Texas/Arizona |
| DoD IL5 | US-based, higher isolation | US Gov Virginia/Texas/Arizona |
| DoD IL6 | Classified processing | US DoD Central/East only |
3.2 Data residency configuration¶
# Create MySQL Flexible Server in Government region
az mysql flexible-server create \
--resource-group rg-mysql-federal \
--name federal-mysql-server \
--location usgovvirginia \
--sku-name Standard_D8ds_v4 \
--tier GeneralPurpose \
--storage-size 512 \
--version 8.0-lts \
--admin-user federaladmin \
--admin-password 'FederalSecure$2026!' \
--high-availability ZoneRedundant \
--geo-redundant-backup Enabled \
--yes
# Verify region
az mysql flexible-server show \
--resource-group rg-mysql-federal \
--name federal-mysql-server \
--query location
# Expected: usgovvirginia
4. Encryption requirements¶
4.1 FIPS 140-2 compliance¶
Azure Government regions use FIPS 140-2 validated cryptographic modules for all encryption operations:
| Encryption layer | Standard | Azure implementation |
|---|---|---|
| Data at rest | AES-256 (FIPS 140-2 validated) | Azure Storage Service Encryption |
| Data in transit | TLS 1.2/1.3 (FIPS 140-2 validated) | Azure TLS implementation |
| Key management | FIPS 140-2 Level 2 (software) / Level 3 (HSM) | Azure Key Vault (software) / Managed HSM (Level 3) |
4.2 Customer-managed keys for federal workloads¶
Federal agencies often require customer-managed encryption keys (CMK) for data sovereignty:
# Create Key Vault in Government region
az keyvault create \
--name federal-mysql-kv \
--resource-group rg-mysql-federal \
--location usgovvirginia \
--sku premium \
--enable-purge-protection true \
--retention-days 90
# Create RSA key for MySQL encryption
az keyvault key create \
--vault-name federal-mysql-kv \
--name mysql-cmk \
--kty RSA \
--size 2048
# Create managed identity for MySQL server
az identity create \
--resource-group rg-mysql-federal \
--name mysql-identity \
--location usgovvirginia
# Grant Key Vault access
az keyvault set-policy \
--name federal-mysql-kv \
--object-id <identity-principal-id> \
--key-permissions get unwrapKey wrapKey
# Configure CMK on MySQL server
az mysql flexible-server update \
--resource-group rg-mysql-federal \
--name federal-mysql-server \
--key <key-resource-id> \
--identity mysql-identity
4.3 For IL5 / classified adjacent workloads¶
| Requirement | Implementation |
|---|---|
| FIPS 140-2 Level 3 (HSM) | Use Azure Managed HSM for key storage |
| Double encryption | Enable infrastructure encryption (double encryption at rest) |
| Key rotation | Configure automatic key rotation in Key Vault (90-day policy) |
| Key access audit | Enable Key Vault diagnostic logging to Log Analytics |
5. Private connectivity in Government¶
5.1 Network architecture for federal MySQL¶
flowchart TB
subgraph OnPrem["Agency On-Premises"]
APP_SRC[Application Servers]
MYSQL_SRC[MySQL Source Servers]
end
subgraph AzGov["Azure Government Region"]
subgraph VNet["Virtual Network"]
subgraph AppSubnet["Application Subnet"]
APP_AZ[Application VMs / AKS]
end
subgraph DBSubnet["Database Subnet (Delegated)"]
MYSQL_AZ[Azure MySQL Flexible Server]
end
subgraph PESubnet["Private Endpoint Subnet"]
PE[Private Endpoints]
end
end
KV[Azure Key Vault]
MON[Azure Monitor / Log Analytics]
end
subgraph CSA["CSA-in-a-Box"]
FAB[Microsoft Fabric]
PURV[Microsoft Purview]
end
APP_SRC -->|ExpressRoute / VPN| APP_AZ
MYSQL_SRC -->|DMS via ExpressRoute| MYSQL_AZ
APP_AZ --> MYSQL_AZ
MYSQL_AZ --> KV
MYSQL_AZ --> MON
MYSQL_AZ -->|Fabric Mirroring| FAB
FAB --> PURV 5.2 ExpressRoute for migration¶
For federal agencies migrating from on-premises MySQL, ExpressRoute provides a dedicated, private connection to Azure Government:
# Configure ExpressRoute circuit (example)
az network express-route create \
--resource-group rg-mysql-federal \
--name federal-expressroute \
--location usgovvirginia \
--bandwidth 1000 \
--peering-location "Washington DC" \
--provider "Equinix" \
--sku-family MeteredData \
--sku-tier Standard
# Peer VNet to ExpressRoute
az network vnet-gateway create \
--resource-group rg-mysql-federal \
--name federal-vnet-gw \
--vnet federal-vnet \
--gateway-type ExpressRoute \
--sku Standard
5.3 Zero-trust networking¶
# Deploy MySQL in a delegated subnet (no public access)
az mysql flexible-server create \
--resource-group rg-mysql-federal \
--name federal-mysql-server \
--location usgovvirginia \
--vnet federal-vnet \
--subnet mysql-subnet \
--private-dns-zone federal-mysql-dns.private.mysql.database.azure.com \
--public-access Disabled
# Verify no public access
az mysql flexible-server show \
--resource-group rg-mysql-federal \
--name federal-mysql-server \
--query "network.publicNetworkAccess"
# Expected: Disabled
6. Continuous monitoring and BOD compliance¶
6.1 BOD 22-01 (vulnerability patching)¶
CISA Binding Operational Directive 22-01 requires federal agencies to remediate known exploited vulnerabilities within specified timeframes. Azure MySQL Flexible Server addresses this through automated patching:
| BOD requirement | Azure MySQL implementation |
|---|---|
| Patch critical vulnerabilities within 14 days | Automated minor version updates (monthly) |
| Patch known exploited vulnerabilities per CISA KEV | Microsoft patches critical CVEs within days |
| Maintain vulnerability management program | Azure Defender + diagnostic logging |
| Report patching status | Azure Policy compliance reports |
6.2 Continuous diagnostics and mitigation (CDM)¶
# Configure diagnostic settings for CDM compliance
az monitor diagnostic-settings create \
--resource /subscriptions/<sub>/resourceGroups/rg-mysql-federal/providers/Microsoft.DBforMySQL/flexibleServers/federal-mysql-server \
--name MySQLDiagnostics \
--workspace <log-analytics-workspace-id> \
--logs '[
{"category": "MySqlAuditLogs", "enabled": true, "retentionPolicy": {"enabled": true, "days": 365}},
{"category": "MySqlSlowLogs", "enabled": true, "retentionPolicy": {"enabled": true, "days": 90}}
]' \
--metrics '[
{"category": "AllMetrics", "enabled": true, "retentionPolicy": {"enabled": true, "days": 90}}
]'
6.3 Azure Policy for compliance enforcement¶
# Assign policy: MySQL should use private link
az policy assignment create \
--name "mysql-private-link" \
--scope "/subscriptions/<sub>/resourceGroups/rg-mysql-federal" \
--policy "d9844e8a-1437-4aeb-a32c-0c992f056095"
# Assign policy: MySQL should use CMK encryption
az policy assignment create \
--name "mysql-cmk-encryption" \
--scope "/subscriptions/<sub>/resourceGroups/rg-mysql-federal" \
--policy "83cef61d-dbd1-4b20-a4fc-5fbc7da10833"
7. Federal migration checklist¶
- Verify target Azure Government region supports required IL level
- Confirm FedRAMP High authorization inheritance for Azure MySQL Flexible Server
- Document SSP (System Security Plan) changes for ATO update
- Configure customer-managed encryption keys in Azure Key Vault
- Deploy MySQL in delegated VNet subnet (no public access)
- Configure ExpressRoute or VPN for on-premises connectivity
- Enable audit logging with 365-day retention
- Configure Azure Defender for MySQL
- Set up diagnostic settings for CDM compliance
- Apply Azure Policy for compliance enforcement
- Migrate users to Entra ID authentication (phase out MySQL passwords)
- Configure FIPS 140-2 validated encryption (automatic in Gov regions)
- Test DR procedures (point-in-time restore, geo-restore)
- Update ATO documentation with new system boundary
- Brief ISSM/ISSO on architecture changes
8. CSA-in-a-Box integration in Government¶
CSA-in-a-Box deployment in Azure Government regions provides the same analytics, governance, and AI capabilities as commercial Azure, within the FedRAMP High boundary:
| CSA-in-a-Box component | Azure Government availability | Federal use case |
|---|---|---|
| Azure Data Factory | GA | MySQL data ingestion into medallion architecture |
| Microsoft Fabric | GA | Lakehouse analytics on MySQL data |
| Microsoft Purview | GA | Data catalog, classification (CUI, PII, PHI), lineage |
| Power BI | GA | Dashboards and reports over migrated MySQL data |
| Azure AI Foundry | GA | AI/ML on MySQL data (Azure OpenAI in Gov) |
Next: Benchmarks | Best Practices | Security Migration
Maintainers: csa-inabox core team Last updated: 2026-04-30