索引子存取受 Azure 網路安全性保護的內容
如果您的 Azure 資源部署在 Azure 虛擬網路中,此概念文章說明搜尋索引器如何存取受網路安全性保護的內容。 其描述輸出流量模式和索引子執行環境。 其也涵蓋 Azure AI 搜尋服務所支援的網路保護,以及可能會影響安全性策略的因素。 最後,由於 Azure 儲存體 同時用於數據存取和永續性記憶體,本文也涵蓋搜尋和記憶體連線特有的網路考慮。
尋找逐步指示嗎? 請參閱如何設定防火牆規則以允許索引子存取或如何透過私人端點進行輸出連線。
由索引子存取的資源
Azure AI 搜尋服務索引器可以在三種情況下對各種 Azure 資源進行輸出呼叫:
- 在編製索引期間 連線 外部數據源
- 透過包含自定義技能的技能集,將 連線 封裝至外部的程序代碼
- 在技能集執行期間 Azure 儲存體 連線,以快取擴充、儲存偵錯會話狀態,或寫入知識存放區
下表列出索引子可能會在一般執行中存取的所有可能的 Azure 資源類型清單。
資源 | 索引子執行中的用途 |
---|---|
Azure 儲存體 (blob、ADLS Gen 2、檔案、資料表) | 資料來源 |
Azure 儲存體 (blob、資料表) | 技能集 (快取擴充、偵錯工作階段、知識存放區投影) |
Azure Cosmos DB (各種 API) | 資料來源 |
Azure SQL Database | 資料來源 |
Azure 虛擬機器上的 SQL Server | 資料來源 |
SQL 受控執行個體 | 資料來源 |
Azure Functions | 附加至技能集,並用來裝載自訂 Web API 技能 |
注意
索引子也會連線至 Azure AI 服務以取得內建技能。 然而,該連線是透過內部網路進行,而且不受您控制下的任何網路佈建所約束。
索引器會使用下列方法連線到資源:
- 具有認證的公用端點
- 使用 Azure Private Link 的私人端點
- 以信任的服務 連線
- 透過IP尋址 連線
如果您的 Azure 資源位於虛擬網路上,您應該使用私人端點或 IP 位址來承認數據索引器連線。
支援的網路保護
您的 Azure 資源可以使用由 Azure 所提供的任意數目網路隔離機制進行保護。 根據資源和區域,Azure AI 搜尋服務索引子可以透過 IP 防火牆和私人端點進行輸出連線,其受限於下表中所述的限制。
資源 | IP 限制 | 私人端點 |
---|---|---|
Azure 儲存體,用於以文字為基礎的編製索引 (blob、ADLS Gen 2、檔案、資料表) | 僅當儲存體帳戶和搜尋服務位於不同區域時才受支援。 | 支援 |
適用於 AI 擴充的 Azure 儲存體 (快取、偵錯工作階段、知識存放區) | 僅當儲存體帳戶和搜尋服務位於不同區域時才受支援。 | 支援 |
Azure Cosmos DB for NoSQL | 支援 | 支援 |
Azure Cosmos DB for MongoDB | 支援 | 不支援 |
Azure Cosmos DB for Apache Gremlin | 支援 | 不支援 |
Azure SQL Database | 支援 | 支援 |
Azure 虛擬機器上的 SQL Server | 支援 | N/A |
SQL 受控執行個體 | 支援 | N/A |
Azure Functions | 支援 | 支援,僅適用於某些 Azure 函式層 |
索引子執行環境
Azure AI 搜尋服務具有索引子執行環境的概念,其可根據作業的特性最佳化處理。 有兩個環境。 如果您使用IP防火牆來控制 Azure 資源的存取,瞭解執行環境將協助您設定同時包含這兩個環境的IP範圍。
針對任何指定的索引子執行,Azure AI 搜尋服務會判斷執行索引子的最佳環境。 根據指派的工作數目和類型而定,索引器會在兩個環境中的其中一個執行。
執行環境 | 描述 |
---|---|
私用 | 搜尋服務內部。 在私人環境中執行的索引子與同一搜尋服務上的其他編製索引和查詢工作負載共用計算資源。 通常,只有執行以文字為基礎的編製索引 (不需要技能集) 會在此環境中執行。 如果您在索引器與數據之間設定私人連線,這是您唯一可以使用的執行 enriovnment。 |
多租用戶 | 由 Microsoft 管理及保護,不需額外費用。 其不受您控制的任何網路佈建的約束。 此環境可用來卸載計算密集型處理,讓特定於服務的資源可用於常式作業。 資源密集型索引子作業的範例包括附加技能集、處理大型文件或處理大量文件。 |
設定索引子執行的 IP 範圍
本節說明從任一個執行環境承認要求的IP防火牆組態。
如果您的 Azure 資源位於防火牆後方,請設定 輸入規則,以允許來自索引器要求之所有 IP 的索引器連線 。 這包括搜尋服務所使用的IP位址,以及多租用戶環境所使用的IP位址。
若要取得搜尋服務 (和私人執行環境) 的 IP 位址,請使用
nslookup
(或ping
) 以找出搜尋服務的完整網域名稱 (FQDN)。 公用雲端中搜尋服務的 FQDN 會是<service-name>.search.windows.net
。若要取得索引器執行所在的多租用戶環境的IP位址,請使用
AzureCognitiveSearch
服務標籤。Azure 服務標籤 具有每個區域多租用戶環境的已發佈IP位址範圍。 您可以使用探索 API 或可下載的 JSON 檔案來找到這些 IP。 IP 範圍會依區域配置,因此請在啟動前先檢查您的搜尋服務區域。
設定 Azure SQL 的 IP 規則
設定多租用戶環境的IP規則時,某些SQL數據源支援IP位址規格的簡單方法。 您可以建立網路安全性群組規則來指定 AzureCognitiveSearch
服務標籤,而不是列舉規則中的所有 IP 位址。
如果您的資料來源為下列其中一項,您可以指定服務標籤:
請注意,如果您為多租用戶環境 IP 規則指定了服務標籤,您仍然需要私人執行環境(即搜尋服務本身)的明確輸入規則,如 透過 nslookup
取得。
選擇連線方法
搜尋服務無法佈建到特定虛擬網路,以原生方式在虛擬機上執行。 雖然某些 Azure 資源提供 虛擬網路服務端點,但 Azure AI 搜尋不會提供此功能。 您應該規劃實作下列其中一種方法。
方法 | 詳細資料 |
---|---|
保護 Azure 資源的輸入連線 | 在您的 Azure 資源上設定輸入防火牆規則,以允許索引器要求您的數據。 您的防火牆設定應包含多租使用者執行的服務標籤,以及搜尋服務的IP位址。 請參閱 設定防火牆規則以允許索引器存取。 |
Azure AI 搜尋與 Azure 資源之間的私人連線 | 設定搜尋服務專用的共用私人連結,以聯機到您的資源。 連線 會透過內部網路傳輸,並略過公用因特網。 如果您的資源已完全鎖定 (在受保護的虛擬網路上執行,或無法透過公用連線),則私人端點是唯一的選擇。 請參閱 透過私人端點進行輸出連線。 |
透過私人端點的連線必須源自搜尋服務的私人執行環境。
設定 IP 防火牆是免費的。 以 Azure Private Link 為基礎的私人端點會影響計費。 如需詳細資訊,請參閱 Azure Private Link 定價 。
設定網路安全性之後,請追蹤角色指派,以指定哪些使用者和群組具有數據和作業的讀取和寫入許可權。
使用私人端點的考慮
本節會在私人連線選項上縮小。
- 共用的私人連結需要可計費的搜尋服務,其中最低層是以文字為基礎的編製索引的基本層或以技能為基礎的編製索引的標準層 2 (S2)。 如需詳細資訊,請參閱私人端點數目的階層限制。
建立共用私人鏈接之後,搜尋服務一律會針對該特定 Azure 資源的每個索引器連線使用它。 私人連線在內部鎖定並強制執行。 您無法略過公用連線的私人連線。
需要可計費的 Azure Private Link 資源。
要求訂用帳戶擁有者核准私人端點連線。
您必須關閉索引器的多租使用者執行環境。
您可以將索引器的 設定
executionEnvironment
為"Private"
來執行此動作。 此步驟可確保所有索引子執行都僅限於在搜尋服務內佈建的私人環境。 此設定的範圍是索引子,而不是搜尋服務。 如果您想要讓所有索引子透過私人端點連線,則每個索引子都必須具有下列設定:{ "name" : "myindexer", ... other indexer properties "parameters" : { ... other parameters "configuration" : { ... other configuration properties "executionEnvironment": "Private" } } }
一旦您對資源擁有已核准私人端點,索引子會設定為私人嘗試透過針對 Azure 資源建立和核准的私人連結取得存取權。
Azure AI 搜尋會驗證私人端點的呼叫端是否具有適當的角色指派。 例如,如果您要求私人端點連線至具有唯讀權限的儲存體帳戶,將會拒絕此呼叫。
如果未核准私人端點,或如果索引子未使用私人端點連線,您會在索引子執行歷程記錄中找到 transientFailure
錯誤訊息。
使用令牌驗證補充網路安全性
防火牆和網路安全性是防止未經授權存取數據和作業的第一個步驟。 授權應該是下一個步驟。
我們建議角色型存取,其中 Microsoft Entra ID 使用者和群組會指派給決定服務讀取和寫入存取權的角色。 如需內建角色的描述,以及建立自定義角色的指示,請參閱使用角色型訪問控制 連線 至 Azure AI 搜尋。
如果您不需要金鑰型驗證,建議您停用 API 金鑰,並獨佔使用角色指派。
存取受網路保護的儲存體帳戶
搜尋服務會儲存索引和同義字清單。 針對需要儲存體的其他功能,Azure AI 搜尋服務會相依於 Azure 儲存體。 擴充快取、偵錯工作階段和知識存放區屬於此類別。 每個服務的位置,以及儲存體的任何網路保護,都將決定您的資料存取策略。
相同區域服務
在 Azure 儲存體中,透過防火牆存取需要要求源自不同的區域。 如果 Azure 儲存體和 Azure AI 搜尋服務位於相同的區域,您可以透過存取搜尋服務系統身分識別下的資料來略過儲存體帳戶的 IP 限制。
使用系統身分識別支援資料存取有兩個選項:
上述選項相於 Microsoft Entra ID 進行驗證,其表示必須使用 Microsoft Entra 登入進行連線。 目前,只有 Azure AI 搜尋服務系統指派的受控識別支援透過防火牆的同一區域連線。
不同區域中的服務
當搜尋和儲存體位於不同區域時,您可以使用先前提及的選項或設定 IP 規則,以允許來自服務的要求。 根據工作負載,您可能需要設定多個執行環境的規則,如下一節所述。
下一步
現在,您已經熟悉部署在 Azure 虛擬網路中的解決方案的索引子資料存取選項,請檢閱下列任一操作說明文章作為下一個步驟: