將搜尋服務新增至網路安全界限

附註

Azure AI 搜尋服務 可透過 Azure 入口網站、REST API 及 Azure SDK 取得。 它同時也是 Foundry IQ 的基礎,這是一個管理式知識層,能將企業內容轉化為可重複使用、權限感知的知識庫,供 Microsoft Foundry 入口網站中的代理使用。

網路安全邊界是圍繞你部署在虛擬網路外部的平台即服務(PaaS)資源的邏輯網路邊界。 它建立周界,用來控制公用網路對 Azure AI 搜尋服務、Azure 儲存體 和 Microsoft Foundry Models 中的 Azure OpenAI 等資源的存取。

本文說明如何將 Azure AI 搜尋服務 服務加入網路安全邊界,以控制對搜尋服務的網路存取。 藉由加入網路安全界限,您可以:

  • 記錄您搜尋服務以及相同界限內其他 Azure 資源的所有存取。
  • 封鎖從搜尋服務外流至周邊外部其他服務的任何資料外流。
  • 利用網路安全邊界的進出存取能力,允許存取您的搜尋服務。

您可以在 Azure 入口網站中將搜尋服務新增至網路安全界限,如本文所述。 或者,您也可以使用 搜尋管理 REST API 來檢視並同步設定設定。

先決條件

局限性

對 Microsoft Foundry 資源的外撥存取

一個包含你的搜尋服務和 Microsoft Foundry 資源的網路安全邊界,提供一個私有通道用於兩者之間的外撥通話。 由於邊界在資源層與網路層運作,所有呼叫 Foundry 資源的搜尋服務功能都使用相同的允許路徑,包括:

啟用私人頻道:

  1. 將你的搜尋服務和 Foundry 資源都加入同一個網路安全邊界,或是允許它們之間通訊的邊界。

  2. 如果兩個資源都位於相同的周邊範圍內,且搜尋服務使用受控識別向 Foundry 資源進行驗證,則不需要新增出站規則。 邊界內流量是隱含允許的。 如果資源分布在不同的邊界,或搜尋服務使用 API 金鑰進行驗證,請在與搜尋服務相關的邊界上加入一條針對 Foundry 資源主機名稱的外發 FQDN 存取規則。 如需 Foundry 端設定的相關指引,請參閱 將 Microsoft Foundry 新增至網路安全界限。

  3. 驗證存取權分為兩個階段:

    1. 在界限處於學習模式時,執行會調用 Foundry 資源的技能集、向量化工具查詢或代理式擷取呼叫。 查看周邊日誌以確認預期的進入路徑。

    2. 切換到強制模式並重複執行相同的操作。 確認索引子執行歷程記錄和界限傳出允許記錄中皆顯示成功。

針對種類為 Microsoft.CognitiveServices 的 AIServices 資源,網路安全界限 (NSP) 支援已正式發行。 對於類型為 OpenAI(Azure OpenAI 服務)的資源,NSP 支援目前為公開預覽版。 有關目前的支援名單,請參見 「入門私人連結資源」。

與 Foundry 資源的共享私有連結仍被支援作為替代方案。

將搜尋服務指派給網路安全界限

將你的搜尋服務與邊界連結,讓所有索引和查詢流量都受邊界規則所規範。

Tip

自動化方面,請使用 搜尋管理 REST API 代替入口網站。 欲了解更多資訊,請參閱 「使用 REST API 管理您的 Azure AI 搜尋服務」。

  1. 在 Azure 入口網站中,尋找訂用帳戶的網路安全界限服務。

  2. 從左窗格中選擇設定>相關資源。

    網路安全界限左側功能表的螢幕擷取畫面。

  3. 選取 [新增]>[將資源與現有設定檔建立關聯]。

    網路安全界限建立關聯資源按鈕的螢幕擷取畫面。

  4. 選取您為 [設定檔] 建立網路安全界限時所建立的設定檔。

  5. 選取 [新增],然後選取您的搜尋服務。

    網路安全界限建立關聯資源按鈕與選取資源畫面的螢幕擷取畫面。

  6. 選取左下角的 關聯 來建立關聯。

將搜尋服務從網路安全邊界移除

要將搜尋服務與邊界分離:

  1. 在 Azure 入口網站中瀏覽至網路安全界限資源。

  2. 從左窗格中選擇設定>相關資源。

  3. 在表格中找到你的搜尋服務,選擇列尾的三個點,然後選擇 「移除關聯」。

  4. 確認刪除。 關聯被移除後,邊界規則不再適用於搜尋服務,搜尋 publicNetworkAccess 服務的設定再次控制入站流量。

網路安全界限存取模式

網路安全界限支援相關聯資源兩種不同的存取模式:

Mode Description
學習模式 這是預設存取模式。 在學習模式中,網路安全界限會記錄所有傳至搜尋服務的流量,這些流量如果在強制模式中會遭到拒絕。 此存取模式讓網路管理員在實施存取規則執行前,能了解搜尋服務現有的存取模式。
強制模式 在強制模式下,網路安全邊界會記錄並拒絕所有未被存取規則明確允許的流量。

網路安全界限和搜尋服務網路設定

publicNetworkAccess 設定會決定搜尋服務與網路安全界限的關聯。

  • 在學習模式下,publicNetworkAccess 設定控制資源的公共存取。

  • 在強制模式下,網路安全邊界規則會覆蓋設定。publicNetworkAccess 例如,若一個設定為 publicNetworkAccess 的 enabled 搜尋服務在強制模式下與網路安全邊界相關聯,對該搜尋服務的存取仍受網路安全邊界存取規則控制。

變更網路安全界限存取模式

  1. 在 Azure 入口網站中瀏覽至網路安全界限資源。

  2. 從左窗格中選擇設定>相關資源。

    網路安全界限左側功能表的螢幕擷取畫面。

  3. 在資料表中尋找您的搜尋服務。

  4. 選取資料列結尾的三個點,然後選取 [ 變更存取模式]。

    在網路安全界限入口網站中變更存取模式按鈕的螢幕擷取畫面。

  5. 選取您想要的存取模式,然後選取 [套用]。

    網路安全界限入口網站中 [變更存取模式] 按鈕的螢幕擷取畫面,其中顯示了存取模式。

啟用記錄網路存取

  1. 在 Azure 入口網站中瀏覽至網路安全界限資源。

  2. 從左窗格中,選取 [監視>診斷設定]。

    網路安全界限入口網站中左側功能表的螢幕擷取畫面。

  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
設定檔 搜尋服務所關聯的網路安全邊界。 defaultProfile
ServiceResourceId 搜尋服務的資源識別碼。 search-service-resource-id
相符的規則 日誌符合的規則的 JSON 描述。 { "accessRule": "IP firewall" }
來源IP位址 如適用,請提供入站網路存取的來源 IP。 192.0.2.1
AccessRuleVersion 用於執行網路存取規則的網路安全邊界存取規則版本。 0

記憶體帳戶

儲存帳號為每個日誌類別提供容器,例如 insights-logs-nsppublicinboundperimeterrulesallowed。 容器內的資料夾結構符合網路安全界限的資源識別碼,以及記錄的取得時間。 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 搜尋服務案例的輸入和輸出存取規則。

附註

當搜尋服務使用管理身份及基於Microsoft Entra的角色指派進行認證時,同一網路安全邊界內資源間的流量在網路層級上是隱含允許的。 如果搜尋服務用 API 金鑰認證,邊界無法將流量識別為邊界內,因此即使兩個資源在同一邊界內,也必須新增明確的進出存取規則。

新增輸入存取規則

輸入存取規則可允許界限外的網際網路和資源與界限內的資源連線。

網路安全界限支援兩種類型的輸入存取規則:

  • IP 位址範圍。 IP 位址或範圍必須是無類別網域間路由選擇 (CIDR) 格式。 CIDR 標記法的範例是 192.0.2.0/24,其代表範圍從 192.0.2.0 到 192.0.2.255 的 IP。 這種類型的規則允許來自範圍內任何 IP 位址的輸入要求。

  • 訂用帳戶。 這種規則允許透過訂閱中的任何管理身份來驗證入站存取。 該規則僅控制網路路徑;來電者仍需在搜尋服務中指派 Azure RBAC 角色。

若要在 Azure 入口網站中新增輸入存取規則:

  1. 在 Azure 入口網站中瀏覽至網路安全界限資源。

  2. 從左窗格中,選取 [設定>設定檔]。

    左側功能表的螢幕擷取畫面,其中已選取設定檔。

  3. 選取您搭配網路安全界限使用的設定檔。

    從網路安全界限選取設定檔的螢幕擷取畫面。

  4. 從左窗格中,選取 設定>入口存取規則。

    左側功能表的螢幕擷取畫面,其中已選取輸入存取規則。

  5. 選取 [新增]。

    新增輸入網路安全界限存取規則按鈕的螢幕擷取畫面。

  6. 輸入或選取下列值:

    設定 值
    規則名稱 入站存取規則的名稱,例如 MyInboundAccessRule。
    來源類型 有效值為 IP 位址範圍 或 訂閱。
    允許的來源 如果您選取IP 地址範圍,請以 CIDR 格式輸入允許從中存取的 IP 地址範圍。 下載 Azure IP 範圍與服務標籤檔案。 如果您選取 [訂閱],請使用您要允許入站訪問的訂閱。
  7. 選取 [新增] 以建立輸入存取規則。

    已填入輸入網路安全界限存取規則畫面的螢幕擷取畫面。

  8. 要驗證規則,請在測試設定檔中將關聯切換為強制模式。 確認匹配請求會出現在 NspPublicInboundPerimeterRulesAllowed 日誌類別,非匹配請求則出現在分類 NspPublicInboundPerimeterRulesDenied 中。

新增輸出存取規則

搜尋服務會在索引子型編製索引和技能執行期間進行輸出呼叫。 如果你的索引器資料來源、附帶的 Microsoft Foundry 資源(Foundry Tools 計費技能,或自訂技能邏輯位於網路安全邊界之外,請建立一個出站存取規則,讓你的搜尋服務能夠建立連結。

在安全邊界內,索引器可以連接 Azure Blob 儲存體、Azure Cosmos DB for NoSQL 以及 Azure SQL Database。 如果您的索引子使用其他資料來源,您需要輸出存取規則來支援該連線。

網路安全邊界支援基於目的地的完全限定網域名稱(FQDN)的外發存取規則。 例如,您可以允許與網路安全界限相關聯的任何服務對 FQDN 的輸出存取,例如 mystorageaccount.blob.core.windows.net。

若要在 Azure 入口網站中新增輸出存取規則:

  1. 在 Azure 入口網站中瀏覽至網路安全界限資源。

  2. 從左窗格中,選取 [設定>設定檔]。

    左側功能表的螢幕擷取畫面,其中已選取設定檔選項。

  3. 選取您搭配網路安全界限使用的設定檔。

    從網路安全界限選取設定檔的螢幕擷取畫面。

  4. 從左窗格中,選取 設定> 輸出存取規則。

    在左側功能表中選取輸出存取規則的螢幕擷取畫面。

  5. 選取 [新增]。

    在網路安全界限中新增輸出存取規則的螢幕擷取畫面。

  6. 輸入或選取下列值:

    設定 值
    規則名稱 出站存取規則的名稱,例如 MyOutboundAccessRule。
    目的地類型 保留為 FQDN。
    允許的目的地 輸入您要允許輸出存取的 FQDN 的逗號分隔清單。
  7. 選取 [新增] 以建立輸出存取規則。

    使用已填入的選項在網路安全界限中新增輸出存取規則的螢幕擷取畫面。

  8. 要驗證規則,請在測試設定檔中將關聯切換為強制模式。 確認對應的外撥請求會出現在 NspPublicOutboundPerimeterRulesAllowed 日誌分類中。

透過網路安全界限測試您的連線

若要透過網路安全性周邊測試連線,您需要在具有因特網連線或 Azure VM 的本機電腦上存取網頁瀏覽器。

  1. 將網路安全界限關聯變更為強制模式,以開始強制執行網路安全界限需求,以透過網路存取您的搜尋服務。

  2. 選擇用戶端

    1. 對於本地電腦,請取得你的公共 IP 位址。

    2. 對於Azure虛擬機,請使用 private link或 在Azure入口網站找到 IP 位址。

  3. 為該 IP 位址建立一個入 站存取規則 ,允許存取。

  4. 在 Azure 入口網站中,打開你的搜尋服務並查看其索引。

    • 預期成功: 索引清單載入後,你可以執行測試查詢。 入站 IP 規則是有效的。

    • 如果你看到 403 或「公共網路存取被停用」錯誤:你的客戶端 IP 或 Azure 入口不受入站規則保護。 請查看 入站存取規則。

排除常見問題

癥狀 可能的原因 緩和措施
索引器切換到強制模式後失敗。 搜尋服務身分識別在資料來源上缺少資料平面角色,或界限內不支援該資料來源。 確認搜尋服務是否使用 管理身份 ,並在資料來源上擁有所需的角色。 對於不受支援的資料來源,請新增 輸出存取規則。
對 Foundry 資源的技能、向量化工具或代理式擷取呼叫遭到拒絕。 Foundry 資源位於不同的邊界,或者搜尋服務用 API 金鑰進行認證,所以通道不是隱含的。 將兩個資源加入同一個邊界並使用管理身份,或新增一個針對 Foundry 資源主機名稱的外發 FQDN 規則。 欲了解更多資訊,請參閱 Microsoft Foundry 資源外站存取。
診斷日誌不會出現在 Log Analytics 或 Storage。 擷取延遲,或儲存體帳戶不在與界限相同的區域。 產生流量後等待最多 10 分鐘,然後查詢 NSPAccessLogs 資料表或檢查匹配的 insights-logs-* 儲存容器。 確認儲存帳戶的區域。
強制實施後,將無法透過入口網站存取搜尋服務。 你的客戶端 IP 不受任何入站規則保護。 為你的客戶端 IP 新增一個入 站存取規則 ,或在完成設定時回到學習模式。

檢視和管理網路安全界限設定

使用 Network Security Perimeter Configuration 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"

請使用最新穩定版的搜尋管理 REST API。 欲了解更多資訊,請參閱 「使用 REST API 管理您的 Azure AI 搜尋服務」。