SQL - oWretch/policy GitHub Wiki

Policy Effects by Policy

Category Policy Platform Landing Zones Production Decommissioned Management Corp Connectivity Sandbox Identity
SQL [Preview]: Azure PostgreSQL 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 PostgreSQL flexible server can exclusively be accessed by Microsoft Entra identities.
Audit
Disabled
SQL 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
SQL A Microsoft Entra administrator should be provisioned for PostgreSQL servers
Audit provisioning of a Microsoft Entra administrator for your PostgreSQL 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
SQL An Azure Active Directory administrator should be provisioned for SQL servers
Audit provisioning of an Azure Active Directory administrator for your SQL server to enable Azure AD authentication. Azure AD authentication enables simplified permission management and centralized identity management of database users and other Microsoft services
AuditIfNotExists
Disabled
SQL Auditing on SQL server should be enabled
Auditing on your SQL Server should be enabled to track database activities across all databases on the server and save them in an audit log.
AuditIfNotExists
Disabled
SQL Azure Database for MySQL server deploy a specific min TLS version and enforce SSL.
Deploy a specific min TLS version requirement and enforce SSL on Azure Database for MySQL server. Enforce the Server to client applications using minimum version of Tls to secure the connection 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.
DeployIfNotExists
Disabled
SQL **Azure Database for PostgreSQL server deploy a specific min TLS version requirement and enforce SSL **
Deploy a specific min TLS version requirement and enforce SSL on Azure Database for PostgreSQL server. Enables secure server to client by enforce minimal Tls Version to secure the connection 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.
DeployIfNotExists
Disabled
SQL Azure Defender for SQL should be enabled for unprotected Azure SQL servers
Audit SQL servers without Advanced Data Security
AuditIfNotExists
Disabled
SQL Azure Defender for SQL should be enabled for unprotected SQL Managed Instances
Audit each SQL Managed Instance without advanced data security.
AuditIfNotExists
Disabled
SQL 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
SQL Azure SQL Database should be running TLS version 1.2 or newer
Setting TLS version to 1.2 or newer improves security by ensuring your Azure SQL Database can only be accessed from clients using TLS 1.2 or newer. Using versions of TLS less than 1.2 is not recommended since they have well documented security vulnerabilities.
Deny
Disabled
Audit
Audit
Deny
Disabled
SQL Azure SQL Database should have Microsoft Entra-only authentication enabled
Require Azure SQL logical servers to use Microsoft Entra-only authentication. This policy doesn't block servers from being created with local authentication enabled. It does block local authentication from being enabled on resources after create. Consider using the 'Microsoft Entra-only authentication' initiative instead to require both. Learn more at: https://aka.ms/adonlycreate.
Audit
Deny
Disabled
SQL Azure SQL Database should have Microsoft Entra-only authentication enabled during creation
Require Azure SQL logical servers to be created with Microsoft Entra-only authentication. This policy doesn't block local authentication from being re-enabled on resources after create. Consider using the 'Microsoft Entra-only authentication' initiative instead to require both. Learn more at: https://aka.ms/adonlycreate.
Deny
Disabled
Audit
Deny
Disabled
Audit
Audit
Deny
Disabled
SQL Azure SQL Database should have the minimal TLS version set to the highest version
Setting minimal TLS version to 1.2 improves security by ensuring your Azure SQL Database can only be accessed from clients using TLS 1.2. Using versions of TLS less than 1.2 is not reccomended since they have well documented security vunerabilities.
Audit
Deny
Disabled
SQL Azure SQL Managed Instance should have Microsoft Entra-only authentication enabled
Require Azure SQL Managed Instance to use Microsoft Entra-only authentication. This policy doesn't block Azure SQL Managed instances from being created with local authentication enabled. It does block local authentication from being enabled on resources after create. Consider using the 'Microsoft Entra-only authentication' initiative instead to require both. Learn more at: https://aka.ms/adonlycreate.
Audit
Deny
Disabled
SQL Azure SQL Managed Instances should disable public network access
Disabling public network access (public endpoint) on Azure SQL Managed Instances improves security by ensuring that they can only be accessed from inside their virtual networks or via Private Endpoints. To learn more about public network access, visit https://aka.ms/mi-public-endpoint.
Audit
Deny
Disabled
Deny
Disabled
Audit
SQL Azure SQL Managed Instances should have Microsoft Entra-only authentication enabled during creation
Require Azure SQL Managed Instance to be created with Microsoft Entra-only authentication. This policy doesn't block local authentication from being re-enabled on resources after create. Consider using the 'Microsoft Entra-only authentication' initiative instead to require both. Learn more at: https://aka.ms/adonlycreate.
Deny
Disabled
Audit
Deny
Disabled
Audit
Audit
Deny
Disabled
SQL Configure Advanced Threat Protection to be enabled on Azure database for MariaDB servers
Enable Advanced Threat Protection on your non-Basic tier Azure database for MariaDB servers to detect anomalous activities indicating unusual and potentially harmful attempts to access or exploit databases.
DeployIfNotExists
Disabled
SQL 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
DeployIfNotExists
Disabled
DeployIfNotExists
Disabled
SQL Configure Advanced Threat Protection to be enabled on Azure database for PostgreSQL servers
Enable Advanced Threat Protection on your non-Basic tier Azure database for PostgreSQL servers to detect anomalous activities indicating unusual and potentially harmful attempts to access or exploit databases.
DeployIfNotExists
Disabled
DeployIfNotExists
Disabled
DeployIfNotExists
Disabled
SQL Configure Azure Defender to be enabled on SQL managed instances
Enable Azure Defender on your Azure SQL Managed Instances to detect anomalous activities indicating unusual and potentially harmful attempts to access or exploit databases.
DeployIfNotExists
Disabled
DeployIfNotExists
Disabled
DeployIfNotExists
Disabled
SQL Configure Azure Defender to be enabled on SQL servers
Enable Azure Defender on your Azure SQL Servers to detect anomalous activities indicating unusual and potentially harmful attempts to access or exploit databases.
DeployIfNotExists
SQL Configure Azure SQL Server to disable public network access
Disabling the public network access property shuts down public connectivity such that Azure SQL Server can only be accessed from a private endpoint. This configuration disables the public network access for all databases under the Azure SQL Server.
Modify
Disabled
Modify
Disabled
SQL Deploy Advanced Data Security on SQL servers
This policy enables Advanced Data Security on SQL Servers. This includes turning on Threat Detection and Vulnerability Assessment. It will automatically create a storage account in the same region and resource group as the SQL server to store scan results, with a 'sqlva' prefix.
DeployIfNotExists DeployIfNotExists
SQL 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
SQL Enforce SSL connection should be enabled for PostgreSQL database servers
Azure Database for PostgreSQL supports connecting your Azure Database for PostgreSQL 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
SQL Geo-redundant backup should be enabled for Azure Database for MariaDB
Azure Database for MariaDB 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
SQL 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
SQL Geo-redundant backup should be enabled for Azure Database for PostgreSQL
Azure Database for PostgreSQL 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
SQL 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.
Deny
Disabled
Audit
Deny
Disabled
Audit
SQL MySQL database servers enforce SSL connections.
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
Deny
Disabled
SQL 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
AuditIfNotExists
Disabled
Disabled
AuditIfNotExists
SQL PostgreSQL database servers enforce SSL connection.
Azure Database for PostgreSQL supports connecting your Azure Database for PostgreSQL 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
Deny
Disabled
SQL PostgreSQL servers should use customer-managed keys to encrypt data at rest
Use customer-managed keys to manage the encryption at rest of your PostgreSQL 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
AuditIfNotExists
Disabled
Disabled
AuditIfNotExists
SQL Private endpoint connections on Azure SQL Database should be enabled
Private endpoint connections enforce secure communication by enabling private connectivity to Azure SQL Database.
Audit
Disabled
SQL Private endpoint should be enabled for MariaDB servers
Private endpoint connections enforce secure communication by enabling private connectivity to Azure Database for MariaDB. 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
SQL 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
SQL Private endpoint should be enabled for PostgreSQL servers
Private endpoint connections enforce secure communication by enabling private connectivity to Azure Database for PostgreSQL. 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
SQL Public network access on Azure SQL Database should be disabled
Disabling the public network access property improves security by ensuring your Azure SQL Database can only be accessed from a private endpoint. This configuration denies all logins that match IP or virtual network based firewall rules.
Audit
Deny
Disabled
Deny
Disabled
Audit
SQL Public network access should be disabled for MariaDB servers
Disable the public network access property to improve security and ensure your Azure Database for MariaDB 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
Deny
Disabled
Audit
SQL 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.
Deny
Disabled
Audit
SQL 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
Deny
Disabled
Audit
SQL Public network access should be disabled for PostgreSQL flexible servers
Disabling the public network access property improves security by ensuring your Azure Database for PostgreSQL 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 based firewall rules.
Deny
Disabled
Audit
SQL Public network access should be disabled for PostgreSQL servers
Disable the public network access property to improve security and ensure your Azure Database for PostgreSQL can only be accessed from a private endpoint. This configuration 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
Deny
Disabled
Audit
SQL SQL Managed Instance should have the minimal TLS version of 1.2
Setting minimal TLS version to 1.2 improves security by ensuring your SQL Managed Instance can only be accessed from clients using TLS 1.2. Using versions of TLS less than 1.2 is not recommended since they have well documented security vulnerabilities.
Audit
Disabled
SQL SQL Managed Instance should have the minimal TLS version set to the highest version
Setting minimal TLS version to 1.2 improves security by ensuring your SQL Managed Instance can only be accessed from clients using TLS 1.2. Using versions of TLS less than 1.2 is not recommended since they have well documented security vulnerabilities.
Audit
Deny
Disabled
SQL SQL managed instances deploy a specific min TLS version requirement.
Deploy a specific min TLS version requirement and enforce SSL on SQL managed instances. Enables secure server to client by enforce minimal Tls Version to secure the connection 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.
DeployIfNotExists
Disabled
SQL SQL managed instances should use customer-managed keys to encrypt data at rest
Implementing Transparent Data Encryption (TDE) with your own key provides you with increased transparency and control over the TDE Protector, increased security with an HSM-backed external service, and promotion of separation of duties. This recommendation applies to organizations with a related compliance requirement.
Deny
Disabled
Audit
Deny
Disabled
Audit
Disabled
Deny
Audit
SQL SQL servers deploys a specific min TLS version requirement.
Deploys a specific min TLS version requirement and enforce SSL on SQL servers. Enables secure server to client by enforce minimal Tls Version to secure the connection 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.
DeployIfNotExists
Disabled
SQL SQL servers should use customer-managed keys to encrypt data at rest
Implementing Transparent Data Encryption (TDE) with your own key provides increased transparency and control over the TDE Protector, increased security with an HSM-backed external service, and promotion of separation of duties. This recommendation applies to organizations with a related compliance requirement.
Deny
Disabled
Audit
Deny
Disabled
Audit
Disabled
Deny
Audit
SQL SQL servers with auditing to storage account destination should be configured with 90 days retention or higher
For incident investigation purposes, we recommend setting the data retention for your SQL Server' auditing to storage account destination to at least 90 days. Confirm that you are meeting the necessary retention rules for the regions in which you are operating. This is sometimes required for compliance with regulatory standards.
AuditIfNotExists
Disabled
SQL Transparent Data Encryption on SQL databases should be enabled
Transparent data encryption should be enabled to protect data-at-rest and meet compliance requirements
AuditIfNotExists
Disabled
SQL Vulnerability assessment should be enabled on SQL Managed Instance
Audit each SQL Managed Instance which doesn't have recurring vulnerability assessment scans enabled. Vulnerability assessment can discover, track, and help you remediate potential database vulnerabilities.
AuditIfNotExists
Disabled
SQL Vulnerability assessment should be enabled on your SQL servers
Audit Azure SQL servers which do not have vulnerability assessment properly configured. Vulnerability assessment can discover, track, and help you remediate potential database vulnerabilities.
AuditIfNotExists
Disabled

Policy Parameters by Policy

Category Policy Platform Landing Zones Production Decommissioned Management Corp Connectivity Sandbox Identity
SQL Azure Database for MySQL server deploy a specific min TLS version and enforce SSL.
Deploy a specific min TLS version requirement and enforce SSL on Azure Database for MySQL server. Enforce the Server to client applications using minimum version of Tls to secure the connection 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.
MySQLminimalTlsVersion = TLS1_2
SQL **Azure Database for PostgreSQL server deploy a specific min TLS version requirement and enforce SSL **
Deploy a specific min TLS version requirement and enforce SSL on Azure Database for PostgreSQL server. Enables secure server to client by enforce minimal Tls Version to secure the connection 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.
PostgreSQLminimalTlsVersion = TLS1_2
SQL SQL managed instances deploy a specific min TLS version requirement.
Deploy a specific min TLS version requirement and enforce SSL on SQL managed instances. Enables secure server to client by enforce minimal Tls Version to secure the connection 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.
SQLManagedInstanceMinTlsVersion = 1.2
SQL SQL servers deploys a specific min TLS version requirement.
Deploys a specific min TLS version requirement and enforce SSL on SQL servers. Enables secure server to client by enforce minimal Tls Version to secure the connection 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.
SQLServerminTlsVersion = 1.2
⚠️ **GitHub.com Fallback** ⚠️