Considerazioni relative alla sicurezza per SQL Server in Macchine virtuali di AzureSecurity Considerations for SQL Server in Azure Virtual Machines

Questo argomento include linee guida di sicurezza generali che consentono di stabilire l'accesso sicuro alle istanze di SQL Server in una macchina virtuale (VM) di Azure.This topic includes overall security guidelines that help establish secure access to SQL Server instances in an Azure virtual machine (VM).

Azure è conforme a molteplici normative e standard di settore che possono favorire la compilazione di una soluzione compatibile con SQL Server in esecuzione in una macchina virtuale.Azure complies with several industry regulations and standards that can enable you to build a compliant solution with SQL Server running in a virtual machine. Per informazioni sulla conformità alle normative con Azure, vedere il Centro protezione di Azure.For information about regulatory compliance with Azure, see Azure Trust Center.

Nota

Azure offre due modelli di distribuzione per creare e usare le risorse: Gestione risorse e la distribuzione classica.Azure has two different deployment models for creating and working with resources: Resource Manager and classic. In questo articolo viene illustrato l'utilizzo di entrambi i modelli, ma Microsoft indica che le distribuzioni più nuove utilizzano il modello di gestione delle risorse.This article covers using both models, but Microsoft recommends that most new deployments use the Resource Manager model.

Controllare l'accesso alla VM SQLControl access to the SQL VM

Quando si crea la macchina virtuale SQL Server, è importante controllare attentamente chi ha accesso al computer e a SQL Server.When you create your SQL Server virtual machine, consider how to carefully control who has access to the machine and to SQL Server. Come prassi generale è consigliabile eseguire le operazioni seguenti:In general, you should do the following:

  • Limitare l'accesso a SQL Server solo alle applicazioni e ai client che ne hanno necessità.Restrict access to SQL Server to only the applications and clients that need it.
  • Seguire le procedure consigliate per la gestione di account utente e password.Follow best practices for managing user accounts and passwords.

Le sezioni seguenti offrono alcuni suggerimenti e alcune considerazioni su questi punti.The following sections provide suggestions on thinking through these points.

Connessioni sicureSecure connections

Quando si crea una macchina virtuale di SQL Server con un'immagine della raccolta, l'opzione SQL Server Connectivity (Connettività SQL Server) offre la possibilità di scegliere tra Locale (all'interno della macchina virtuale), Privata (solo all'interno della rete virtuale) o Pubblico (Internet).When you create a SQL Server virtual machine with a gallery image, the SQL Server Connectivity option gives you the choice of Local (inside VM), Private (within Virtual Network), or Public (Internet).

Connettività di SQL Server

Per ottimizzare la sicurezza, scegliere l'opzione più restrittiva per lo scenario in uso.For the best security, choose the most restrictive option for your scenario. Se ad esempio si esegue un'applicazione che accede a SQL Server nella stessa VM, Locale è la scelta più sicura.For example, if you are running an application that accesses SQL Server on the same VM, then Local is the most secure choice. Se si esegue un'applicazione Azure che richiede l'accesso a SQL Server, l'opzione Privata consente di proteggere la comunicazione a SQL Server solo all'interno della rete virtuale di Azure specificata.If you are running an Azure application that requires access to the SQL Server, then Private secures communication to SQL Server only within the specified Azure Virtual Network. Se è richiesto l'accesso Pubblico (Internet) alla VM di SQL Server, assicurarsi di seguire le altre procedure consigliate in questo argomento per ridurre la superficie di attacco.If you require Public (internest) access to the SQL Server VM, then make sure to follow other best practices in this topic to reduce your attack surface area.

Le opzioni selezionate nel portale usano le regole di sicurezza in ingresso nel Gruppo di sicurezza di rete (NSG) di VM per consentire o negare il traffico di rete alla macchina virtuale.The selected options in the portal use inbound security rules on the VMs Network Security Group (NSG) to allow or deny network traffic to your virtual machine. È possibile modificare o creare nuove regole NSG in ingresso per consentire il traffico verso la porta SQL Server (porta predefinita 1433).You can modify or create new inbound NSG rules to allow traffic to the SQL Server port (default 1433). È anche possibile specificare indirizzi IP specifici che sono autorizzati a comunicare tramite questa porta.You can also specify specific IP addresses that are allowed to communicate over this port.

Regole dei gruppi di sicurezza di rete

Oltre alle regole NSG per limitare il traffico di rete, è anche possibile usare Windows Firewall nella macchina virtuale.In addition to NSG rules to restrict network traffic, you can also use the Windows Firewall on the virtual machine.

Se si usano gli endpoint con un modello di distribuzione classico, rimuovere tutti gli endpoint nella macchina virtuale che non vengono usati.If you are using endpoints with the classic deployment model, remove any endpoints on the virtual machine if you do not use them. Per istruzioni sull'uso di ACL con gli endpoint, vedere Gestire l'elenco di controllo di accesso su un endpoint.For instructions on using ACLs with endpoints, see Manage the ACL on an endpoint. Questa operazione non è necessaria per le VM che usano Resource Manager.This is not necessary for VMs that use the Resource Manager.

Occorre infine considerare di abilitare le connessioni crittografate per l'istanza del motore di database SQL Server nella macchina virtuale di Azure.Finally, consider enabling encrypted connections for the instance of the SQL Server Database Engine in your Azure virtual machine. Configurare l'istanza di SQL server con un certificato firmato.Configure SQL server instance with a signed certificate. Per altre informazioni, vedere Abilitazione di connessioni crittografate al Motore di database e Sintassi della stringa di connessione.For more information, see Enable Encrypted Connections to the Database Engine and Connection String Syntax.

Usare una porta diversa da quella predefinitaUse a non-default port

Per impostazione predefinita, SQL Server è in ascolto sulla porta 1433 che tutti conoscono.By default, SQL Server listens on a well-known port, 1433. Per una maggiore sicurezza, configurare SQL Server per l'ascolto su una porta non predefinita, ad esempio la porta 1401.For increased security, configure SQL Server to listen on a non-default port, such as 1401. Se si esegue il provisioning di un'immagine della raccolta di SQL Server nel portale di Azure, è possibile specificare questa porta nel pannello Impostazioni di SQL Server.If you provision a SQL Server gallery image in the Azure portal, you can specify this port in the SQL Server settings blade.

Per configurare questa porta dopo il provisioning, sono disponibili due opzioni:To configure this after provisioning, you have two options:

  • Per le macchine virtuali di Resource Manager, è possibile selezionare Configurazione di SQL Server dal pannello di panoramica della macchina virtuale.For Resource Manager VMs, you can select SQL Server configuration from the VM overview blade. Da qui è possibile modificare la porta.This provides an option to change the port.

    Modificare la porta TCP nel portale

  • Per le VM classiche o per le VM di SQL Server di cui non è stato eseguito il provisioning con il portale, è possibile configurare la porta manualmente tramite connessione remota alla VM.For Classic VMs or for SQL Server VMs that were not provisioned with the portal, you can manually configure the port by connecting remotely to the VM. Per i passaggi di configurazione, vedere Configure a Server to Listen on a Specific TCP Port (Configurare un server per l'ascolto su una porta TCP specifica).For the configuration steps, see Configure a Server to Listen on a Specific TCP Port. Se si usa questa tecnica manuale, è necessario anche aggiungere una regola di Windows Firewall per consentire il traffico in ingresso su tale porta TCP.If you use this manual technique, you also need to add a Windows Firewall rule to allow incoming traffic on that TCP port.

Importante

Specificare una porta non predefinita è una buona idea se la porta di SQL Server è aperta a connessioni Internet pubbliche.Specifying a non-default port is a good idea if your SQL Server port is open to public internet connections.

Quando SQL Server è in ascolto su una porta non predefinita, è necessario specificare la porta quando si esegue la connessione.When SQL Server is listening on a non-default port, you must specify the port when you connect. Si consideri ad esempio uno scenario in cui l'indirizzo IP del server è 13.55.255.255 e SQL Server è in ascolto sulla porta 1401.For example, consider a scenario where the server IP address is 13.55.255.255 and SQL Server is listening on port 1401. Per connettersi a SQL Server, è necessario specificare 13.55.255.255,1401 nella stringa di connessione.To connect to SQL Server, you would specify 13.55.255.255,1401 in the connection string.

Gestisci accountManage accounts

È necessario fare in modo che gli utenti malintenzionati non indovinino facilmente i nomi di account o le password.You don't want attackers to easily guess account names or passwords. Usare a tal fine i suggerimenti seguenti:Use the following tips to help:

  • Creare un account amministratore locale univoco non denominato Amministratore.Create a unique local administrator account that is not named Administrator.

  • Usare password complesse per tutti gli account.Use complex strong passwords for all your accounts. Per altre informazioni sulla creazione di password complesse, vedere l'articolo Crea una password complessa.For more information about how to create a strong password, see Create a strong password article.

  • Per impostazione predefinita, in Azure viene selezionata l'autenticazione di Windows durante l'installazione della macchina virtuale SQL Server.By default, Azure selects Windows Authentication during SQL Server Virtual Machine setup. L'account di accesso SA è pertanto disabilitato e viene assegnata una password tramite il programma di installazione.Therefore, the SA login is disabled and a password is assigned by setup. È consigliabile non usare o abilitare l'account di accesso SA.We recommend that the SA login should not be used or enabled. Se è necessario avere un account di accesso SQL, usare una delle strategie seguenti:If you must have a SQL login, use one of the following strategies:

    • Creare un account SQL con un nome univoco che abbia appartenenza sysadmin.Create a SQL account with a unique name that has sysadmin membership. È possibile creare questo account dal portale attivando Autenticazione di SQL Server durante il provisioning.You can do this from the portal by enabling SQL Authentication during provisioning.

      Suggerimento

      Se non si attiva l'autenticazione di SQL Server durante il provisioning, è necessario modificare manualmente la modalità di autenticazione in Autenticazione di SQL Server e di Windows.If you do not enable SQL Authentication during provisioning, you must manually change the authentication mode to SQL Server and Windows Authentication Mode. Per altre informazioni, vedere Modifica della modalità di autenticazione del server.For more information, see Change Server Authentication Mode.

    • Se è necessario usare l'account di accesso SA, attivarlo dopo il provisioning e assegnare una nuova password complessa.If you must use the SA login, enable the login after provisioning and assign a new strong password.

Seguire le procedure consigliate localiFollow on-premises best practices

Oltre alle procedure descritte in questo argomento, è consigliabile rivedere e implementare le procedure di sicurezza locali tradizionali, ove applicabili.In addition to the practices described in this topic, we recommend that you review and implement the traditional on-premises security practices where applicable. Per altre informazioni, vedere Considerazioni sulla sicurezza per un'installazione di SQL Server.For more information, see Security Considerations for a SQL Server Installation

Passaggi successiviNext Steps

Se si è interessati anche alle procedure consigliate relative alle prestazioni, vedere Procedure consigliate per le prestazioni per SQL Server in Macchine virtuali di Azure.If you are also interested in best practices around performance, see Performance Best Practices for SQL Server in Azure Virtual Machines.

Per altri argomenti relativi all'esecuzione di SQL Server nelle macchine virtuali di Azure, vedere Panoramica di SQL Server in Macchine virtuali di Azure.For other topics related to running SQL Server in Azure VMs, see SQL Server on Azure Virtual Machines overview.