Configurare una connessione da un indicizzatore di Ricerca di Azure a SQL Server in una VM AzureConfigure a connection from an Azure Search indexer to SQL Server on an Azure VM

Come indicato in Connessione del database SQL di Azure a Ricerca di Azure tramite gli indicizzatori, la creazione di indici per SQL Server in macchine virtuali di Azure (o in breve VM di SQL Azure) è supportata da Ricerca di Azure, ma prima è necessario occuparsi di alcuni prerequisiti riguardanti la sicurezza.As noted in Connecting Azure SQL Database to Azure Search using indexers, creating indexers against SQL Server on Azure VMs (or SQL Azure VMs for short) is supported by Azure Search, but there are a few security-related prerequisites to take care of first.

Durata attività: circa 30 minuti, presumendo di avere già installato un certificato nella VM.Task Duration: About 30 minutes, assuming you already installed a certificate on the VM.

Abilitare le connessioni crittografateEnable encrypted connections

Ricerca di Azure richiede un canale crittografato per tutte le richieste di indicizzatori su una connessione Internet pubblica.Azure Search requires an encrypted channel for all indexer requests over a public internet connection. Questa sezione elenca i passaggi necessari per eseguire questa operazione.This section lists the steps to make this work.

  1. Controllare le proprietà del certificato per verificare che il nome del soggetto sia il nome di dominio completo (FQDN) della VM di Azure.Check the properties of the certificate to verify the subject name is the fully qualified domain name (FQDN) of the Azure VM. È possibile usare uno strumento come CertUtils o lo snap-in Certificati per visualizzare le proprietà.You can use a tool like CertUtils or the Certificates snap-in to view the properties. È possibile ottenere il nome FQDN dalla sezione Informazioni di base del pannello dei servizi della VM nel campo Etichetta Indirizzo IP pubblico/Nome DNS del portale di Azure.You can get the FQDN from the VM service blade's Essentials section, in the Public IP address/DNS name label field, in the Azure portal.

    • Per le macchine virtuali create con il nuovo modello di Gestione risorse, il nome FQDN segue la formattazione <your-VM-name>.<region>.cloudapp.azure.com.For VMs created using the newer Resource Manager template, the FQDN is formatted as <your-VM-name>.<region>.cloudapp.azure.com.
    • Per le macchine virtuali meno recenti create come VM classica, il nome FQDN segue la formattazione <your-cloud-service-name.cloudapp.net>.For older VMs created as a Classic VM, the FQDN is formatted as <your-cloud-service-name.cloudapp.net>.
  2. Configurare SQL Server per l'uso del certificato con l'editor del Registro di sistema (regedit).Configure SQL Server to use the certificate using the Registry Editor (regedit).

    Anche se Gestione configurazione SQL Server viene usato spesso per questa attività, non è possibile usarlo per questo scenario.Although SQL Server Configuration Manager is often used for this task, you can't use it for this scenario. Non troverà il certificato importato perché il nome FQDN della VM in Azure non corrisponde al nome FQDN determinato dalla VM. Identifica il dominio come computer locale o come dominio di rete a cui è aggiunto.It won't find the imported certificate because the FQDN of the VM on Azure doesn't match the FQDN as determined by the VM (it identifies the domain as either the local computer or the network domain to which it is joined). Quando i nomi non corrispondono, usare regedit per specificare il certificato.When names don't match, use regedit to specify the certificate.

    • In regedit passare a questa chiave del Registro di sistema: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\[MSSQL13.MSSQLSERVER]\MSSQLServer\SuperSocketNetLib\Certificate.In regedit, browse to this registry key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\[MSSQL13.MSSQLSERVER]\MSSQLServer\SuperSocketNetLib\Certificate.

      La parte [MSSQL13.MSSQLSERVER] varia a seconda della versione e del nome dell'istanza.The [MSSQL13.MSSQLSERVER] part varies based on version and instance name.

    • Impostare il valore della chiave Certificate sull'identificazione personale del certificato SSL importato nella macchina virtuale.Set the value of the Certificate key to the thumbprint of the SSL certificate you imported to the VM.

      È possibile ottenere l'identificazione personale in diversi modi, alcuni dei quali preferibili ad altri.There are several ways to get the thumbprint, some better than others. Se la si copia dallo snap-in Certificati in MMC, esiste il rischio di selezionare un carattere iniziale invisibile, come illustrato in questo articolo del supporto, e di ottenere un errore quando si prova a stabilire una connessione.If you copy it from the Certificates snap-in in MMC, you will probably pick up an invisible leading character as described in this support article, which results in an error when you attempt a connection. Esistono diverse soluzioni alternative per risolvere il problema.Several workarounds exist for correcting this problem. La più semplice consiste nel premere il tasto BACKSPACE e quindi nel digitare di nuovo il primo carattere dell'identificazione personale per rimuovere il carattere iniziale nel campo del valore della chiave in regedit.The easiest is to backspace over and then retype the first character of the thumbprint to remove the leading character in the key value field in regedit. In alternativa, è possibile usare un altro strumento per copiare l'identificazione personale.Alternatively, you can use a different tool to copy the thumbprint.

  3. Concedere autorizzazioni all'account del servizio.Grant permissions to the service account.

    Assicurarsi che l'account del servizio SQL Server riceva l'autorizzazione appropriata per la chiave privata del certificato SSL.Make sure the SQL Server service account is granted appropriate permission on the private key of the SSL certificate. Se si ignora questo passaggio, SQL Server non verrà avviato.If you overlook this step, SQL Server will not start. È possibile usare lo snap-in Certificates o CertUtils per questa attività.You can use the Certificates snap-in or CertUtils for this task.

  4. Riavviare il servizio SQL Server.Restart the SQL Server service.

Configurare la connettività di SQL Server nella VMConfigure SQL Server connectivity in the VM

Dopo avere configurato la connessione crittografata da Ricerca di Azure, è necessario eseguire altri passaggi di configurazione intrinseci di SQL Server nelle VM di Azure.After you set up the encrypted connection required by Azure Search, there are additional configuration steps intrinsic to SQL Server on Azure VMs. Se non è già stato fatto, il passaggio successivo prevede di completare la configurazione seguendo le istruzioni contenute in uno di questi articoli:If you haven't done so already , the next step is to finish configuration using either one of these articles:

In particolare, vedere in ogni articolo la sezione relativa alla "connessione via Internet".In particular, review the section in each article for "connecting over the internet".

Configurare il gruppo di sicurezza di reteConfigure the Network Security Group (NSG)

Non è insolito configurare il gruppo di sicurezza di rete e il corrispondente endpoint o elenco di controllo di accesso (ACL) di Azure in modo da rendere accessibile la VM di Azure ad altri soggetti.It is not unusual to configure the NSG and corresponding Azure endpoint or Access Control List (ACL) to make your Azure VM accessible to other parties. Probabilmente questa operazione è stata eseguita prima per consentire alla logica applicativa di connettersi alla VM di SQL Azure.Chances are you've done this before to allow your own application logic to connect to your SQL Azure VM. Non è diverso per una connessione di Ricerca di Azure alla VM di SQL Azure.It's no different for an Azure Search connection to your SQL Azure VM.

I collegamenti seguenti forniscono istruzioni sulla configurazione del gruppo di sicurezza di rete per le distribuzioni VM.The links below provide instructions on NSG configuration for VM deployments. Usare queste istruzioni per inserire nell'elenco di controllo di accesso un endpoint di Ricerca di Azure in base all'indirizzo IP.Use these instructions to ACL an Azure SEarch endpoint based on its IP address.

Nota

Per informazioni, vedere Che cos'è un gruppo di sicurezza di reteFor background, see What is a Network Security Group?

L'indirizzamento IP può creare alcune difficoltà facilmente superabili se si conoscono il problema e le potenziali soluzioni alternative.IP addressing can pose a few challenges that are easily overcome if you are aware of the issue and potential workarounds. Le sezioni rimanenti contengono suggerimenti per gestire i problemi correlati agli indirizzi IP nell'elenco di controllo di accesso.The remaining sections provide recommendations for handling issues related to IP addresses in the ACL.

Limitare l'accesso all'indirizzo IP del servizio di ricercaRestrict access to the search service IP address

Si consiglia di limitare l'accesso all'indirizzo IP del servizio di ricerca nell'elenco di controllo di accesso invece di aprire le VM di SQL Azure a tutte le richieste di connessione.We strongly recommend that you restrict the access to the IP address of your search service in the ACL instead of making your SQL Azure VMs wide open to any connection requests. È possibile trovare facilmente l'indirizzo IP eseguendo il ping del nome FQDN (ad esempio, <your-search-service-name>.search.windows.net) del servizio di ricerca.You can easily find out the IP address by pinging the FQDN (for example, <your-search-service-name>.search.windows.net) of your search service.

Gestire le fluttuazioni degli indirizzi IPManaging IP address fluctuations

Se il servizio di ricerca ha solo un'unità di ricerca (vale a dire una replica e una partizione), l'indirizzo IP cambierà durante il riavvio del servizio di routine, invalidando un elenco di controllo di accesso esistente con l'indirizzo IP del servizio di ricerca.If your search service has only one search unit (that is, one replica and one partition), the IP address will change during routine service restarts, invalidating an existing ACL with your search service's IP address.

Per evitare il conseguente errore di connettività, è possibile usare più di una replica e di una partizione in Ricerca di Azure.One way to avoid the subsequent connectivity error is to use more than one replica and one partition in Azure Search. In questo modo, pur aumentando il costo, viene risolto il problema degli indirizzi IP.Doing so increases the cost, but it also solves the IP address problem. In Ricerca di Azure gli indirizzi IP non vengono modificati quando si ha più di un'unità di ricerca.In Azure Search, IP addresses don't change when you have more than one search unit.

Un altro approccio è quello di consentire che la connessione non riesca e quindi di riconfigurare gli elenchi di controllo di accesso nel gruppo di sicurezza di rete.A second approach is to allow the connection to fail, and then reconfigure the ACLs in the NSG. In media, gli indirizzi IP vengono modificati a distanza di alcune settimane.On average, you can expect IP addresses to change every few weeks. Per i clienti che hanno controllato l'indicizzazione raramente, questo potrebbe essere un approccio valido.For customers who do controlled indexing on an infrequent basis, this approach might be viable.

Un terzo approccio valido (ma non particolarmente sicuro) consiste nello specificare l'intervallo di indirizzi IP dell'area di Azure in cui viene effettuato il provisioning del servizio di ricerca.A third viable (but not particularly secure) approach is to specify the IP address range of the Azure region where your search service is provisioned. L'elenco degli intervalli IP da cui gli indirizzi IP pubblici vengono allocati alle risorse di Azure è pubblicato negli intervalli IP dei data center di Azure.The list of IP ranges from which public IP addresses are allocated to Azure resources is published at Azure Datacenter IP ranges.

Includere gli indirizzi IP del portale di Ricerca di AzureInclude the Azure Search portal IP addresses

Se si usa il portale di Azure per creare un indicizzatore, anche la logica del portale di Ricerca di Azure deve poter accedere alla VM di SQL Azure durante la fase di creazione.If you are using the Azure portal to create an indexer, Azure Search portal logic also needs access to your SQL Azure VM during creation time. Gli indirizzi IP del portale di Ricerca di Azure sono reperibili eseguendo il ping di stamp2.search.ext.azure.com.Azure search portal IP addresses can be found by pinging stamp2.search.ext.azure.com.

Passaggi successiviNext steps

Dopo avere eseguito la configurazione, è possibile specificare un'istanza di SQL Server nella VM di Azure come origine dati per un indicizzatore di Ricerca di Azure.With configuration out of the way, you can now specify a SQL Server on Azure VM as the data source for an Azure Search indexer. Per altre informazioni, vedere Connessione del database SQL di Azure a Ricerca di Azure tramite gli indicizzatori .See Connecting Azure SQL Database to Azure Search using indexers for more information.