Gérer la sécurité d’une solution Recherche Azure AI
Les organisations doivent avoir confiance dans la sécurité de leurs solutions de recherche. Recherche Azure AI vous permet de contrôler la manière de sécuriser les données que vous recherchez.
Ici, vous allez découvrir comment sécuriser votre solution de recherche. Vous vous concentrerez sur l’endroit où les données sont chiffrées et sur la manière de sécuriser les flux de données entrants et sortants. Enfin, vous verrez comment restreindre l’accès aux résultats de la recherche à des utilisateurs ou à des groupes spécifiques.
Vue d’ensemble des approches de sécurité
La sécurité de recherche IA s’appuie sur les fonctionnalités de sécurité réseau existantes d’Azure. Quand vous êtes prêt à sécuriser votre solution de recherche, vous pouvez porter vos efforts sur trois domaines :
- Demandes de recherche entrantes effectuées par les utilisateurs à destination de votre solution de recherche
- Demandes sortantes à partir de votre solution de recherche vers d’autres serveurs pour indexer des documents
- Restriction de l’accès au niveau du document par demande de recherche d’utilisateur
Chiffrement des données
Le service Recherche Azure AI, comme tous les services Azure, chiffre les données qu’il stocke au repos avec des clés gérées par le service. Ce chiffrement inclut les index, les sources de données, les mappages de synonymes, les ensembles de compétences et même les définitions de l’indexeur.
Les données en transit sont chiffrées selon le chiffrement HTTPS TLS 1.3 standard sur le port 443.
Si vous souhaitez utiliser vos propres clés de chiffrement, ACS prend en charge l’utilisation d’Azure Key Vault. L’un des avantages liés à l’utilisation de vos propres clés gérées par le client, c’est que le chiffrement double est activé sur tous les objets sur lesquels vous utilisez vos clés personnalisées.
Conseil
Pour obtenir des instructions détaillées sur l’utilisation de clés gérées par le client pour le chiffrement, consultez Configurer des clés gérées par le client pour le chiffrement des données dans la Recherche Azure AI
Sécuriser le trafic entrant
Si votre solution de recherche est accessible en externe à partir d’Internet ou d’applications, vous pouvez réduire la surface d’attaque. La Recherche Azure AI vous permet de restreindre gratuitement l’accès au point de terminaison public avec un pare-feu qui autorise l’accès à partir d’adresses IP spécifiques.
Si votre service de recherche n’est utilisé que par des ressources locales, vous pouvez durcir la sécurité avec un circuit ExpressRoute, une passerelle Azure et un service App Service. Vous pouvez également modifier le point de terminaison public de manière à ce qu’il utilise une liaison privée Azure. Vous devez également configurer un réseau virtuel Azure et d’autres ressources. L’utilisation d’un point de terminaison privé est la solution la plus sécurisée, bien qu’elle s’accompagne de coûts supplémentaires liés à l’utilisation de services qui doivent être hébergés sur la plateforme Azure.
Conseil
Pour plus d’informations sur les points de terminaison privés, consultez Créer un point de terminaison privé pour une connexion sécurisée à Recherche Azure AI.
Authentifier les demandes auprès de votre solution de recherche
Une fois l’infrastructure en place pour réduire la surface d’attaque de votre solution de recherche, vous pouvez vous concentrer sur la façon d’authentifier les demandes de recherche de vos utilisateurs et de vos applications.
Quand vous créez votre ACS, l’option par défaut est l’authentification basée sur les clés. Il existe deux types de clés :
- Clés d’administration : accordent vos autorisations d’écriture et le droit d’interroger les informations système (au maximum, 2 clés d’administration peuvent être créées par service de recherche).
- Clés de requête : accordent des autorisations de lecture et sont utilisées par vos utilisateurs ou applications pour interroger des index (au maximum, 50 clés de requête peuvent être créées par service de recherche).
Important
Le contrôle d’accès en fonction du rôle pour les opérations de plan de données est actuellement en préversion et fait l’objet de conditions d’utilisation supplémentaires. Les rôles sont disponibles uniquement dans le cloud public Azure et leur utilisation peut augmenter la latence des demandes de recherche.
Le contrôle d’accès en fonction du rôle (RBAC) est fourni par la plateforme Azure en tant que système global pour contrôler l’accès aux ressources. Vous pouvez utiliser le contrôle d’accès en fonction du rôle (RBAC) dans Recherche Azure AI des manières suivantes :
- Les rôles peuvent être autorisés à administrer le service.
- Définissez des rôles avec des autorisations pour créer, charger et interroger des index.
Les rôles intégrés que vous pouvez attribuer pour gérer le service Recherche Azure AI sont les suivants :
- Propriétaire : accès complet à toutes les ressources de recherche.
- Contributeur : identique à ce qui précède, mais sans la possibilité d’attribuer des rôles ou de modifier les autorisations.
- Lecteur : accès à des informations partielles sur le service.
Si vous avez besoin d’un rôle qui peut également gérer le plan de données, par exemple des index de recherche ou des sources de données, utilisez l’un des rôles suivants :
- Contributeur de services de recherche : rôle pour vos administrateurs de services de recherche (accès identique à celui du rôle Contributeur ci-dessus) et le contenu (index, indexeurs, sources de données et ensembles de compétences).
- Contributeur de données d’index de recherche : rôle pour les développeurs ou propriétaires d’index qui importent, actualisent ou interrogent la collection de documents d’un index.
- Lecteur de données d’index de recherche : rôle d’accès en lecture seule pour les applications et les utilisateurs qui ont seulement besoin d’exécuter des requêtes.
Conseil
Pour plus d’informations sur l’authentification avec RBAC, consultez Utiliser des contrôles d’accès en fonction du rôle Azure (Azure RBAC) dans la Recherche Azure AI.
Sécuriser le trafic sortant
En général, votre trafic sortant indexe les données sources ou les enrichit à l’aide de l’intelligence artificielle (IA). Les connexions sortantes prennent en charge l’authentification basée sur des clés, les connexions de base de données ou les connexions Microsoft Entra si vous pouvez utiliser Microsoft Entra ID.
Si vos sources de données sont hébergées sur la plateforme Azure, vous pouvez également sécuriser les connexions en utilisant une identité managée affectée par le système ou par l’utilisateur.
Les services Azure peuvent en restreindre l’accès par le biais d’un pare-feu. Votre pare-feu peut être configuré pour autoriser uniquement l’adresse IP de votre service Recherche Azure AI. Si vous enrichissez vos index par IA, vous devez également autoriser toutes les adresses IP dans l’étiquette de service AzureCognitiveSearch.
Vous pouvez choisir de sécuriser vos données sources derrière une liaison privée partagée que vos indexeurs utilisent.
Important
Une liaison privée partagée nécessite soit un niveau de base pour l’indexation basée sur le texte, soit un niveau standard 2 (S2) pour l’indexation basée sur les compétences. Pour plus d’informations sur les tarifs, consultez Tarification Liaison privée Azure.
Sécuriser les données au niveau du document
Vous pouvez configurer la Recherche Azure AI pour restreindre les documents dans lesquels une personne peut lancer des recherches. Par exemple, vous pouvez limiter les recherches dans des PDF contractuels aux personnes de votre service juridique.
Pour contrôler qui a accès au niveau du document, vous devez mettre à jour chaque document dans votre index de recherche. Vous devez ajouter à chaque document un nouveau champ de sécurité contenant les ID de l’utilisateur ou des groupes autorisés à y accéder. Le champ de sécurité doit être filtrable afin que vous puissiez filtrer les résultats de la recherche sur le champ.
Une fois ce champ en place et rempli avec l’utilisateur ou les groupes autorisés, vous pouvez restreindre les résultats en ajoutant le filtre search.in
à toutes vos requêtes de recherche. Si vous utilisez des requêtes HTTP POST, le corps doit ressembler à ceci :
{
"filter":"security_field/any(g:search.in(g, 'user_id1, group_id1, group_id2'))"
}
Les résultats de la recherche retournés sont alors filtrés sur l’ID d’utilisateur et les groupes auxquels appartient cet utilisateur. Si votre application peut utiliser Microsoft Entra ID, vous pouvez utiliser l’identité et les appartenances aux groupes de l’utilisateur.
Conseil
Pour obtenir un guide étape par étape sur l’utilisation de Microsoft Entra ID, consultez Filtres de sécurité pour tronquer les résultats de la Recherche Azure AI avec des identités Active Directory