Accès de l’indexeur au contenu protégé par la sécurité réseau Azure

Si vos ressources Azure sont déployées dans un réseau virtuel Azure, cet article conceptuel explique comment un indexeur de recherche peut accéder au contenu protégé par la sécurité réseau. Il décrit les modèles de trafic sortant et les environnements d’exécution de l’indexeur. Il couvre également les protections réseau prises en charge par Azure AI Recherche et les facteurs susceptibles d’influencer votre stratégie de sécurité. Enfin, étant donné que le stockage Azure est utilisé pour l’accès aux données et le stockage persistant, cet article traite également des considérations réseau spécifiques à la recherche et à la connectivité du stockage.

Vous recherchez plutôt des instructions pas à pas ? Découvrez comment configurer les règles de pare-feu pour autoriser l’accès des indexeurs ou comment établir des connexions sortantes via un point de terminaison privé.

Ressources accessibles avec des indexeurs

Les indexeurs Azure AI Recherche peuvent effectuer des appels sortants vers différentes ressources dans trois situations :

  • Connexions à des sources de données externes pendant l’indexation
  • Connexions à du code externe encapsulé via un ensemble de compétences qui inclut des compétences personnalisées
  • Connexions à Stockage Azure pendant l’exécution de l’ensemble de compétences pour mettre en cache des enrichissements, enregistrer l’état de session de débogage ou écrire dans une base de connaissances

Les types de ressources Azure auxquels un indexeur peut accéder dans le cadre d’une exécution classique sont répertoriés dans le tableau ci-dessous.

Ressource Objectif au sein de l’exécution de l’indexeur
Stockage Azure (objets blob, ADLS Gen 2, fichiers, tables) Source de données
Stockage Azure (objets blob, tables) Ensembles de compétences (mise en cache d’enrichissements, sessions de débogage, projections de la base de connaissances)
Azure Cosmos DB (différentes API) Source de données
Azure SQL Database Source de données
SQL Server sur les machines virtuelles Azure Source de données
SQL Managed Instance Source de données
Azure Functions Ressource jointe à un ensemble de compétences et utilisée pour héberger des compétences d’API web personnalisées

Remarque

Un indexeur se connecte également à Azure AI services pour les compétences intégrées. Toutefois, cette connexion est établie sur le réseau interne et n’est soumise à aucune configuration réseau sous votre contrôle.

Les indexeurs se connectent aux ressources en utilisant les approches suivantes :

  • Un point de terminaison public avec des informations d’identification
  • Un point de terminaison privé, utilisant Azure Private Link
  • Se connecter en tant que service approuvé
  • Connecter par le biais d’adresses IP

Si votre ressource Azure se trouve sur un réseau virtuel, vous devez utiliser un point de terminaison privé ou un adressage IP pour admettre les connexions de l'indexeur aux données.

Protections réseau prises en charge

Vos ressources Azure peuvent être protégées avec un certain nombre de mécanismes d’isolement réseau proposés par Azure. En fonction de la ressource et de la région, les indexeurs Azure AI Recherche peuvent établir des connexions sortantes à travers des pare-feu IP et des points de terminaison privés, sous réserve des limitations indiquées dans le tableau suivant.

Ressource Restriction d’adresse IP Point de terminaison privé
Stockage Azure pour l’indexation basée sur du texte (objets blob, ADLS Gen 2, fichiers, tables) Pris en charge uniquement si le compte de stockage et le service de recherche se trouvent dans des régions différentes. Prise en charge
Stockage Azure pour l’enrichissement par IA (mise en cache, sessions de débogage, base de connaissances) Pris en charge uniquement si le compte de stockage et le service de recherche se trouvent dans des régions différentes. Prise en charge
Azure Cosmos DB pour NoSQL Prise en charge Prise en charge
Azure Cosmos DB for MongoDB Prise en charge Non pris en charge
Azure Cosmos DB for Apache Gremlin Prise en charge Non pris en charge
Azure SQL Database Prise en charge Prise en charge
SQL Server sur les machines virtuelles Azure Prise en charge S/O
SQL Managed Instance Prise en charge S/O
Azure Functions Prise en charge Pris en charge uniquement pour certains niveaux d’Azure Functions

Environnement d’exécution des indexeurs

Azure AI Recherche a le concept d’un environnement d’exécution d’indexeur qui optimise le traitement en fonction des caractéristiques du travail. Il existe deux environnements. Si vous utilisez un pare-feu IP pour contrôler l’accès aux ressources Azure, la connaissance des environnements d’exécution vous aidera à configurer une plage d’adresses IP qui inclut les deux environnements.

Pour une exécution d’indexeur donnée, Azure AI Recherche détermine le meilleur environnement dans lequel exécuter l’indexeur. Selon le nombre et les types de tâches affectés, l'indexeur s’exécute dans l’un des deux environnements suivants.

Environnement d’exécution Description
Privée Interne à un service de recherche. Les indexeurs s’exécutant dans l’environnement privé partagent des ressources informatiques avec d’autres charges de travail d’indexation et de requête sur le même service de recherche. En général, seuls les indexeurs qui effectuent une indexation textuelle (sans ensembles de compétences) s’exécutent dans cet environnement. Si vous établissez une connexion privée entre un indexeur et vos données, c'est le seul environnement d'exécution que vous pouvez utiliser.
multilocataire Géré et sécurisé par Microsoft sans frais supplémentaires. Il n’est soumis à aucune configuration réseau sous votre contrôle. Cet environnement est utilisé pour décharger le traitement gourmand en calculs, en laissant les ressources spécifiques au service disponibles pour les opérations de routine. Parmi les exemples de travaux d’indexeur gourmands en ressources, citons l’attachement d’ensembles de compétences, le traitement de documents volumineux ou le traitement d’un volume élevé de documents.

La section suivante décrit la configuration IP permettant d’admettre les demandes provenant de l’un ou l’autre des environnements d’exécution.

Configuration des plages d’adresses IP pour l’exécution de l’indexeur

Si votre ressource Azure est derrière un pare-feu, configurez les règles de trafic entrant qui admettent les connexions de l'indexeur pour toutes les adresses IP à partir desquelles une requête d’indexeur peut provenir. Il s'agit de l'adresse IP utilisée par le service de recherche et des adresses IP utilisées par l'environnement multi-locataire.

  • Pour obtenir l’adresse IP du service de recherche (et l’environnement d’exécution privé), utilisez nslookup (ou ping) pour trouver le nom de domaine complet (FQDN) de votre service de recherche. Le nom de domaine complet d’un service de recherche dans le cloud public peut être <service-name>.search.windows.net.

  • Pour obtenir les adresses IP des environnements mutualisés dans lesquels un indexeur pourrait s’exécuter, utilisez l’étiquette de service AzureCognitiveSearch.

    Les balises de service Azure comportent une plage d’adresses IP des environnements multi-locataires pour chaque région. Vous pouvez trouver ces adresses IP à l’aide de l’API de découverte ou d’un fichier json téléchargeable. Les plages d’adresses IP sont allouées par région. Vérifiez donc votre région de service de recherche avant de commencer.

Configuration des règles IP pour Azure SQL

Lors de la définition de la règle IP pour l’environnement multi-locataire, certaines sources de données SQL prennent en charge une approche simple pour la spécification d’une adresse IP. Au lieu d’énumérer toutes les adresses IP dans la règle, vous pouvez créer une règle de groupe de sécurité réseau qui spécifie l’étiquette de service AzureCognitiveSearch.

Vous pouvez spécifier l’étiquette de service si votre source de données est :

Notez que si vous avez spécifié l’étiquette de service pour la règle IP de l’environnement multi-locataire, vous aurez toujours besoin d’une règle de trafic entrant explicite pour l’environnement d’exécution privé (c’est-à-dire le service de recherche lui-même), comme obtenue via nslookup.

Choisissez une approche de connectivité

Un service de recherche ne peut pas être approvisionné dans un réseau virtuel spécifique, car il s’exécute en mode natif sur une machine virtuelle. Bien que certaines ressources Azure offrent des points de terminaison de service de réseau virtuel, cette fonctionnalité ne sera pas proposée par Recherche Azure AI. Vous devez prévoir de mettre en œuvre l’une des approches suivantes.

Approche Détails
Connexion entrante à votre ressource Azure Configurez une règle de pare-feu entrante sur votre ressource Azure qui admet les demandes d’indexeur pour vos données. La configuration de votre pare-feu doit inclure la balise de service pour l'exécution multi-locataire et l'adresse IP de votre service de recherche.
Connexion privée entre Azure AI Search et votre ressource Azure Configurez un lien privé partagé utilisé exclusivement par votre service de recherche pour les connexions à votre ressource. Les connexions passent par le réseau interne et contournent l’internet public. Si vos ressources sont entièrement verrouillées (exécutées sur un réseau virtuel protégé ou non disponibles via une connexion publique), un point de terminaison privé est votre seul choix. Consultez Établir des connexions sortantes via un point de terminaison privé.

Les connexions via un point de terminaison privé doivent provenir de l’environnement d’exécution privé du service de recherche.

La configuration d’un pare-feu IP est gratuite. Un point de terminaison privé, basé sur Azure Private Link, a un impact sur la facturation. Consultez Tarifs Azure Private Link pour plus d’informations.

Après avoir configuré la sécurité du réseau, procédez à l'attribution des rôles en précisant quels utilisateurs et quels groupes ont un accès en lecture et en écriture à vos données et à vos opérations.

Considérations relatives à l’utilisation d’un point de terminaison privé

Cette section se concentre sur l’option de connexion privée.

  • Une fois qu'un lien privé partagé est créé, le service de recherche l'utilise toujours pour chaque connexion d'indexeur à cette ressource Azure spécifique. La connexion privée est verrouillée et appliquée en interne. Vous ne pouvez pas contourner la connexion privée pour une connexion publique.

  • Nécessite une ressource Azure Private Link facturable.

  • Le propriétaire de l’abonnement doit approuver la connexion au point de terminaison privé.

  • Nécessite la désactivation de l’environnement d’exécution mutualisé pour l'indexeur.

    Pour ce faire, définissez le executionEnvironment de l'indexeur sur "Private". Cette étape garantit que toute l’exécution de l’indexeur est limitée à l’environnement privé approvisionné dans le service de recherche. Ce paramètre est limité à un indexeur et non au service de recherche. Si vous souhaitez que tous les indexeurs se connectent sur des points de terminaison privés, chacun doit avoir la configuration suivante :

        {
          "name" : "myindexer",
          ... other indexer properties
          "parameters" : {
              ... other parameters
              "configuration" : {
                ... other configuration properties
                "executionEnvironment": "Private"
              }
            }
        }
    

Lorsque vous disposez d’un point de terminaison privé approuvé pour une ressource, les indexeurs définis pour être privés tentent d’obtenir l’accès via la liaison privée créée et approuvée pour la ressource Azure.

Azure AI Recherche confirmera que les appelants du point de terminaison privé disposent des attributions de rôles appropriées. Par exemple, si vous demandez une connexion de point de terminaison privé à un compte de stockage avec des autorisations en lecture seule, cet appel sera rejeté.

Si le point de terminaison privé n’est pas approuvé ou si l’indexeur n’a pas utilisé la connexion de point de terminaison privé, un message d’erreur transientFailure apparaîtra dans l’historique d’exécution de l’indexeur.

Compléter la sécurité réseau avec l’authentification par jeton

Les pare-feu et la sécurité réseau sont la première étape pour empêcher l’accès non autorisé aux données et aux opérations. L’autorisation doit être l’étape suivante.

Nous vous recommandons d’utiliser l’accès en fonction du rôle, où les utilisateurs et groupes Microsoft Entra ID reçoivent des rôles qui déterminent l’accès en lecture et en écriture à votre service. Consultez Se connecter à la Recherche Azure AI avec le contrôle d’accès en fonction du rôle pour obtenir une description des rôles intégrés et des instructions pour la création de rôles personnalisés.

Si vous n’avez pas besoin d’une authentification basée sur des clés, nous vous recommandons de désactiver les clés API et d’utiliser exclusivement les attributions de rôle.

Accès à un compte de stockage protégé par le réseau

Un service de recherche stocke les index et les listes de synonymes. Pour d’autres fonctionnalités nécessitant un stockage, Azure AI Recherche dépend du stockage Azure. La mise en cache de l’enrichissement, les sessions de débogage et les bases de connaissances appartiennent à cette catégorie. L’emplacement de chaque service et toutes les protections réseau en place pour le stockage déterminent votre stratégie d’accès aux données.

Services d’une même région

Dans Stockage Azure, l’accès via un pare-feu nécessite que la requête provienne d’une autre région. Si le stockage Azure et Azure AI Recherche se trouvent dans la même région, vous pouvez contourner les restrictions IP sur le compte de stockage en accédant aux données sous l’identité système du service de recherche.

Deux options pour prendre en charge l’accès aux données à l’aide de l’identité système sont possibles :

Les options ci-dessus dépendent de Microsoft Entra ID pour l’authentification, ce qui signifie que la connexion doit être établie avec une connexion Microsoft Entra. Actuellement, seule une identité managée affectée par le système Azure AI Recherche est prise en charge pour les connexions d’une même région via un pare-feu.

Services dans différentes régions

Lorsque la recherche et le stockage se trouvent dans des régions différentes, vous pouvez utiliser les options mentionnées précédemment ou configurer des règles IP qui acceptent les requête de votre service. Selon la charge de travail, vous devrez peut-être configurer des règles pour plusieurs environnements d’exécution, comme décrit dans la section suivante.

Étapes suivantes

À présent que vous êtes familiarisé avec les options d’accès aux données de l’indexeur pour les solutions déployées dans un réseau virtuel Azure, consultez l’un des articles procéduraux suivants dans le cadre de l’étape suivante :