Connessioni dell'indicizzatore a un'istanza di SQL Server in una macchina virtuale di Azure

Quando si configura un indicizzatore SQL di Azure per estrarre contenuto da un database in una macchina virtuale di Azure, sono necessari passaggi aggiuntivi per garantire connessioni sicure.

Una connessione da Azure AI Search all'istanza di SQL Server in una macchina virtuale è una connessione Internet pubblica. Per garantire connessioni sicure, seguire questa procedura:

  • Ottenere un certificato da un provider dell'autorità di certificazione per il nome di dominio completo dell'istanza di SQL Server nella macchina virtuale.

  • Installare il certificato nella macchina virtuale.

Dopo aver installato il certificato nella macchina virtuale, è possibile completare i seguenti passaggi in questo articolo.

Nota

Le colonne Always Encrypted non sono attualmente supportate dagli indicizzatori di Azure AI Search.

Abilitare le connessioni crittografate

Azure AI Search richiede un canale crittografato per tutte le richieste di indicizzatori su una connessione Internet pubblica. Questa sezione elenca i passaggi necessari per eseguire questa operazione.

  1. Controllare le proprietà del certificato per verificare che il nome del soggetto sia il nome di dominio completo (FQDN) della VM di Azure.

    È possibile usare uno strumento come CertUtils o lo snap-in Certificati per visualizzare le proprietà. È possibile ottenere il nome FQDN dalla sezione Informazioni di base della pagina dei servizi della VM nel campo Etichetta Indirizzo IP pubblico/Nome DNS del portale di Azure.

    Il nome di dominio completo viene in genere formattato come <your-VM-name>.<region>.cloudapp.azure.com

  2. Configurare SQL Server per l'uso del certificato con l'editor del Registro di sistema (regedit).

    Anche se Gestione configurazione SQL Server viene usato spesso per questa attività, non è possibile usarlo per questo 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). Quando i nomi non corrispondono, usare regedit per specificare il certificato.

    1. In regedit passare a questa chiave del Registro di sistema: 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.

    2. Impostare il valore della chiave Certificato sull’identificazione personale (senza spazi) del certificato TLS/SSL importato nella macchina virtuale.

    È possibile ottenere l'identificazione personale in diversi modi, alcuni dei quali preferibili ad altri. Se la si copia dallo snap-in Certificati in MMC, si c’è 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. Esistono diverse soluzioni alternative per risolvere il problema. 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. In alternativa, è possibile usare un altro strumento per copiare l'identificazione personale.

  3. Concedere autorizzazioni all'account del servizio.

    Assicurarsi che all'account del servizio SQL Server sia concessa l'autorizzazione appropriata per la chiave privata del certificato TLS/SSL. Se si ignora questo passaggio, SQL Server non verrà avviato. È possibile usare lo snap-in Certificates o CertUtils per questa attività.

  4. Riavviare il servizio SQL Server.

Connessione a SQL Server

Dopo aver configurato la connessione crittografata richiesta da Azure AI Search, connettersi all'istanza tramite il suo endpoint pubblico. L'articolo seguente illustra i requisiti e la sintassi di connessione:

Configurare il gruppo di sicurezza di rete

È consigliabile configurare il gruppo di sicurezza di rete (NSG) e l'endpoint di Azure corrispondente o l'elenco di controllo di accesso (ACL) per rendere la macchina virtuale di Azure accessibile a terzi. Probabilmente questa operazione è stata eseguita prima per consentire alla logica applicativa di connettersi alla VM di SQL Azure. Non è diverso per una connessione di Azure AI Search alla VM di SQL Azure.

I passaggi e i collegamenti seguenti forniscono istruzioni sulla configurazione del gruppo di sicurezza di rete per le distribuzioni di macchine virtuali. Usare queste istruzioni per inserire un endpoint del servizio di ricerca nell’elenco di controllo di accesso in base al relativo indirizzo IP.

  1. Ottenere l'indirizzo IP del servizio di ricerca. Per istruzioni, vedere la sezione seguente.

  2. Aggiungere l'indirizzo IP di ricerca all'elenco di filtri IP del gruppo di sicurezza. Entrambi i seguenti articoli illustrano i passaggi:

L'indirizzamento IP può creare alcune difficoltà facilmente superabili se si conoscono il problema e le potenziali soluzioni alternative. Le sezioni rimanenti contengono suggerimenti per gestire i problemi correlati agli indirizzi IP nell'elenco di controllo di accesso.

È consigliabile limitare l'accesso all'indirizzo IP del servizio di ricerca e all'intervallo di indirizzi IP del AzureCognitiveSearchtag di servizio nell'elenco di controllo di accesso anziché rendere le macchine virtuali di SQL Azure aperte a tutte le richieste di connessione.

L'indirizzo IP può essere trovato eseguendo il ping del nome FQDN (ad esempio, <your-search-service-name>.search.windows.net) del servizio di ricerca. Sebbene sia possibile che l'indirizzo IP del servizio di ricerca sia modificato, è improbabile che ciò accada. L'indirizzo IP tende a essere statico per tutta la durata del servizio.

È possibile trovare l'intervallo di indirizzi IP del AzureCognitiveSearchtag di servizio usando file JSON scaricabili o tramite l'API di individuazione tag del servizio. L'intervallo di indirizzi IP viene aggiornato settimanalmente.

Includere gli indirizzi IP del portale di Azure

Se si usa il portale di Azure per creare un indicizzatore, è necessario concedere al portale l'accesso in ingresso alla macchina virtuale di SQL Azure. Per una regola in ingresso nel firewall, è necessario specificare l'indirizzo IP del portale.

Per ottenere l'indirizzo IP del portale, effettuare il ping di stamp2.ext.search.windows.net, ovvero il dominio di Gestione traffico. Si verifica il timeout della richiesta, ma l'indirizzo IP è visibile nel messaggio di stato. Ad esempio, nel messaggio "Pinging azsyrie.northcentralus.cloudapp.azure.com [52.252.175.48]", l'indirizzo IP è "52.252.175.48".

I cluster in aree diverse si connettono a gestori di traffico diversi. Indipendentemente dal nome di dominio, l'indirizzo IP restituito dal ping è quello corretto da usare quando si definisce una regola del firewall in ingresso per il portale di Azure nell'area.

Integrare la sicurezza di rete con l'autenticazione basata su token

I firewall e la sicurezza di rete costituiscono un primo passaggio per impedire l'accesso non autorizzato a dati e operazioni. L'autorizzazione deve essere il passaggio successivo.

È consigliabile usare l'accesso in base al ruolo, in cui gli utenti e i gruppi di Microsoft Entra ID vengono assegnati a ruoli che determinano l'accesso in lettura e scrittura al servizio. Per una descrizione dei ruoli predefiniti e istruzioni per la creazione di ruoli personalizzati, vedere Connettersi ad Azure AI Search usando i controlli degli accessi in base al ruolo.

Se non si necessita dell'autenticazione basata su chiave, è consigliabile disabilitare le chiavi API e usare esclusivamente le assegnazioni di ruolo.

Passaggi successivi

Dopo avere eseguito la configurazione, è possibile specificare un'istanza di SQL Server nella VM di Azure come origine dati per un indicizzatore di Azure AI Search. Per altre informazioni, vedere Indicizzare dati da Azure SQL.