Partager via


Rechercher des objets et des informations chiffrés

Dans Azure AI Search, les clés de chiffrement gérées par le client sont créées, stockées et gérées dans Azure Key Vault. Si vous devez déterminer si un objet est chiffré, ou connaître le nom ou la version de la clé utilisée dans Azure Key Vault, utilisez l’API REST ou un SDK Azure pour récupérer la propriétéencryptionKey de la définition de l’objet dans votre service de recherche.

Les objets qui ne sont pas chiffrés avec une clé gérée par le client ont une propriété encryptionkey vide. Dans le cas contraire, vous pouvez voir une définition similaire à l’exemple suivant.

"encryptionKey":{
   "keyVaultUri":"https://demokeyvault.vault.azure.net",
   "keyVaultKeyName":"myEncryptionKey",
   "keyVaultKeyVersion":"eaab6a663d59439ebb95ce2fe7d5f660",
   "accessCredentials":{
      "applicationId":"00000000-0000-0000-0000-000000000000",
      "applicationSecret":"myApplicationSecret"
   }
}

La construction encryptionkey est la même pour tous les objets chiffrés. Il s’agit d’une propriété de premier niveau, sur le même niveau que le nom et la description de l’objet.

Autorisations pour la récupération des définitions d’objets

Vous devez disposer de l’autorisationContributeur de service de recherche ou des autorisations équivalentes. Si vous souhaitez plutôt utiliser l’authentification basée sur des clés vous devez fournir une clé API d’administrateur. Des autorisations administratives sont requises pour les demandes qui renvoient des définitions d’objets et des métadonnées. Le moyen le plus simple d’accéder à la clé d’API d’administration se fait via le portail.

  1. Connectez-vous au portail Azure et ouvrez la page de présentation de votre service de recherche.

  2. Sur le côté gauche, sélectionnez Clés et copiez une API administrateur.

Pour les étapes restantes, basculez vers PowerShell et l’API REST. Le portail n’affiche pas d’informations de clé de chiffrement pour un objet.

Récupérer les propriétés de l'objet

Utilisez PowerShell et REST pour exécuter les commandes suivantes afin de configurer les variables et récupérer les définitions d’objets.

Sinon, vous pouvez également utiliser les Kits de développement logiciel (SDK) Azure pour .NET, Python, JavaScript et Java.

Tout d’abord, connectez-vous à votre compte Azure.

Connect-AzAccount

Si vous disposez de plusieurs abonnements actifs dans votre locataire, indiquez l’abonnement contenant votre service de recherche :

 Set-AzContext -Subscription <your-subscription-ID>

Configurez les en-têtes utilisés sur chaque requête dans la session active. Fournissez la clé API administrateur utilisée pour l’authentification du service de recherche.

$headers = @{
'api-key' = '<YOUR-ADMIN-API-KEY>'
'Content-Type' = 'application/json'
'Accept' = 'application/json' }

Pour retourner une liste de tous les index de recherche, définissez le point de terminaison sur la collection d’index.

$uri= 'https://<YOUR-SEARCH-SERVICE>.search.windows.net/indexes?api-version=2023-11-01&$select=name'
Invoke-RestMethod -Uri $uri -Headers $headers | ConvertTo-Json

Pour retourner une définition d’index spécifique, indiquez son nom dans le chemin d’accès. La propriété encryptionKey se trouve à la fin.

$uri= 'https://<YOUR-SEARCH-SERVICE>.search.windows.net/indexes/<YOUR-INDEX-NAME>?api-version=2023-11-01'
Invoke-RestMethod -Uri $uri -Headers $headers | ConvertTo-Json

Pour retourner des mappages de synonymes, définissez le point de terminaison sur la collection de synonymes, puis envoyez la requête.

$uri= 'https://<YOUR-SEARCH-SERVICE>.search.windows.net/synonyms?api-version=2023-11-01&$select=name'
Invoke-RestMethod -Uri $uri -Headers $headers | ConvertTo-Json

L’exemple suivant retourne une définition de carte synonyme spécifique, y compris la propriété encryptionKey qui se trouve vers la fin de la définition.

$uri= 'https://<YOUR-SEARCH-SERVICE>.search.windows.net/synonyms/<YOUR-SYNONYM-MAP-NAME>?api-version=2023-11-01'
Invoke-RestMethod -Uri $uri -Headers $headers | ConvertTo-Json

Utilisez le même modèle pour retourner la propriété encryptionKey pour d’autres objets de niveau supérieur comme des indexeurs, des ensembles de compétences, des sources de données et des alias d’index.

Étapes suivantes

Nous vous recommandons d’activer la journalisation sur Azure Key Vault afin de pouvoir analyser l’utilisation de la clé.

Pour plus d’informations sur l’utilisation de la clé Azure ou sur la configuration du chiffrement managé par le client :