注
Azure AI 検索は、Azure ポータル、REST API、およびAzure SDKから使用できます。 また、Foundry IQ は、エンタープライズ コンテンツを、Microsoft Foundry ポータルのエージェントの再利用可能なアクセス許可に対応したナレッジ ベースに変換するマネージド ナレッジ レイヤーです。
ネットワーク セキュリティ境界は、仮想ネットワークの外部にデプロイするサービスとしてのプラットフォーム (PaaS) リソースを囲む論理ネットワーク境界です。 Microsoft Foundry Models の Azure AI 検索、
この記事では、Azure AI 検索 サービスをネットワーク セキュリティ境界に参加して、検索サービスへのネットワーク アクセスを制御する方法について説明します。 ネットワーク セキュリティ境界に参加すると、次のことができます。
- 同じ境界内の他の Azure リソースとのコンテキストで、検索サービスへのすべてのアクセスをログします。
- 検索サービスから境界外の他のサービスへのデータ流出をブロックします。
- ネットワーク セキュリティ境界の受信および送信アクセス機能を使用して、検索サービスへのアクセスを許可します。
この記事で説明するように、Azure portal で検索サービスをネットワーク セキュリティ境界に追加できます。 または、 Search Management REST API を 使用して、構成設定を表示および同期します。
前提条件
既存のネットワーク セキュリティパリメーター。 作成して検索サービスに関連付けることができます。
任意の課金対象レベルで任意のリージョンの Azure AI 検索。
Azure ロールの割り当て: ネットワーク セキュリティ ペリメーターの共同作成者として、ペリメーター (またはそのリソース グループもしくはサブスクリプション) 上で、ペリメーター、プロファイル、アクセス ルール、関連付けを作成、管理します。 検索サービスの共同作成者 (または 共同作成者) が、それを境界に関連付けます。 詳細については、「 ネットワーク セキュリティ境界とは」を参照してください。
インデクサーを使用する場合は、 システム割り当てマネージド ID またはユーザー割り当てマネージド ID を 使用して検索サービスを構成し、各データ ソースに適切なデータ プレーン ロールを割り当てます。
制限事項
現在、インデクサーでサポートされているデータ ソースは、Azure Blob Storage、Azure Cosmos DB for NoSQL、Azure SQL Database に限られます。
データ取得のための Azure PaaS へのインデクサー接続は、主要な境界内ユース ケースです。 その他のトラフィックの場合は、 受信規則と送信規則を構成します。 Microsoft Foundry リソースへの発信呼び出しについては、「Microsoft Foundry リソースへのアウトバウンド アクセス」を参照してください。 共有プライベート リンク は、特定のリソースの種類の代替手段です。
Microsoft Foundry リソースへのアウトバウンド アクセス
検索サービスと Microsoft Foundry リソース の両方を含むネットワーク セキュリティ境界は、それらの間の発信呼び出し用のプライベート チャネルを提供します。 境界はリソースとネットワーク レイヤーで動作するため、Foundry リソースを呼び出すすべての検索サービス機能では、次のような同じ許可パスが使用されます。
Foundry リソースを呼び出すすべてのスキル (Azure OpenAI 埋め込みスキルなど) GenAI プロンプト スキル、Content Understanding スキル、および AI エンリッチメントと課金のためのその他の Foundry リソース スキル。
統合ベクトル化中のクエリ時におけるAzure OpenAI ベクトライザー。
ナレッジ エージェントから Foundry モデルの展開へのエージェント検索の呼び出し。
プライベート チャネルを有効にするには:
検索サービスと Foundry リソースの両方を、同じネットワーク セキュリティ境界、またはそれらの間の通信を許可する境界に追加します。
両方のリソースが同じ境界内にあり、検索サービスがマネージド ID を使用して Foundry リソースに対して認証を行う場合、送信規則を追加する必要はありません。 境界内トラフィックは暗黙的に許可されます。 リソースが異なる境界にある場合、または検索サービスが API キーを使用して認証する場合は、Foundry リソースのホスト名を対象とする検索サービスに関連付けられている境界に送信 FQDN アクセス規則を追加します。 構成の Foundry 側に関するガイダンスについては、「Microsoft Foundry をネットワーク セキュリティ境界に追加する」を参照してください。
次の 2 つの段階でアクセスを検証します。
境界を学習モードで使用して、Foundry リソースを呼び出すスキルセット、ベクター化クエリ、またはエージェント検索呼び出しを実行します。 境界ログを確認して、予想されるアクセス パスを確認します。
強制モードに切り替えて、同じ操作を再実行します。 インデクサーの実行履歴と境界の送信許可ログで成功を確認します。
種類が Microsoft.CognitiveServices (Microsoft Foundry) の AIServices リソースに対するネットワーク セキュリティ境界 (NSP) のサポートが一般提供開始されました。
OpenAI (Azure OpenAI Service) の種類のリソースに対する NSP のサポートは、パブリック プレビュー段階です。 現在のサポート一覧については、「 オンボードされたプライベート リンク リソース」を参照してください。
Foundry リソースへの共有プライベート リンクは、代替として引き続きサポートされます。
検索サービスをネットワーク セキュリティ境界に割り当てる
すべてのインデックス作成およびクエリ トラフィックが境界ルールによって制御されるように、検索サービスを境界に関連付けます。
Tip
自動化の場合は、ポータルの代わりに Search Management REST API を 使用します。 詳細については、「 REST API を使用して Azure AI 検索 サービスを管理する」を参照してください。
Azure portal で、自分のサブスクリプションのネットワーク セキュリティ境界サービスを見つけます。
左側のウィンドウで、 設定>関連付けられているリソースを選択します。
[追加]>[リソースを既存のプロファイルに関連付ける] を選びます。
[プロファイル] で、ネットワーク セキュリティ境界を作成したときに作成したプロファイルを選びます。
[ 追加] を選択し、検索サービスを選択します。
左下隅にある [ 関連付け ] を選択して関連付けを作成します。
ネットワーク セキュリティ境界から検索サービスを削除する
境界から検索サービスの関連付けを解除するには:
Azure portal でネットワーク セキュリティ境界リソースに移動します。
左側のウィンドウで、 設定>関連付けられているリソースを選択します。
表で検索サービスを見つけ、行の末尾にある 3 つのドットを選択し、[ 関連付けの削除] を選択します。
削除を確認します。 関連付けが削除されると、境界ルールは検索サービスに適用されなくなり、検索サービスの
publicNetworkAccess設定によって受信トラフィックが再び制御されます。
ネットワーク セキュリティ境界のアクセス モード
ネットワーク セキュリティ境界では、関連付けられたリソースに対して 2 つの異なるアクセス モードがサポートされています。
| Mode | Description |
|---|---|
| 学習モード | これが既定のアクセス モードです。 学習モードでは、ネットワーク セキュリティ境界は、境界が強制モードの場合に拒否される検索サービスへのすべてのトラフィックをログに記録します。 このアクセス モードを使用すると、ネットワーク管理者は、アクセス規則の適用を実装する前に、検索サービスの既存のアクセス パターンを理解できます。 |
| 強制モード | 強制モードでは、ネットワーク セキュリティ境界によってログが記録され、アクセス規則によって明示的に許可されていないすべてのトラフィックが拒否されます。 |
ネットワーク セキュリティ境界と検索サービスのネットワーク設定
publicNetworkAccess 設定は、ネットワーク セキュリティ境界との検索サービスの関連付けを決定します。
学習モードでは、
publicNetworkAccess設定によってリソースへのパブリック アクセスが制御されます。適用モードでは、ネットワーク セキュリティ境界規則によって
publicNetworkAccess設定がオーバーライドされます。 たとえば、publicNetworkAccessのenabled設定を持つ検索サービスが適用モードのネットワーク セキュリティ境界に関連付けられている場合、検索サービスへのアクセスは引き続きネットワーク セキュリティ境界アクセス規則によって制御されます。
ネットワーク セキュリティ境界のアクセス モードを変更する
Azure portal でネットワーク セキュリティ境界リソースに移動します。
左側のウィンドウで、 設定>関連付けられているリソースを選択します。
テーブルで検索サービスを見つけます。
行の末尾にある 3 つのドットを選択し、[ アクセス モードの変更] を選択します。
目的のアクセス モードを選択し、[ 適用] を選択します。
ネットワーク アクセスのログを有効にする
Azure portal でネットワーク セキュリティ境界リソースに移動します。
左側のウィンドウで、 監視>Diagnostic 設定を選択します。
[診断設定の追加] を選択します。
diagnostic名には、などの任意の名前を入力します。[ログ] の下の [allLogs] を選択します。 [allLogs] を選ぶと、ネットワーク セキュリティ境界内のリソースに対するすべてのインバウンドとアウトバウンドのネットワーク アクセスがログされます。
[宛先の詳細] で、[ストレージ アカウントへのアーカイブ] または [Log Analytics ワークスペースへの送信] を選びます。 ストレージ アカウントは、ネットワーク セキュリティ境界と同じリージョンに存在する必要があります。 既存のストレージ アカウントを選択することも、新しいストレージ アカウントを作成することもできます。 Log Analytics ワークスペースは、ネットワーク セキュリティ境界で使われているものとは異なるリージョンでもかまいません。 その他の適用可能な宛先をどれでも選択できます。
[保存] を選んで診断設定を作成し、ネットワーク アクセスのログを始めます。
ログ記録がアクティブであることを確認するには、検索サービスへのトラフィックを生成します (クエリの実行など)。 約 10 分以内に、Log Analyticsの
NSPAccessLogsテーブルに対してクエリを実行するか、ストレージ アカウント内の対応するinsights-logs-*コンテナーを確認します。
ネットワーク アクセス ログの読み取り
ネットワーク セキュリティ境界ログは、[ 診断設定] で選択した宛先に配信されます。 最も一般的な宛先は、Log Analytics ワークスペースとストレージ アカウントです。
Log Analytics ワークスペース
NSPAccessLogs テーブルには、NspPublicInboundPerimeterRulesAllowedなど、すべてのログ カテゴリのすべてのログが含まれています。 各ログには、ログ カテゴリに一致するネットワーク セキュリティ境界ネットワーク アクセスのレコードが含まれています。
NspPublicInboundPerimeterRulesAllowed ログ形式の例を次に示します。
| 列名 | 意味 | 値の例 |
|---|---|---|
| 結果の説明 | ネットワーク アクセス操作の名前。 | POST /indexes/my-index/docs/search |
| プロファイル | 検索サービスが関連付けられたネットワーク セキュリティ境界。 | デフォルトプロファイル |
| ServiceResourceId | 検索サービスのリソース ID。 | search-service-resource-id |
| 一致した規則 | ログが一致したルールの JSON の説明。 | { "accessRule": "IP firewall" } |
| 送信元IPアドレス | 受信ネットワーク アクセスのソース IP (該当する場合)。 | 192.0.2.1 |
| AccessRuleVersion | ネットワーク アクセス規則を適用するために使用されるネットワーク セキュリティ境界アクセス規則のバージョン。 | 0 |
ストレージ アカウント
ストレージ アカウントには、 insights-logs-nsppublicinboundperimeterrulesallowedなど、すべてのログ カテゴリのコンテナーがあります。 コンテナー内のフォルダー構造は、ネットワーク セキュリティ境界のリソース ID およびログが取得された時刻と一致します。 JSON ログ ファイルの各行には、ログ カテゴリと一致するネットワーク セキュリティ境界のネットワーク アクセスの記録が含まれます。
たとえば、インバウンド境界規則の許可カテゴリ ログでは、次の形式が使われます。
"properties": {
"ServiceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/network-security-perimeter/providers/Microsoft.Search/searchServices/network-security-perimeter-search",
"Profile": "defaultProfile",
"MatchedRule": {
"AccessRule": "myaccessrule"
},
"Source": {
"IpAddress": "192.0.2.1",
}
}
検索サービスに対するアクセス規則を追加する
ネットワーク セキュリティ境界プロファイルでは、境界経由のアクセスを許可または拒否する規則を指定します。
境界内では、すべてのリソースがネットワーク レベルで相互にアクセスできます。 それでも認証と認可を設定する必要がありますが、ネットワーク レベルでは、境界の内部からの接続要求は受け入れられます。
ネットワーク セキュリティ境界の外部にあるリソースの場合は、インバウンドとアウトバウンドのアクセス規則を指定する必要があります。 インバウンド規則では、入ることを許可する接続を指定し、アウトバウンド規則では、出ることを許可する要求を指定します。
検索サービスは、Microsoft Foundry ポータルやインデックス作成またはクエリ要求を送信するすべてのアプリからの受信要求を受け入れます。 検索サービスは、インデクサー ベースのインデックス作成とスキルセットの実行の間にアウトバウンド要求を送信します。 このセクションでは、Azure AI 検索 のシナリオでインバウンドとアウトバウンドのアクセス規則を設定する方法について説明します。
注
検索サービスがマネージド ID と Microsoft Entra ベースの role 割り当て を使用して認証を行うと、同じネットワーク セキュリティ境界内のリソース間のトラフィックがネットワーク レベルで暗黙的に許可されます。 検索サービスが API キーを使用して認証を行う場合、境界はトラフィックを境界内として識別できないため、両方のリソースが同じ境界内にある場合でも、明示的な受信および送信アクセス規則を追加する必要があります。
インバウンド アクセス規則を追加する
インバウンド アクセス規則では、インターネットおよび境界の外部のリソースが、境界の内部のリソースと接続するのを許可できます。
ネットワーク セキュリティ境界では、2 種類のインバウンド アクセス規則がサポートされています。
IP アドレス範囲。 IP アドレスまたは範囲は、クラスレス ドメイン間ルーティング (CIDR) 形式である必要があります。 192.0.2.0/24 は CIDR 表記の例であり、これは 192.0.2.0 から 192.0.2.255 の範囲の IP を表します。 この種類の規則では、範囲内の任意の IP アドレスからのインバウンド要求が許可されます。
サブスクリプション。 この種類の規則では、サブスクリプションのマネージド ID を使用して認証された受信アクセスが許可されます。 ルールはネットワーク パスのみを制御します。呼び出し元には、検索サービスでAzure RBAC ロールの割り当てが必要です。
Azure portal でインバウンド アクセス規則を追加するには:
Azure portal でネットワーク セキュリティ境界リソースに移動します。
左側のウィンドウで、 設定>Profiles を選択します。
ネットワーク セキュリティ境界で使用しているプロファイルを選択します。
左側のウィンドウで、[設定]>[送信アクセス規則] を選択します。
[追加] を選択します。
次の値を入力または選択します。
設定 価値 規則の名前 受信アクセス規則の名前 ( MyInboundAccessRuleなど)。ソースの種類 有効な値は 、IP アドレス範囲 または サブスクリプションです。 許可されるソース IP アドレス範囲を選択した場合は、受信アクセスを許可する IP アドレス範囲を CIDR 形式で入力します。 Azure IP 範囲とサービス タグ ファイルをダウンロードします。 [サブスクリプション] を選択した場合は、受信アクセスを許可するサブスクリプションを使用します。 [追加] を選んで、インバウンド アクセス規則を作成します。
ルールを確認するには、テスト プロファイルで関連付けを強制モードに切り替えます。 一致する要求が
NspPublicInboundPerimeterRulesAllowedログ カテゴリに表示され、一致しない要求がNspPublicInboundPerimeterRulesDeniedカテゴリに表示されたことを確認します。
アウトバウンド アクセス規則を追加する
検索サービスは、インデクサー ベースのインデックス作成とスキルセットの実行の間にアウトバウンド呼び出しを行います。 インデクサー のデータ ソース、Foundry Tools の課金スキル、またはカスタム スキル ロジック用の接続Microsoft Foundry リソースがネットワーク セキュリティ境界外にある場合は、検索サービスが接続を確立できるようにする送信アクセス規則を作成します。
セキュリティ境界内では、インデクサーはAzure Blob Storage、NoSQLのAzure Cosmos DB、およびAzure SQL Databaseに接続できます。 インデクサーが他のデータ ソースを使う場合は、その接続をサポートするためのアウトバウンド アクセス規則が必要です。
ネットワーク セキュリティ境界は、宛先の完全修飾ドメイン名 (FQDN) に基づく送信アクセス規則をサポートします。 たとえば、ネットワーク セキュリティ境界に関連付けられているサービスから FQDN (mystorageaccount.blob.core.windows.netなど) へのアウトバウンド アクセスを許可できます。
Azure portal でアウトバウンド アクセス規則を追加するには:
Azure portal でネットワーク セキュリティ境界リソースに移動します。
左側のウィンドウで、 設定>Profiles を選択します。
ネットワーク セキュリティ境界で使用しているプロファイルを選択します。
左側のウィンドウで、 設定>送信アクセス規則を選択します。
[追加] を選択します。
次の値を入力または選択します。
設定 価値 規則の名前 送信アクセス規則の名前 ( MyOutboundAccessRuleなど)。変換先の型 FQDN のままにします。 許可される宛先 アウトバウンドアクセスを許可する FQDN のコンマ区切りの一覧を入力します。 [追加] を選んで、アウトバウンド アクセス規則を作成します。
ルールを確認するには、テスト プロファイルで関連付けを強制モードに切り替えます。 一致する送信要求が
NspPublicOutboundPerimeterRulesAllowedログ カテゴリに表示されたことを確認します。
ネットワーク セキュリティ境界を経由する接続をテストする
ネットワーク セキュリティ境界を介して接続をテストするには、インターネット接続のあるローカル コンピューターまたは Azure VM 上の Web ブラウザーにアクセスする必要があります。
ネットワーク セキュリティ境界の関連付けを強制モードに変更して、検索サービスへのネットワーク アクセスに対するネットワーク セキュリティ境界要件の適用を始めます。
クライアントを選択します。
ローカル コンピューターの場合は、パブリック IP アドレスを取得します。
Azure VM の場合は、プライベート リンクを使用するか、Azure portal で IP アドレスを見つけます。
その IP アドレスの 受信アクセス規則 を作成して、アクセスを許可します。
Azure ポータルで、検索サービスを開き、そのインデックスを表示します。
予想される成功: インデックス一覧が読み込まれるので、テスト クエリを実行できます。 受信 IP 規則が機能しています。
403 または "パブリック ネットワーク アクセスが無効です" というエラーが表示された場合: クライアント IP または Azure ポータルは受信規則の対象になりません。 受信アクセス規則を確認します。
一般的な問題のトラブルシューティング
| 症状: | 考えられる原因 | 緩和策 |
|---|---|---|
| インデクサーは、強制モードに切り替えた後に失敗します。 | 検索サービスの ID にはデータ ソースに対するデータ プレーン ロールがないか、データ ソースがその境界内ではサポートされていません。 | 検索サービスが マネージド ID を 使用し、データ ソースに必要なロールがあることを確認します。 サポートされていないデータ ソースの場合は、 送信アクセス規則を追加します。 |
| Foundry リソースに対するスキル、ベクター化機能、またはエージェント型取得の呼び出しは拒否されます。 | Foundry リソースが別の境界にあるか、検索サービスが API キーを使用して認証されるため、チャネルは暗黙的ではありません。 | 両方のリソースを同じ境界に追加し、マネージド ID を使用するか、Foundry リソースのホスト名を対象とする送信 FQDN 規則を追加します。 詳細については、Microsoft Foundry リソースへの送信アクセスを参照してください。 |
| 診断ログは、Log Analyticsまたはストレージに表示されません。 | インジェストの待機時間、またはストレージ アカウントが境界と同じリージョンにありません。 | トラフィックを生成してから最大 10 分待ってから、 NSPAccessLogs テーブルに対してクエリを実行するか、一致する insights-logs-* ストレージ コンテナーを確認します。 ストレージ アカウントのリージョンを確認します。 |
| 検索サービスへのポータル アクセスは、適用後に拒否されます。 | クライアント IP は受信規則の対象になりません。 | クライアント IP の 受信アクセス規則 を追加するか、構成の完了時に学習モードに戻します。 |
ネットワーク セキュリティ境界の構成を表示して管理する
ネットワーク セキュリティ境界構成 REST API を使用して、検索サービスの境界構成を確認および調整します。
たとえば、検索サービスの現在の境界構成を一覧表示します。
az rest --method get \
--url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service-name>/networkSecurityPerimeterConfigurations?api-version=2025-05-01"
構成が境界と同期していない場合は、リコンサイルをトリガーします。
az rest --method post \
--url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service-name>/networkSecurityPerimeterConfigurations/<association-name>/reconcile?api-version=2025-05-01"
最新の安定バージョンの Search Management REST API を使用します。 詳細については、「 REST API を使用して Azure AI 検索 サービスを管理する」を参照してください。