Share via


設定 IP 防火牆規則以允許來自 Azure AI 搜尋服務的索引子連線

搜尋服務會代表索引子向外部 Azure 資源發出輸出呼叫,以在編製索引期間提取資料。 如果您的 Azure 資源使用 IP 防火牆規則來篩選連入呼叫,您必須在防火牆中建立可允許索引器要求的輸入規則。

本文說明如何尋找搜尋服務的 IP 位址,並在 Azure 儲存體帳戶上設定輸入 IP 規則。 儘管這是 Azure 儲存體的特有方法,但也適用於使用 IP 防火牆規則存取資料的其他 Azure 資源,例如 Azure Cosmos DB 和 Azure SQL。

注意

僅適用於 Azure 儲存體。 如果您想要定義IP防火牆規則,您的記憶體帳戶和搜尋服務必須位於不同的區域。 如果您的設定不允許執行此動作,請改用信任的服務例外狀況資源執行個體規則

針對從索引器到任何支援的 Azure 資源的私人連線,建議您設定 共用的私人連結。 私人聯機會移動 Microsoft 骨幹網路,完全略過公用因特網。

取得搜尋服務 IP 位址

  1. 取得搜尋服務的完整網域名稱 (FQDN)。 這個字串看起來像是 <search-service-name>.search.windows.net。 您可以在 Azure 入口網站上查閱搜尋服務,藉此找出 FQDN。

    搜尋服務 [概觀] 頁面的螢幕快照。

  2. 在命令提示字元上,執行 FQDN 的 nslookup (或 ping),以查詢搜尋服務的 IP 位址。 請務必從 FQDN 移除 https:// 前置詞。

  3. 複製 IP 位址,以便在下一個步驟的輸入規則中加以指定。 在下列範例中,您應該複製的 IP 位址是「150.0.0.1」。

    nslookup contoso.search.windows.net
    Server:  server.example.org
    Address:  10.50.10.50
    
    Non-authoritative answer:
    Name:    <name>
    Address:  150.0.0.1
    aliases:  contoso.search.windows.net
    

允許從用戶端 IP 位址存取

將編製索引和查詢要求推送至搜尋服務的用戶端應用程式必須在 IP 範圍內表示。 在 Azure 上,您通常可以藉由 Ping 服務的 FQDN 來判斷 IP 位址 (例如,ping <your-search-service-name>.search.windows.net 會傳回搜尋服務的 IP 位址)。

新增用戶端 IP 位址以允許從目前電腦上的 Azure 入口網站存取服務。 瀏覽至左側瀏覽窗格上的 [網路] 區段。 將 [公用網路存取] 變更至 [選取的網路],然後核取 [防火牆] 底下的 [新增用戶端 IP 位址]

將用戶端 IP 新增至搜尋服務防火牆的螢幕快照

取得 Azure 入口網站 IP 位址

如果您使用入口網站或匯入資料精靈來建立索引子,則也需要入口網站的輸入規則。

若要取得入口網站的 IP 位址,請在 stamp2.ext.search.windows.net 上執行 nslookup (或 ping),這是流量管理員的網域。 針對 nslookup,IP 位址會顯示在回應「非授權的答案」部分。

在下列範例中,您應該複製的 IP 位址是「52.252.175.48」。

$ nslookup stamp2.ext.search.windows.net
Server:  ZenWiFi_ET8-0410
Address:  192.168.50.1

Non-authoritative answer:
Name:    azsyrie.northcentralus.cloudapp.azure.com
Address:  52.252.175.48
Aliases:  stamp2.ext.search.windows.net
          azs-ux-prod.trafficmanager.net
          azspncuux.management.search.windows.net

位於不同區域中的服務會連線至不同的流量管理員。 不論網域名稱為何,從 ping 傳回的 IP 位址都是正確的位址,在您的區域中為 Azure 入口網站定義輸入防火牆規則時,可以使用此 IP 位址。

針對 Ping,要求會逾時,但 IP 位址會顯示在回應中。 例如,在 "Pinging azsyrie.northcentralus.cloudapp.azure.com [52.252.175.48]" 訊息中,IP 位址為 "52.252.175.48"。

取得「AzureCognitiveSearch」服務標籤的 IP 位址

您也需要建立允許來自 多租使用者執行環境的要求的輸入規則。 此環境由 Microsoft 管理,用於卸載可能導致搜尋服務負荷過大的處理中密集型作業。 本節說明如何取得建立此輸入規則所需的 IP 位址範圍。

每個支援 Azure AI 搜尋服務的區域都會定義 IP 位址範圍。 指定完整範圍,以確保源自多租使用者執行環境的要求成功。

您可以從 AzureCognitiveSearch 服務標籤取得此 IP 位址範圍。

  1. 使用探索 API可下載的 JSON 檔案。 如果搜尋服務是 Azure 公用雲端,請下載 Azure 公用 JSON 檔案

  2. 開啟 JSON 檔案並搜尋「AzureCognitiveSearch」。 對於 WestUS2 中的搜尋服務,多租使用者索引器執行環境的 IP 位址如下:

    {
    "name": "AzureCognitiveSearch.WestUS2",
    "id": "AzureCognitiveSearch.WestUS2",
    "properties": {
       "changeNumber": 1,
       "region": "westus2",
       "regionId": 38,
       "platform": "Azure",
       "systemService": "AzureCognitiveSearch",
       "addressPrefixes": [
          "20.42.129.192/26",
          "40.91.93.84/32",
          "40.91.127.116/32",
          "40.91.127.241/32",
          "51.143.104.54/32",
          "51.143.104.90/32",
          "2603:1030:c06:1::180/121"
       ],
       "networkFeatures": null
    }
    },
    
  3. 對於具有「/32」尾碼的 IP 位址,請卸除「/32」(40.91.93.84/32 在規則定義中會變成 40.91.93.84)。 所有其他 IP 位址都可以逐字使用。

  4. 複製區域中所有 IP 位址。

將 IP 位址新增至 IP 防火牆規則

現在您已擁有必要的 IP 位址,則可以設定輸入規則。 若要將 IP 位址範圍新增至儲存體帳戶防火牆規則,最簡單的方式便是透過 Azure 入口網站。

  1. 在入口網站中找出儲存體帳戶,然後在左側瀏覽窗格中開啟 [網路]

  2. [防火牆與虛擬網路] 索引標籤中,選擇 [選取的網路]

    Azure 儲存體 防火牆和虛擬網路頁面的螢幕快照

  3. 新增先前在位址範圍中取得的 IP 位址,然後選取 [儲存]。 您應該擁有搜尋服務 Azure 入口網站 (選擇性) 的規則,以及所在區域「AzureCognitiveSearch」服務標籤的所有 IP 位址。

    頁面IP位址區段的螢幕快照。

更新防火牆規則可能需要五到十分鐘的時間,待更新完成後,索引子應該就能存取防火牆後方的儲存體帳戶資料。

使用令牌驗證補充網路安全性

防火牆和網路安全性是防止未經授權存取數據和作業的第一個步驟。 授權應該是下一個步驟。

我們建議角色型存取,其中 Microsoft Entra ID 使用者和群組會指派給決定服務讀取和寫入存取權的角色。 如需內建角色的描述,以及建立自定義角色的指示,請參閱使用角色型訪問控制 連線 至 Azure AI 搜尋。

如果您不需要金鑰型驗證,建議您停用 API 金鑰,並獨佔使用角色指派。

後續步驟