查找加密的对象和信息

在 Azure AI 搜索中,需在 Azure Key Vault 中创建、存储和管理客户管理的加密密钥。 如需确定对象是否经过加密或者 Azure Key Vault 中使用的密钥名称或版本,可以使用 REST API 或 Azure SDK 从搜索服务的对象定义中检索 encryptionKey 属性。

未使用客户管理的密钥加密的对象具有空的 encryptionKey 属性。 否则,你可能会看到类似于以下示例的定义。

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

所有加密对象的 encryptionKey 构造都是相同的。 它是第一级属性,与对象名称和说明处于同一级别。

检索对象定义的权限

你必须具有搜索服务参与者或等效权限。 若要改用基于密钥的身份验证,请提供管理员 API 密钥。 返回对象定义和元数据的请求需要管理员权限。 获取管理 API 密钥的最简单的方法是通过门户获取。

  1. 登录到 Azure 门户,然后打开搜索服务概览页面。

  2. 在左侧,选择“密钥”并复制管理 API。

为完成剩余步骤,请切换到 PowerShell 和 REST API。 门户不会显示任何对象的加密密钥信息。

检索对象属性

使用 PowerShell 和 REST 运行以下命令来设置变量及获取对象定义。

或者,你也可以使用适用于 .NETPythonJavaScriptJava 的 Azure SDK。

首先,连接到 Azure 帐户。

Connect-AzAccount -Environment AzureChinaCloud

如果租户中有多个活动订阅,请指定包含你的搜索服务的订阅:

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

设置当前会话中每个请求上使用的标头。 提供用于搜索服务身份验证的管理 API 密钥。

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

若要返回所有搜索索引的列表,请将终结点设置为索引集合。

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

若要返回特定的索引定义,请提供路径中的名称。 encryptionKey 属性位于末尾。

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

若要返回同义词映射,请将终结点设置为同义词集合,然后发送请求。

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

以下示例返回了特定的同义词映射定义,包括定义末尾的 encryptionKey 属性。

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

使用相同的模式返回其他顶级对象(例如索引器、技能组、数据源和索引别名)的 encryptionKey 属性。

后续步骤

建议在 Azure Key Vault 上启用日志记录,以便监视密钥使用情况。

若要详细了解如何使用 Azure 密钥或配置客户管理的加密,请参阅以下文章: