マネージド ID を使用してAzure Storageに接続する (Azure AI 検索)

メモ

Azure AI 検索は、Azure ポータル、REST API、およびAzure SDKから使用できます。 また、Foundry IQ は、エンタープライズ コンテンツを、Microsoft Foundry ポータルのエージェントの再利用可能なアクセス許可に対応したナレッジ ベースに変換するマネージド ナレッジ レイヤーです。

この記事では、接続文字列で資格情報を指定するのではなく、マネージド ID を使用してAzure Storage アカウントへの検索サービス接続を構成する方法について説明します。

システム割り当てマネージド ID またはユーザー割り当てマネージド ID を使用できます。 マネージド ID はログインMicrosoft Entraであり、Azure Storageへのアクセスにはロールの割り当てが必要です。

前提 条件

メモ

ストレージがネットワークで保護され、検索サービスと同じリージョンにある場合は、システム割り当てマネージド ID と、 信頼されたサービスとして接続するか、 リソース インスタンス ルールを使用して接続するかのいずれかのネットワーク オプションを使用する必要があります。

Azure Storageでロールの割り当てを作成する

  1. Azure ポータルにサインインし、ストレージ アカウントを見つけます。

  2. [アクセス制御 (IAM)] を選択します。

  3. [ 追加] を選択し、[ ロールの割り当て] を選択します。

  4. ジョブ機能ロールの一覧から、検索サービスに必要なロールを選択します。

    タスク ロールの割り当て
    インデクサーを使用した BLOB インデックス作成 ストレージ BLOB データ リーダーを追加
    インデクサーを使用した ADLS Gen2 インデックス作成 ストレージ BLOB データ リーダーを追加
    インデクサーを使用したテーブルインデックス作成 ストレージ テーブル データ リーダーを追加
    インデクサーを使用したファイル インデックス作成 閲覧者とデータ アクセスを追加
    ナレッジ ストアに書き込む オブジェクトとファイルのプロジェクション用に ストレージ BLOB データ共同作成者 を追加し、テーブル プロジェクション用に Reader と Data Access を追加します。
    エンリッチメント キャッシュへの書き込み (プレビュー) ストレージ BLOB データ共同作成者と、ストレージ テーブル データ共同作成者を追加
    デバッグ セッションの状態を保存する ストレージ BLOB データ共同作成者を追加
  5. [ 次へ] を選択します。

  6. [ マネージド ID] を 選択し、[メンバー] を選択 します。

  7. システム割り当てマネージド ID またはユーザー割り当てマネージド ID でフィルター処理します。 以前に検索サービス用に作成したマネージド ID が表示されます。 お持ちでない場合は、「 マネージド ID を使用するように検索を構成する」を参照してください。 既に設定しているが使用できない場合は、数分待ちます。

  8. ID を選択し、ロールの割り当てを保存します。

接続文字列でマネージド ID を指定する

ロールの割り当てを完了したら、そのロールの下で動作するAzure Storageへの接続を設定できます。

インデクサーは 、外部データ ソースへの接続にデータ ソース オブジェクトを使用します。 このセクションでは、データ ソース 接続文字列でシステム割り当てマネージド ID またはユーザー割り当てマネージド ID を指定する方法について説明します。 その他の接続文字列例については、マネージド ID に関する記事を参照してください。

ヒント

Azure ポータルでAzure Storageへのデータ ソース接続を作成し、システムまたはユーザー割り当てマネージド ID のいずれかを指定し、JSON 定義を表示して、接続文字列がどのように作成されているかを確認できます。

システムによって割り当てられたマネージド ID

システム割り当てマネージド ID が既に構成されており、Azure Storageにロールの割り当てが必要です。

システム割り当てマネージド ID を使用して行われた接続の場合、 データ ソース定義 に対する唯一の変更は、 credentials プロパティの形式です。

ResourceIdを含む接続文字列を、アカウント キーまたはパスワードなしで指定します。 ResourceIdには、ストレージ アカウントのサブスクリプション ID、ストレージ アカウントのリソース グループ、ストレージ アカウント名を含める必要があります。

POST https://[service name].search.windows.net/datasources?api-version=2026-04-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>" 
    }
}   

ユーザー割り当てマネージド ID

ユーザー割り当てマネージド ID が既に構成され検索サービスに関連付けられている必要があり、ID にはAzure Storageに対するロールの割り当てが必要です。

ユーザー割り当てマネージド ID を介して行われる接続では、システム割り当てマネージド ID と同じ資格情報と、ユーザー割り当てマネージド ID のコレクションを含む追加の ID プロパティが使用されます。 データ ソースの作成時に指定する必要があるユーザー割り当てマネージド ID は 1 つだけです。

ResourceIdを含む接続文字列を、アカウント キーまたはパスワードなしで指定します。 ResourceIdには、ストレージ アカウントのサブスクリプション ID、ストレージ アカウントのリソース グループ、ストレージ アカウント名を含める必要があります。

次の例に示す構文を使用して、 identity を指定します。 userAssignedIdentityをユーザー割り当てマネージド ID に設定します。

POST https://[service name].search.windows.net/datasources?api-version=2026-04-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" 
    }
}   

リモート サービスの接続情報とアクセス許可は、インデクサーの実行中に実行時に検証されます。 インデクサーが成功した場合、接続構文とロールの割り当ては有効です。 詳細については、「 インデクサー、スキル、またはドキュメントを実行またはリセットする」を参照してください。

ストレージ アカウント内のネットワークで保護されたデータへのアクセス

Azureストレージ アカウントは、ファイアウォールと仮想ネットワークを使用してさらにセキュリティ保護できます。 ストレージ アカウントがファイアウォールまたは仮想ネットワークで保護されている場合、そのコンテンツをインデックス化する方法については、Azure Storage に対するインデクサー接続を信頼されたサービスとして設定する を参照してください。

関連項目