Azure Policy built-in definitions for Azure Database for MySQL
APPLIES TO: Azure Database for MySQL - Single Server
Azure Database for MySQL - Single Server is on the retirement path. We strongly recommend for you to upgrade to Azure Database for MySQL - Flexible Server. For more information about migrating to Azure Database for MySQL - Flexible Server, see What's happening to Azure Database for MySQL Single Server?
The name of each built-in policy definition links to the policy definition in the Azure portal. Use the link in the Version column to view the source on the Azure Policy GitHub repo.
Azure Database for MySQL
|A Microsoft Entra administrator should be provisioned for MySQL servers||Audit provisioning of a Microsoft Entra administrator for your MySQL server to enable Microsoft Entra authentication. Microsoft Entra authentication enables simplified permission management and centralized identity management of database users and other Microsoft services||AuditIfNotExists, Disabled||1.1.1|
|Azure MySQL flexible server should have Microsoft Entra Only Authentication enabled||Disabling local authentication methods and allowing only Microsoft Entra Authentication improves security by ensuring that Azure MySQL flexible server can exclusively be accessed by Microsoft Entra identities.||AuditIfNotExists, Disabled||1.0.1|
|Configure Advanced Threat Protection to be enabled on Azure database for MySQL servers||Enable Advanced Threat Protection on your non-Basic tier Azure database for MySQL servers to detect anomalous activities indicating unusual and potentially harmful attempts to access or exploit databases.||DeployIfNotExists, Disabled||1.0.1|
|Enforce SSL connection should be enabled for MySQL database servers||Azure Database for MySQL supports connecting your Azure Database for MySQL server to client applications using Secure Sockets Layer (SSL). Enforcing SSL connections between your database server and your client applications helps protect against 'man in the middle' attacks by encrypting the data stream between the server and your application. This configuration enforces that SSL is always enabled for accessing your database server.||Audit, Disabled||1.0.1|
|Geo-redundant backup should be enabled for Azure Database for MySQL||Azure Database for MySQL allows you to choose the redundancy option for your database server. It can be set to a geo-redundant backup storage in which the data is not only stored within the region in which your server is hosted, but is also replicated to a paired region to provide recovery option in case of a region failure. Configuring geo-redundant storage for backup is only allowed during server create.||Audit, Disabled||1.0.1|
|Infrastructure encryption should be enabled for Azure Database for MySQL servers||Enable infrastructure encryption for Azure Database for MySQL servers to have higher level of assurance that the data is secure. When infrastructure encryption is enabled, the data at rest is encrypted twice using FIPS 140-2 compliant Microsoft managed keys.||Audit, Deny, Disabled||1.0.0|
|MySQL server should use a virtual network service endpoint||Virtual network based firewall rules are used to enable traffic from a specific subnet to Azure Database for MySQL while ensuring the traffic stays within the Azure boundary. This policy provides a way to audit if the Azure Database for MySQL has virtual network service endpoint being used.||AuditIfNotExists, Disabled||1.0.2|
|MySQL servers should use customer-managed keys to encrypt data at rest||Use customer-managed keys to manage the encryption at rest of your MySQL servers. By default, the data is encrypted at rest with service-managed keys, but customer-managed keys are commonly required to meet regulatory compliance standards. Customer-managed keys enable the data to be encrypted with an Azure Key Vault key created and owned by you. You have full control and responsibility for the key lifecycle, including rotation and management.||AuditIfNotExists, Disabled||1.0.4|
|Private endpoint should be enabled for MySQL servers||Private endpoint connections enforce secure communication by enabling private connectivity to Azure Database for MySQL. Configure a private endpoint connection to enable access to traffic coming only from known networks and prevent access from all other IP addresses, including within Azure.||AuditIfNotExists, Disabled||1.0.2|
|Public network access should be disabled for MySQL flexible servers||Disabling the public network access property improves security by ensuring your Azure Database for MySQL flexible servers can only be accessed from a private endpoint. This configuration strictly disables access from any public address space outside of Azure IP range and denies all logins that match IP or virtual network-based firewall rules.||Audit, Deny, Disabled||2.1.0|
|Public network access should be disabled for MySQL servers||Disable the public network access property to improve security and ensure your Azure Database for MySQL can only be accessed from a private endpoint. This configuration strictly disables access from any public address space outside of Azure IP range, and denies all logins that match IP or virtual network-based firewall rules.||Audit, Deny, Disabled||2.0.0|