Check ID:
Provider: Azure
Service:
Severity: HIGH
Categories:
Resource type:
mysql_flexible_server_ssl_connection_enabledProvider: Azure
Service:
mysqlSeverity: HIGH
Categories:
encryptionResource type:
microsoft.dbformysql/flexibleserversWhat this check verifies
Azure Database for MySQL Flexible Server uses therequire_secure_transport parameter to enforce encrypted connections. This evaluation determines whether the server is configured to require TLS/SSL for all client sessions.
Risk
Without TLS enforcement, credentials and queries may traverse the network in cleartext, enabling man-in-the-middle, credential theft, tampering, and data exfiltration. This directly impacts confidentiality and integrity and can lead to compliance violations.Recommendation
Setrequire_secure_transport=ON and permit only TLS 1.2+. Ensure clients validate certificates and use FQDNs. Combine with private access (Private Link or VNet), restrictive firewall rules, and least privilege to reduce exposure. Avoid legacy TLS or plaintext connections.
Remediation
- CLI
- Terraform
- Native IaC
- Dashboard steps
az mysql flexible-server parameter set —resource-group <RESOURCE_GROUP> —server-name <SERVER_NAME> —name require_secure_transport —value ON
References
- https://learn.microsoft.com/en-us/azure/mysql/flexible-server/concepts-networking
- https://learn.microsoft.com/en-us/azure/mysql/flexible-server/how-to-troubleshoot-common-connection-issues
- https://learn.microsoft.com/en-us/azure/mysql/flexible-server/how-to-connect-tls-ssl
Where this check fires
This check runs on every scheduled scan against your Azure account. Findings appear at Cloud Security → Findings filterable byCheck ID = mysql_flexible_server_ssl_connection_enabled. To re-evaluate after a fix, hit Run now on the account’s schedule under Cloud Security → Schedules — the next scan re-checks this control and marks the finding fixed or keeps it persistent.
← Back to Azure checks