ネットワーク セキュリティ境界は、仮想ネットワークの外部にデプロイされるサービスとしてのプラットフォーム (PaaS) リソースを囲む論理ネットワーク境界です。 Azure AI Search、 Azure Storage、 Azure OpenAI などのリソースへのパブリック ネットワーク アクセスを制御するための境界が確立されます。
この記事では、Azure AI 検索サービスをネットワーク セキュリティ境界に参加させて、検索サービスへのネットワーク アクセスを制御する方法を説明します。 ネットワーク セキュリティ境界に参加すると、次のことができます。
- 同じ境界内の他の Azure リソースとのコンテキストで、検索サービスへのすべてのアクセスをログします。
- 検索サービスから境界外の他のサービスへのデータ流出をブロックします。
- ネットワーク セキュリティ境界のインバウンドとアウトバウンドのアクセス機能を使って、検索サービスへのアクセスを許可します。
この記事で説明するように、Azure portal で検索サービスをネットワーク セキュリティ境界に追加できます。 または、Azure Virtual Network Manager REST API を使って検索サービスを参加させ、Search Management REST API を使って構成設定を表示および同期することもできます。
前提条件
既存のネットワーク セキュリティパリメーター。 作成して検索サービスに関連付けることができます。
任意の課金対象レベルで任意のリージョンの Azure AI 検索。
制限事項
ネットワーク セキュリティ境界内の検索サービスの場合、インデクサーはシステムまたはユーザー割り当てのマネージド ID を使う必要があり、データ ソースへの読み取りアクセスを許可するロールの割り当てを持っている必要があります。
現在、インデクサーでサポートされているデータ ソースは、Azure Blob Storage、Azure Cosmos DB for NoSQL、Azure SQL Database に限られます。
現在、境界内では、データ取得のための Azure PaaS へのインデクサー接続が主なユース ケースです。 Foundry Tools、Azure OpenAI、または Microsoft Foundry モデル カタログへの送信スキルドリブン API 呼び出し、または "データとのチャット" シナリオの Foundry からの受信呼び出しの場合は、境界を介して要求を許可するように 受信規則と送信規則を構成 する必要があります。 構造対応のチャンキングとベクトル化のためにプライベート接続が必要な場合は、プライベート ネットワークと共有プライベート リンクを作成する必要があります。
検索サービスをネットワーク セキュリティ境界に割り当てる
Azure ネットワーク セキュリティ境界を使うと、管理者は、仮想ネットワークの外部にデプロイされた PaaS リソース (Azure Storage や Azure SQL Database など) に対して論理ネットワーク分離境界を定義できます。 それは境界内のリソースへの通信を制限し、インバウンドとアウトバウンドのアクセス規則を通じて境界以外のパブリック トラフィックを許可します。
Azure AI 検索をネットワーク セキュリティ境界に追加して、インデックス作成とクエリのすべての要求がセキュリティ境界内で行われるようにすることができます。
Azure portal で、自分のサブスクリプションのネットワーク セキュリティ境界サービスを見つけます。
左側のウィンドウで、 設定>関連付けられているリソースを選択します。
[追加]>[リソースを既存のプロファイルに関連付ける] を選びます。
[プロファイル] で、ネットワーク セキュリティ境界を作成したときに作成したプロファイルを選びます。
[ 追加] を選択し、検索サービスを選択します。
左下隅にある [ 関連付け ] を選択して関連付けを作成します。
ネットワーク セキュリティ境界のアクセス モード
ネットワーク セキュリティ境界では、関連付けられたリソースに対して 2 つの異なるアクセス モードがサポートされています。
| モード | 説明 |
|---|---|
| 学習モード | これが既定のアクセス モードです。 "学習" モードのネットワーク セキュリティ境界は、境界が強制モードであったとしたら拒否されていた、検索サービスへのすべてのトラフィックをログします。 これにより、ネットワーク管理者は、アクセス規則の適用を実装する前に、検索サービスの既存のアクセス パターンを理解できます。 |
| 強制モード | "強制" モードのネットワーク セキュリティ境界は、アクセス規則によって明示的に許可されていないすべてのトラフィックをログして拒否します。 |
ネットワーク セキュリティ境界と検索サービスのネットワーク設定
publicNetworkAccess 設定は、ネットワーク セキュリティ境界との検索サービスの関連付けを決定します。
学習モードでは、
publicNetworkAccess設定によってリソースへのパブリック アクセスが制御されます。強制モードでは、
publicNetworkAccess設定はネットワーク セキュリティ境界の規則によってオーバーライドされます。 たとえば、publicNetworkAccess設定がenabledである検索サービスが強制モードでネットワーク セキュリティ境界に関連付けられている場合、検索サービスへのアクセスは、やはりネットワーク セキュリティ境界アクセスの規則によって制御されます。
ネットワーク セキュリティ境界のアクセス モードを変更する
Azure portal でネットワーク セキュリティ境界リソースに移動します。
左側のウィンドウで、 設定>関連付けられているリソースを選択します。
テーブルで検索サービスを見つけます。
行の末尾にある 3 つのドットを選択し、[ アクセス モードの変更] を選択します。
目的のアクセス モードを選択し、[ 適用] を選択します。
ネットワーク アクセスのログを有効にする
Azure portal でネットワーク セキュリティ境界リソースに移動します。
左側のウィンドウで、 監視>Diagnostic 設定を選択します。
[診断設定の追加] を選択します。
診断設定名には、任意の名前 ("診断" など) を入力します。
[ログ] の下の [allLogs] を選択します。 [allLogs] を選ぶと、ネットワーク セキュリティ境界内のリソースに対するすべてのインバウンドとアウトバウンドのネットワーク アクセスがログされます。
[宛先の詳細] で、[ストレージ アカウントへのアーカイブ] または [Log Analytics ワークスペースへの送信] を選びます。 ストレージ アカウントは、ネットワーク セキュリティ境界と同じリージョンに存在する必要があります。 既存のストレージ アカウントを選択することも、新しいストレージ アカウントを作成することもできます。 Log Analytics ワークスペースは、ネットワーク セキュリティ境界で使われているものとは異なるリージョンでもかまいません。 その他の適用可能な宛先をどれでも選択できます。
[保存] を選んで診断設定を作成し、ネットワーク アクセスのログを始めます。
ネットワーク アクセス ログの読み取り
Log Analytics ワークスペース
network-security-perimeterAccessLogs テーブルには、すべてのログ カテゴリのすべてのログが含まれています (network-security-perimeterPublicInboundResourceRulesAllowed など)。 すべてのログには、ログ カテゴリと一致するネットワーク セキュリティ境界のネットワーク アクセスの記録が含まれます。
network-security-perimeterPublicInboundResourceRulesAllowed ログ形式の例を次に示します。
| 列名 | 意味 | サンプル値 |
|---|---|---|
| 結果の説明 | ネットワーク アクセス操作の名前 | POST /indexes/my-index/docs/search |
| プロファイル | 検索サービスが関連付けられたネットワーク セキュリティ境界 | デフォルトプロファイル |
| ServiceResourceId | 検索サービスのリソース ID | search-service-resource-id |
| 一致した規則 | ログで一致した規則の JSON の説明 | { "accessRule": "IP firewall" } |
| 送信元IPアドレス | インバウンド ネットワーク アクセスのソース IP (該当する場合) | 1.1.1.1 |
| AccessRuleVersion | ネットワーク アクセス規則を強制するために使われた network-security-perimeter アクセス規則のバージョン | 0 |
ストレージ アカウント
ストレージ アカウントには、すべてのログ カテゴリに対してコンテナーがあります (たとえば、insights-logs-network-security-perimeterpublicinboundperimeterrulesallowed)。 コンテナー内のフォルダー構造は、ネットワーク セキュリティ境界のリソース 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": "255.255.255.255",
}
}
検索サービスに対するアクセス規則を追加する
ネットワーク セキュリティ境界プロファイルでは、境界経由のアクセスを許可または拒否する規則を指定します。
境界内では、すべてのリソースがネットワーク レベルで相互にアクセスできます。 それでも認証と認可を設定する必要がありますが、ネットワーク レベルでは、境界の内部からの接続要求は受け入れられます。
ネットワーク セキュリティ境界の外部にあるリソースの場合は、インバウンドとアウトバウンドのアクセス規則を指定する必要があります。 インバウンド規則では、入ることを許可する接続を指定し、アウトバウンド規則では、出ることを許可する要求を指定します。
検索サービスは、 Foundry ポータル、Azure Machine Learning プロンプト フロー、インデックス作成またはクエリ要求を送信するすべてのアプリからの受信要求を受け入れます。 検索サービスは、インデクサー ベースのインデックス作成とスキルセットの実行の間にアウトバウンド要求を送信します。 このセクションでは、Azure AI Search のシナリオでインバウンドとアウトバウンドのアクセス規則を設定する方法について説明します。
注
ネットワーク セキュリティ境界に関連付けられているすべてのサービスは、同じネットワーク セキュリティ境界に関連付けられている他のサービスへのインバウンドとアウトバウンドのアクセスが、マネージド ID とロールの割り当てを使って認証されたときは、そのアクセスを暗黙的に許可します。 ネットワーク セキュリティ境界の外部のアクセスを許可するとき、または API キーを使って認証されたアクセスに対してのみ、アクセス規則を作成する必要があります。
インバウンド アクセス規則を追加する
インバウンド アクセス規則では、インターネットおよび境界の外部のリソースが、境界の内部のリソースと接続するのを許可できます。
ネットワーク セキュリティ境界では、2 種類のインバウンド アクセス規則がサポートされています。
IP アドレス範囲。 IP アドレスまたは範囲は、クラスレス ドメイン間ルーティング (CIDR) 形式である必要があります。 192.0.2.0/24 は CIDR 表記の例であり、これは 192.0.2.0 から 192.0.2.255 の範囲の IP を表します。 この種類の規則では、範囲内の任意の IP アドレスからのインバウンド要求が許可されます。
サブスクリプション。 この種類の規則では、サブスクリプションからの任意のマネージド ID を使って認証されたインバウンド アクセスが許可されます。
Azure portal でインバウンド アクセス規則を追加するには:
Azure portal でネットワーク セキュリティ境界リソースに移動します。
左側のウィンドウで、 設定>Profiles を選択します。
ネットワーク セキュリティ境界で使用しているプロファイルを選択します。
左側のウィンドウで、[設定]>[送信アクセス規則] を選択します。
[追加] を選択します。
次の値を入力または選択します。
設定 価値 規則の名前 受信アクセス規則の名前 ("MyInboundAccessRule" など)。 ソースの種類 有効な値は 、IP アドレス範囲 または サブスクリプションです。 許可されるソース IP アドレス範囲を選択した場合は、受信アクセスを許可する IP アドレス範囲を CIDR 形式で入力します。 Azure の IP 範囲は、こちらのリンクでわかります。 [サブスクリプション] を選択した場合は、受信アクセスを許可するサブスクリプションを使用します。 [追加] を選んで、インバウンド アクセス規則を作成します。
アウトバウンド アクセス規則を追加する
検索サービスは、インデクサー ベースのインデックス作成とスキルセットの実行の間にアウトバウンド呼び出しを行います。 インデクサーのデータ ソース、Foundry Tools、またはカスタム スキル ロジックがネットワーク セキュリティ境界の外部にある場合は、検索サービスが接続できるようにする送信アクセス規則を作成する必要があります。
パブリック プレビューでは、Azure AI 検索はセキュリティ境界内の Azure Storage または Azure Cosmos DB にのみ接続できることを思い出してください。 インデクサーが他のデータ ソースを使う場合は、その接続をサポートするためのアウトバウンド アクセス規則が必要です。
ネットワーク セキュリティ境界は、アクセス先の完全修飾ドメイン名 (FQDN) に基づいてアウトバウンド アクセス規則をサポートします。 たとえば、ネットワーク セキュリティ境界に関連付けられているサービスから FQDN (mystorageaccount.blob.core.windows.netなど) へのアウトバウンド アクセスを許可できます。
Azure portal でアウトバウンド アクセス規則を追加するには:
Azure portal でネットワーク セキュリティ境界リソースに移動します。
左側のウィンドウで、 設定>Profiles を選択します。
ネットワーク セキュリティ境界で使っているプロファイルを選びます
左側のウィンドウで、 設定>送信アクセス規則を選択します。
[追加] を選択します。
次の値を入力または選択します。
設定 価値 規則の名前 送信アクセス規則の名前には "MyOutboundAccessRule" のようなものがあります。 変換先の型 FQDN のままにします。 許可される宛先 アウトバウンドアクセスを許可する FQDN のコンマ区切りの一覧を入力します。 [追加] を選んで、アウトバウンド アクセス規則を作成します。
ネットワーク セキュリティ境界を経由する接続をテストする
ネットワーク セキュリティ境界を経由する接続をテストするには、インターネットに接続できるローカル コンピューターまたは Azure VM で、Web ブラウザーにアクセスする必要があります。
ネットワーク セキュリティ境界の関連付けを強制モードに変更して、検索サービスへのネットワーク アクセスに対するネットワーク セキュリティ境界要件の適用を始めます。
ローカル コンピューターまたは Azure VM のどちらを使うかを決めます。
- ローカル コンピューターを使っている場合は、自分のパブリック IP アドレスを知っている必要があります。
- Azure VM をお使いの場合は、プライベート リンクを使うこと、またはAzure portal を使って IP アドレスを調べることができます。
IP アドレスを使うと、その IP アドレスのアクセスを許可するインバウンド アクセス規則を作成できます。 プライベート リンクを使っている場合は、このステップを省略できます。
最後に、Azure portal で検索サービスに移動してみます。 インデックスを問題なく表示できる場合、ネットワーク セキュリティ境界は正しく構成されています。
ネットワーク セキュリティ境界の構成を表示して管理する
ネットワーク セキュリティ境界構成 REST API を使用して、境界の構成の確認と調整を行うことができます。
最新の安定した REST API バージョンである 2025-05-01を使用してください。
Search Management REST API を呼び出す方法について説明します。