Check ID: mysql_flexible_server_ssl_connection_enabled
Provider: Azure
Service: mysql
Severity: HIGH
Categories: encryption
Resource type: microsoft.dbformysql/flexibleservers

What this check verifies

Azure Database for MySQL Flexible Server uses the require_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

Set require_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

az mysql flexible-server parameter set —resource-group <RESOURCE_GROUP> —server-name <SERVER_NAME> —name require_secure_transport —value ON

References

Where this check fires

This check runs on every scheduled scan against your Azure account. Findings appear at Cloud Security → Findings filterable by Check 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