Partager via


Se connecter au Stockage Azure à l’aide d’une identité managée (Recherche Azure AI)

Cet article explique comment configurer une connexion de service de recherche à un compte Stockage Azure en utilisant une identité managée au lieu de fournir des informations d’identification dans la chaîne de connexion.

Vous pouvez utiliser une identité managée affectée par le système ou une identité managée affectée par l’utilisateur. Les identités managées sont des identifiants Microsoft Entra et nécessitent l’attribution de rôles pour accéder au Stockage Azure.

Prérequis

Remarque

Si le stockage est protégé par le réseau et dans la même région que votre service de recherche, vous devez utiliser une identité managée affectée par le système et l’une des options réseau suivantes : Se connecter en tant que service approuvé, ou Se connecter à l’aide de la règle d’instance de ressource.

Créer une attribution de rôle dans le Stockage Azure

  1. Connectez-vous au portail Azure et recherchez votre compte de stockage.

  2. Sélectionnez Contrôle d’accès (IAM) .

  3. Sélectionnez Ajouter, puis Attribution de rôle.

  4. Dans la liste des rôles de fonction de travail, sélectionnez les rôles nécessaires à votre service de recherche :

    Tâche Attribution de rôle
    Indexation d’objets blob à l’aide d’un indexeur Ajouter Lecteur des données Blob du stockage
    Indexation d’ADLS Gen2 à l’aide d’un indexeur Ajouter Lecteur des données Blob du stockage
    Indexation de tables à l’aide d’un indexeur Ajouter Lecteur et accès aux données
    Indexation de fichiers à l’aide d’un indexeur Ajouter Lecteur et accès aux données
    Écrire dans une base de connaissances Ajouter Contributeur aux données Blob du stockage pour les projections d’objets et de fichiers, et Lecteur et accès aux données pour les projections de tables
    Écrire dans un cache d’enrichissement Ajouter Contributeur aux données Blob du stockage
    Enregistrer l’état de la session de débogage Ajouter Contributeur aux données Blob du stockage
  5. Cliquez sur Suivant.

  6. Sélectionnez Identité managée, puis Membres.

  7. Filtrez selon les identités managées affectées par le système ou les identités managées affectées par l’utilisateur. Vous devez voir l’identité managée que vous avez créée précédemment pour votre service de recherche. Si vous n’en avez pas, consultez Configurer la recherche pour utiliser une identité managée. Si vous en avez déjà configuré une mais qu’elle n’est pas disponible, patientez quelques minutes.

  8. Sélectionnez l’identité et enregistrez l’attribution de rôle.

Spécifier une identité managée dans une chaîne de connexion

Une fois que vous avez une attribution de rôle, vous pouvez configurer une connexion au Stockage Azure qui fonctionne sous ce rôle.

Les indexeurs utilisent un objet source de données pour les connexions à une source de données externe. Cette section explique comment spécifier une identité managée affectée par le système ou une identité managée affectée par l’utilisateur dans une chaîne de connexion de source de données. Vous trouverez d’autres exemples de chaîne de connexion dans l’article sur l’identité managée.

Conseil

Vous pouvez créer une connexion de source de données au Stockage Azure dans le Portail Azure, en spécifiant une identité managée affectée par le système ou par l’utilisateur, puis afficher la définition JSON pour voir comment la chaîne de connexion est formulée.

Identité managée affectée par le système

Vous devez disposer d’une identité managée affectée par le système déjà configurée, et elle doit avoir une attribution de rôle sur le Stockage Azure.

Pour les connexions effectuées avec une identité managée affectée par le système, la seule modification apportée à la définition de la source de données est le format de la propriété credentials.

Fournissez un ResourceId qui n’a pas de clé de compte ni de mot de passe. Le ResourceId doit inclure l’ID d’abonnement, le groupe de ressources et le nom du compte de stockage.

POST https://[service name].search.windows.net/datasources?api-version=2023-11-01

{
    "name" : "blob-datasource",
    "type" : "azureblob",
    "credentials" : { 
        "connectionString" : "ResourceId=/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MY-DEMO-RESOURCE-GROUP/providers/Microsoft.Storage/storageAccounts/MY-DEMO-STORAGE-ACCOUNT/;" 
    },
    "container" : { 
        "name" : "my-container", "query" : "<optional-virtual-directory-name>" 
    }
}   

Identité managée affectée par l’utilisateur

Vous devez disposer d’une identité managée affectée par l’utilisateur déjà configurée et associée à votre service de recherche. En outre, l’identité doit avoir une attribution de rôle sur le Stockage Azure.

Les connexions effectuées via des identités managées affectées par l’utilisateur utilisent les mêmes informations d’identification qu’une identité managée affectée par le système, ainsi qu’une propriété d’identité supplémentaire qui contient la collection d’identités managées affectées par l’utilisateur. Une seule identité managée affectée par l’utilisateur doit être fournie lors de la création de la source de données. Définissez userAssignedIdentity sur l’identité managée affectée par l’utilisateur.

Fournissez un ResourceId qui n’a pas de clé de compte ni de mot de passe. Le ResourceId doit inclure l’ID d’abonnement, le groupe de ressources et le nom du compte de stockage.

Fournissez un identity à l’aide de la syntaxe indiquée dans l’exemple suivant.

POST https://[service name].search.windows.net/datasources?api-version=2023-11-01

{
    "name" : "blob-datasource",
    "type" : "azureblob",
    "credentials" : { 
        "connectionString" : "ResourceId=/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MY-DEMO-RESOURCE-GROUP/providers/Microsoft.Storage/storageAccounts/MY-DEMO-STORAGE-ACCOUNT/;" 
    },
    "container" : { 
        "name" : "my-container", "query" : "<optional-virtual-directory-name>" 
    },
    "identity" : { 
        "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity",
        "userAssignedIdentity" : "/subscriptions/00000000-0000-0000-0000-00000000/resourcegroups/MY-DEMO-RESOURCE-GROUP/providers/Microsoft.ManagedIdentity/userAssignedIdentities/MY-DEMO-USER-MANAGED-IDENTITY" 
    }
}   

Les informations de connexion et les autorisations sur le service distant sont validées au moment de l’exécution de l’indexeur. Si l’indexeur réussit, la syntaxe de connexion et les attributions de rôles sont valides. Pour plus d'informations, consultez Exécuter ou réinitialiser des indexeurs, des compétences ou des documents.

Accès aux données sécurisées du réseau dans les comptes de stockage

Les comptes de stockage Azure peuvent être sécurisés davantage à l’aide de pare-feu et de réseaux virtuels. Pour indexer le contenu d’un compte de stockage sécurisé avec un pare-feu ou un réseau virtuel, consultez Établir des connexions d’indexeur au Stockage Azure en tant que service approuvé.

Voir aussi