検索サービスをネットワーク セキュリティ境界に追加する

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

ネットワーク セキュリティ境界は、仮想ネットワークの外部にデプロイするサービスとしてのプラットフォーム (PaaS) リソースを囲む論理ネットワーク境界です。 Microsoft Foundry Models の Azure AI 検索、Azure Storage、Azure OpenAI などのリソースへのパブリック ネットワーク アクセスを制御するための境界を確立します。

この記事では、Azure AI 検索 サービスをネットワーク セキュリティ境界に参加して、検索サービスへのネットワーク アクセスを制御する方法について説明します。 ネットワーク セキュリティ境界に参加すると、次のことができます。

  • 同じ境界内の他の Azure リソースとのコンテキストで、検索サービスへのすべてのアクセスをログします。
  • 検索サービスから境界外の他のサービスへのデータ流出をブロックします。
  • ネットワーク セキュリティ境界の受信および送信アクセス機能を使用して、検索サービスへのアクセスを許可します。

この記事で説明するように、Azure portal で検索サービスをネットワーク セキュリティ境界に追加できます。 または、 Search Management REST API を 使用して、構成設定を表示および同期します。

前提条件

制限事項

Microsoft Foundry リソースへのアウトバウンド アクセス

検索サービスと Microsoft Foundry リソース の両方を含むネットワーク セキュリティ境界は、それらの間の発信呼び出し用のプライベート チャネルを提供します。 境界はリソースとネットワーク レイヤーで動作するため、Foundry リソースを呼び出すすべての検索サービス機能では、次のような同じ許可パスが使用されます。

プライベート チャネルを有効にするには:

  1. 検索サービスと Foundry リソースの両方を、同じネットワーク セキュリティ境界、またはそれらの間の通信を許可する境界に追加します。

  2. 両方のリソースが同じ境界内にあり、検索サービスがマネージド ID を使用して Foundry リソースに対して認証を行う場合、送信規則を追加する必要はありません。 境界内トラフィックは暗黙的に許可されます。 リソースが異なる境界にある場合、または検索サービスが API キーを使用して認証する場合は、Foundry リソースのホスト名を対象とする検索サービスに関連付けられている境界に送信 FQDN アクセス規則を追加します。 構成の Foundry 側に関するガイダンスについては、「Microsoft Foundry をネットワーク セキュリティ境界に追加する」を参照してください。

  3. 次の 2 つの段階でアクセスを検証します。

    1. 境界を学習モードで使用して、Foundry リソースを呼び出すスキルセット、ベクター化クエリ、またはエージェント検索呼び出しを実行します。 境界ログを確認して、予想されるアクセス パスを確認します。

    2. 強制モードに切り替えて、同じ操作を再実行します。 インデクサーの実行履歴と境界の送信許可ログで成功を確認します。

種類が Microsoft.CognitiveServices (Microsoft Foundry) の AIServices リソースに対するネットワーク セキュリティ境界 (NSP) のサポートが一般提供開始されました。 OpenAI (Azure OpenAI Service) の種類のリソースに対する NSP のサポートは、パブリック プレビュー段階です。 現在のサポート一覧については、「 オンボードされたプライベート リンク リソース」を参照してください。

Foundry リソースへの共有プライベート リンクは、代替として引き続きサポートされます。

検索サービスをネットワーク セキュリティ境界に割り当てる

すべてのインデックス作成およびクエリ トラフィックが境界ルールによって制御されるように、検索サービスを境界に関連付けます。

Tip

自動化の場合は、ポータルの代わりに Search Management REST API を 使用します。 詳細については、「 REST API を使用して Azure AI 検索 サービスを管理する」を参照してください

  1. Azure portal で、自分のサブスクリプションのネットワーク セキュリティ境界サービスを見つけます。

  2. 左側のウィンドウで、 設定>関連付けられているリソースを選択します。

    ネットワーク セキュリティ境界の左側のメニューのスクリーンショット。

  3. [追加]>[リソースを既存のプロファイルに関連付ける] を選びます。

    ネットワーク セキュリティ境界のリソース関連付けボタンのスクリーンショット。

  4. [プロファイル] で、ネットワーク セキュリティ境界を作成したときに作成したプロファイルを選びます。

  5. [ 追加] を選択し、検索サービスを選択します。

    ネットワーク セキュリティ境界のリソース関連付けボタンとリソース選択画面のスクリーンショット。

  6. 左下隅にある [ 関連付け ] を選択して関連付けを作成します。

ネットワーク セキュリティ境界から検索サービスを削除する

境界から検索サービスの関連付けを解除するには:

  1. Azure portal でネットワーク セキュリティ境界リソースに移動します。

  2. 左側のウィンドウで、 設定>関連付けられているリソースを選択します。

  3. 表で検索サービスを見つけ、行の末尾にある 3 つのドットを選択し、[ 関連付けの削除] を選択します。

  4. 削除を確認します。 関連付けが削除されると、境界ルールは検索サービスに適用されなくなり、検索サービスの publicNetworkAccess 設定によって受信トラフィックが再び制御されます。

ネットワーク セキュリティ境界のアクセス モード

ネットワーク セキュリティ境界では、関連付けられたリソースに対して 2 つの異なるアクセス モードがサポートされています。

Mode Description
学習モード これが既定のアクセス モードです。 学習モードでは、ネットワーク セキュリティ境界は、境界が強制モードの場合に拒否される検索サービスへのすべてのトラフィックをログに記録します。 このアクセス モードを使用すると、ネットワーク管理者は、アクセス規則の適用を実装する前に、検索サービスの既存のアクセス パターンを理解できます。
強制モード 強制モードでは、ネットワーク セキュリティ境界によってログが記録され、アクセス規則によって明示的に許可されていないすべてのトラフィックが拒否されます。

ネットワーク セキュリティ境界と検索サービスのネットワーク設定

publicNetworkAccess 設定は、ネットワーク セキュリティ境界との検索サービスの関連付けを決定します。

  • 学習モードでは、 publicNetworkAccess 設定によってリソースへのパブリック アクセスが制御されます。

  • 適用モードでは、ネットワーク セキュリティ境界規則によって publicNetworkAccess 設定がオーバーライドされます。 たとえば、publicNetworkAccessenabled設定を持つ検索サービスが適用モードのネットワーク セキュリティ境界に関連付けられている場合、検索サービスへのアクセスは引き続きネットワーク セキュリティ境界アクセス規則によって制御されます。

ネットワーク セキュリティ境界のアクセス モードを変更する

  1. Azure portal でネットワーク セキュリティ境界リソースに移動します。

  2. 左側のウィンドウで、 設定>関連付けられているリソースを選択します。

    ネットワーク セキュリティ境界の左側のメニューのスクリーンショット。

  3. テーブルで検索サービスを見つけます。

  4. 行の末尾にある 3 つのドットを選択し、[ アクセス モードの変更] を選択します。

    ネットワーク セキュリティ境界ポータルのアクセス モード変更ボタンのスクリーンショット。

  5. 目的のアクセス モードを選択し、[ 適用] を選択します。

    アクセス モードが表示されているネットワーク セキュリティ境界ポータルのアクセス モード変更ボタンのスクリーンショット。

ネットワーク アクセスのログを有効にする

  1. Azure portal でネットワーク セキュリティ境界リソースに移動します。

  2. 左側のウィンドウで、 監視>Diagnostic 設定を選択します。

    ネットワーク セキュリティ境界ポータルの左側のメニューのスクリーンショット。

  3. [診断設定の追加] を選択します。

  4. diagnostic名には、などの任意の名前を入力します。

  5. [ログ] の下の [allLogs] を選択します。 [allLogs] を選ぶと、ネットワーク セキュリティ境界内のリソースに対するすべてのインバウンドとアウトバウンドのネットワーク アクセスがログされます。

  6. [宛先の詳細] で、[ストレージ アカウントへのアーカイブ] または [Log Analytics ワークスペースへの送信] を選びます。 ストレージ アカウントは、ネットワーク セキュリティ境界と同じリージョンに存在する必要があります。 既存のストレージ アカウントを選択することも、新しいストレージ アカウントを作成することもできます。 Log Analytics ワークスペースは、ネットワーク セキュリティ境界で使われているものとは異なるリージョンでもかまいません。 その他の適用可能な宛先をどれでも選択できます。

    ネットワーク セキュリティ境界ポータルで入力された診断設定のスクリーンショット。

  7. [保存] を選んで診断設定を作成し、ネットワーク アクセスのログを始めます。

  8. ログ記録がアクティブであることを確認するには、検索サービスへのトラフィックを生成します (クエリの実行など)。 約 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 でインバウンド アクセス規則を追加するには:

  1. Azure portal でネットワーク セキュリティ境界リソースに移動します。

  2. 左側のウィンドウで、 設定>Profiles を選択します。

    [プロファイル] が選ばれている左側のメニューのスクリーンショット。

  3. ネットワーク セキュリティ境界で使用しているプロファイルを選択します。

    ネットワーク セキュリティ境界からプロファイルを選んでいるスクリーンショット。

  4. 左側のウィンドウで、[設定]>[送信アクセス規則] を選択します。

    左側のメニューで[受信アクセス規則]が選ばれているスクリーンショット。

  5. [追加] を選択します。

    インバウンド ネットワーク セキュリティ境界アクセス規則の追加ボタンのスクリーンショット。

  6. 次の値を入力または選択します。

    設定 価値
    規則の名前 受信アクセス規則の名前 ( MyInboundAccessRuleなど)。
    ソースの種類 有効な値は 、IP アドレス範囲 または サブスクリプションです
    許可されるソース IP アドレス範囲を選択した場合は、受信アクセスを許可する IP アドレス範囲を CIDR 形式で入力します。 Azure IP 範囲とサービス タグ ファイルをダウンロードします。 [サブスクリプション] を選択した場合は、受信アクセスを許可するサブスクリプションを使用します。
  7. [追加] を選んで、インバウンド アクセス規則を作成します。

    インバウンド ネットワーク セキュリティ境界アクセス規則の追加画面が設定されているスクリーンショット。

  8. ルールを確認するには、テスト プロファイルで関連付けを強制モードに切り替えます。 一致する要求が 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 でアウトバウンド アクセス規則を追加するには:

  1. Azure portal でネットワーク セキュリティ境界リソースに移動します。

  2. 左側のウィンドウで、 設定>Profiles を選択します。

    [プロファイル] オプションが選ばれている左側のメニューのスクリーンショット。

  3. ネットワーク セキュリティ境界で使用しているプロファイルを選択します。

    ネットワーク セキュリティ境界からプロファイルを選んでいるスクリーンショット。

  4. 左側のウィンドウで、 設定>送信アクセス規則を選択します。

    左側のメニューでのアウトバウンド アクセス規則の選択のスクリーンショット。

  5. [追加] を選択します。

    ネットワーク セキュリティ境界でのアウトバウンド アクセス規則の追加のスクリーンショット。

  6. 次の値を入力または選択します。

    設定 価値
    規則の名前 送信アクセス規則の名前 ( MyOutboundAccessRuleなど)。
    変換先の型 FQDN のままにします。
    許可される宛先 アウトバウンドアクセスを許可する FQDN のコンマ区切りの一覧を入力します。
  7. [追加] を選んで、アウトバウンド アクセス規則を作成します。

    オプションが設定されている、ネットワーク セキュリティ境界でのアウトバウンド アクセス規則の追加のスクリーンショット。

  8. ルールを確認するには、テスト プロファイルで関連付けを強制モードに切り替えます。 一致する送信要求が NspPublicOutboundPerimeterRulesAllowed ログ カテゴリに表示されたことを確認します。

ネットワーク セキュリティ境界を経由する接続をテストする

ネットワーク セキュリティ境界を介して接続をテストするには、インターネット接続のあるローカル コンピューターまたは Azure VM 上の Web ブラウザーにアクセスする必要があります。

  1. ネットワーク セキュリティ境界の関連付けを強制モードに変更して、検索サービスへのネットワーク アクセスに対するネットワーク セキュリティ境界要件の適用を始めます。

  2. クライアントを選択します。

    1. ローカル コンピューターの場合は、パブリック IP アドレスを取得します。

    2. Azure VM の場合は、プライベート リンクを使用するか、Azure portal で IP アドレスを見つけます

  3. その IP アドレスの 受信アクセス規則 を作成して、アクセスを許可します。

  4. 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 検索 サービスを管理する」を参照してください