設定 IP 防火牆規則以允許來自 Azure AI 搜尋服務的索引子連線
搜尋服務會代表索引子向外部 Azure 資源發出輸出呼叫,以在編製索引期間提取資料。 若您的 Azure 資源使用 IP 防火牆規則來篩選傳入呼叫,則您必須在允許索引子要求的防火牆中建立輸入規則。
本文說明如何尋找搜尋服務的 IP 位址,並在 Azure 儲存體帳戶上設定輸入 IP 規則。 儘管這是 Azure 儲存體的特有方法,但也適用於使用 IP 防火牆規則存取資料的其他 Azure 資源,例如 Azure Cosmos DB 和 Azure SQL。
注意
僅適用於 Azure 儲存體。 若您想定義 IP 防火牆規則,您的儲存體帳戶和您的搜尋服務必須位於不同區域中。 如果您的設定不允許執行此動作,請改用信任的服務例外狀況或資源執行個體規則。
針對從索引子到任何支援 Azure 資源的私人連線,建議您設定共用私人連結。 私人連線會在 Microsoft 骨幹網路移動,完全略過公用網際網路。
取得搜尋服務 IP 位址
取得搜尋服務的完整網域名稱 (FQDN)。 這個字串看起來像是
<search-service-name>.search.windows.net
。 您可以在 Azure 入口網站上查閱搜尋服務,藉此找出 FQDN。在命令提示字元上,執行 FQDN 的
nslookup
(或ping
),以查詢搜尋服務的 IP 位址。 請務必從 FQDN 移除https://
前置詞。複製 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 位址]。
取得 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 位址範圍。
使用探索 API 或可下載的 JSON 檔案。 如果搜尋服務是 Azure 公用雲端,請下載 Azure 公用 JSON 檔案。
開啟 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 } },
對於具有「/32」尾碼的 IP 位址,請卸除「/32」(40.91.93.84/32 在規則定義中會變成 40.91.93.84)。 所有其他 IP 位址都可以逐字使用。
複製區域中所有 IP 位址。
將 IP 位址新增至 IP 防火牆規則
現在您已擁有必要的 IP 位址,則可以設定輸入規則。 若要將 IP 位址範圍新增至儲存體帳戶防火牆規則,最簡單的方式便是透過 Azure 入口網站。
在入口網站中找出儲存體帳戶,然後在左側瀏覽窗格中開啟 [網路]。
在 [防火牆與虛擬網路] 索引標籤中,選擇 [選取的網路]。
新增先前在位址範圍中取得的 IP 位址,然後選取 [儲存]。 您應該擁有搜尋服務 Azure 入口網站 (選擇性) 的規則,以及所在區域「AzureCognitiveSearch」服務標籤的所有 IP 位址。
更新防火牆規則可能需要五到十分鐘的時間,待更新完成後,索引子應該就能存取防火牆後方的儲存體帳戶資料。
使用權杖驗證補充網路安全性
防火牆和網路安全性是防止未經授權存取資料和作業的第一個步驟。 授權應該是下一個步驟。
我們建議使用角色型存取,其中 Microsoft Entra ID 使用者和群組會被指派可決定服務讀取和寫入存取權的角色。 如需內建角色的描述和建立自訂角色的指示,請參閱使用角色型存取控制連線到 Azure AI 搜尋服務。
如果您不需要金鑰型驗證,建議您停用 API 金鑰,並獨佔使用角色指派。