Connexions de l’indexeur à une instance SQL sur une machine virtuelle Azure

Lorsque vous configurez un indexeur Azure SQL pour extraire du contenu d’une base de données sur une machine virtuelle Azure, des étapes supplémentaires sont requises pour des connexions de sécurité.

Une connexion entre la Recherche Azure AI et une instance SQL sur une machine virtuelle constitue une connexion Internet publique. Pour que les connexions sécurisées réussissent, vous devez répondre aux exigences suivantes :

Une fois que vous avez installé le certificat sur votre machine virtuelle, vous êtes prêt à effectuer les étapes suivantes indiquées dans cet article.

Remarque

Les colonnes Always Encrypted ne sont actuellement pas prises en charge par les indexeurs de Recherche Azure AI.

Activer des connexions chiffrées

Recherche Azure AI requiert un canal chiffré pour toutes les demandes d’indexeur via une connexion internet publique. Cette section répertorie les étapes pour y parvenir.

  1. Vérifiez les propriétés du certificat pour vous assurer que le nom du sujet est le nom de domaine complet (FQDN) de la machine virtuelle Azure.

    Vous pouvez utiliser un outil tel que CertUtils ou le composant logiciel enfichable Certificats pour afficher les propriétés. Vous pouvez obtenir le nom de domaine complet à partir de la section Essentials du panneau du service de la machine virtuelle dans le champ Adresse IP publique/Étiquette du nom DNS dans le portail Azure.

    Le nom de domaine complet présente généralement le format <your-VM-name>.<region>.cloudapp.azure.com

  2. Configurez SQL Server de manière à utiliser le certificat à l’aide de l’Éditeur du Registre (regedit).

    Bien que le Gestionnaire de Configuration SQL Server soit souvent utilisé pour cette tâche, vous ne pouvez pas l’utiliser pour ce scénario. Il ne trouve pas le certificat importé, car le nom de domaine complet de la machine virtuelle sur Azure ne correspond pas au nom de domaine complet tel que déterminé par la machine virtuelle (il identifie le domaine en tant qu’ordinateur local ou domaine du réseau auquel il est joint). Lorsque les noms ne correspondent pas, utilisez regedit pour spécifier le certificat.

    1. Dans regedit, accédez à la clé de Registre suivante : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\[MSSQL13.MSSQLSERVER]\MSSQLServer\SuperSocketNetLib\Certificate.

      La partie [MSSQL13.MSSQLSERVER] varie en fonction du nom de version et de l’instance.

    2. Définissez la valeur de la clé Certificat sur l’empreinte (sans espaces) du certificat TLS/SSL que vous avez importé sur la machine virtuelle.

    Il existe plusieurs manières d’obtenir l’empreinte numérique, certaines étant mieux que d’autres. Si vous la copiez à partir du composant logiciel enfichable certificats dans MMC, vous allez probablement choisir un caractère de début invisible comme décrit dans cet article du support technique, ce qui entraîne une erreur lors de la tentative de connexion. Il existe plusieurs solutions de contournement pour résoudre ce problème. La plus simple consiste à reculer et retaper le premier caractère de l’empreinte numérique pour supprimer le caractère de début dans le champ de la valeur de clé dans regedit. Vous pouvez également utiliser un autre outil pour copier l’empreinte numérique.

  3. Accordez des autorisations pour le compte de service.

    Assurez-vous que le compte de service SQL Server a l’autorisation appropriée sur la clé privée du certificat TLS/SSL. Si vous ignorez cette étape, SQL Server ne démarre pas. Vous pouvez utiliser le composant logiciel enfichable Certificats ou CertUtils pour cette tâche.

  4. Redémarrez le service SQL Server.

Se connecter à SQL Server

Après avoir configuré la connexion chiffrée requise par Recherche Azure AI, vous vous connectez à l’instance via son point de terminaison public. L’article suivant décrit les exigences et la syntaxe de la connexion :

Configurer le groupe de sécurité réseau

Il n’est pas inhabituel de configurer le groupe de sécurité réseau et le point de terminaison correspondant ou la liste de contrôle d’accès Azure correspondant(e) pour rendre votre machine virtuelle Azure accessible à d’autres parties. Vous avez sans doute déjà effectué cela pour permettre à votre propre logique d’application de se connecter à votre machine virtuelle SQL Azure. C’est la même chose pour une connexion de Recherche Azure AI à votre machine virtuelle SQL Azure.

Les liens ci-dessous fournissent des instructions sur la configuration du groupe de sécurité réseau pour les déploiements de machines virtuelles. Utilisez ces instructions pour faire figurer un point de terminaison de service de recherche dans la liste de contrôle d’accès en fonction de son adresse IP.

  1. Obtenez l’adresse IP de votre service de recherche. Consultez la section suivante pour obtenir des instructions.

  2. Ajoutez l’adresse IP de recherche à la liste de filtres IP du groupe de sécurité. Les deux articles suivants expliquent les étapes :

L’adressage IP peut poser quelques problèmes qui sont facilement surmontés si vous êtes conscient du problème et des solutions de contournement possibles. Les sections restantes fournissent des recommandations pour la gestion des problèmes liés aux adresses IP dans la liste de contrôle d’accès.

Nous vous recommandons fortement de restreindre l’accès à l’adresse IP de votre service de recherche et à la plage d’adresses IP de l’étiquette de serviceAzureCognitiveSearch dans la liste de contrôle d’accès au lieu de laisser vos machines virtuelles Azure SQL ouvertes à toutes les demandes de connexion.

Vous pouvez trouver l’adresse IP en effectuer un test ping sur le nom de domaine complet (par exemple, <your-search-service-name>.search.windows.net) de votre service de recherche. Même s’il est possible que l’adresse IP du service de recherche change, il est peu probable que cela arrive. L’adresse IP a tendance à être statique pour la durée de vie du service.

Vous pouvez trouver la plage d’adresses IP de l’étiquette de serviceAzureCognitiveSearch en utilisant des fichiers JSON téléchargeables ou via l’API de détection des étiquettes de service. La plage d’adresses IP est mise à jour chaque semaine.

Inclure les adresses IP du portail Recherche Azure AI

Si vous utilisez le portail Azure pour créer un indexeur, vous devez octroyer l’accès entrant au portail à votre machine virtuelle SQL Azure. Pour une règle de trafic entrant dans le pare-feu, vous devez fournir l’adresse IP du portail.

Pour obtenir l’adresse IP du portail, exécutez la commande ping stamp2.ext.search.windows.net, qui est le domaine du gestionnaire de trafic. La requête expire, mais l’adresse IP est visible dans le message d’état. Par exemple, dans le message « Pinging azsyrie.northcentralus.cloudapp.azure.com [52.252.175.48] », l’adresse IP est « 52.252.175.48 ».

Les clusters dans différentes régions se connectent à différents gestionnaires de trafic. Quel que soit le nom de domaine, l’adresse IP renvoyée par la commande ping est la bonne à utiliser lors de la définition d’une règle de pare-feu entrante pour le Portail Azure dans votre région.

Étapes suivantes

Une fois la configuration résolue, vous pouvez maintenant spécifier un serveur SQL Server sur une machine virtuelle Azure comme source de données pour un indexeur Recherche Azure AI. Pour plus d’informations, consultez Indexer les données d’Azure SQL.