暗号化されたオブジェクトと情報を検索する

Azure AI 検索では、カスタマー マネージド暗号化キーが作成、格納、およびAzure Key Vaultで管理されます。 オブジェクトが暗号化されているかどうか、またはAzure Key Vaultで使用されるキー名またはバージョンを確認する必要がある場合は、REST API またはAzure SDKを使用して、検索サービスのオブジェクト定義から encryptionKey プロパティを取得します。

カスタマー マネージド キーで暗号化されていないオブジェクトは、encryptionKey プロパティが空になります。 それ以外の場合、定義は次の例のようになります。

"encryptionKey":{
   "keyVaultUri":"https://demokeyvault.vault.azure.net",
   "keyVaultKeyName":"myEncryptionKey",
   "keyVaultKeyVersion":"eaab6a663d59439ebb95ce2fe7d5f660",
   "accessCredentials":{
      "applicationId":"00001111-aaaa-2222-bbbb-3333cccc4444",
      "applicationSecret":"myApplicationSecret"
   }
}

encryptionKey のコンストラクトは、暗号化されたすべてのオブジェクトで共通です。 オブジェクトの名前や説明と同じ第 1 レベルのプロパティとなります。

オブジェクト定義を取得するためのアクセス許可

Search Service Contributor またはそれと同等のアクセス許可が必要です。 代わりにキーベースの認証を使用するには、管理者 API キーを指定します。 オブジェクト定義とメタデータを返す要求には、管理者アクセス許可が必要です。 管理 API キーを取得する最も簡単な方法は、Azure ポータルを使用することです。

  1. Azure ポータルで検索サービスに移動します。

  2. 左側で [キー] を選択し、管理 API をコピーします。

残りの手順では、PowerShell と REST API に切り替えます。 Azure ポータルには、オブジェクトの暗号化キー情報は表示されません。

オブジェクトのプロパティを取得する

PowerShell と REST から次のコマンドを実行して、変数を設定し、オブジェクトの定義を取得します。

または、.NETPythonJavaScript、および Java のAzure SDKを使用することもできます。

まず、Azure アカウントに接続します。

Connect-AzAccount

テナントに複数のアクティブなサブスクリプションがある場合は、検索サービスを含むサブスクリプションを指定します:

 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.windows.net/indexes?api-version=2025-09-01&$select=name'
Invoke-RestMethod -Uri $uri -Headers $headers | ConvertTo-Json

特定のインデックス定義を返すには、パスにその名前を指定します。 encryptionKey プロパティは末尾にあります。

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

シノニム マップを返すには、エンドポイントをシノニム コレクションに設定し、要求を送信します。

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

次の例では、定義の末尾の方にある encryptionKey プロパティを含む特定のシノニム マップ定義を返します。

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

同じパターンを使用して、インデクサー、スキルセット、データ ソース、インデックスの別名などの他の最上位オブジェクトの encryptionKey プロパティを返します。

次のステップ

Azure Key Vault でログ記録を有効にすることをお勧めします。それにより、キーの使用状況を監視できます。

Azure キーの使用またはカスタマー マネージド暗号化の構成の詳細については、以下を参照してください。