索引子存取受 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 | 資料來源 |
OneLake (Microsoft Fabric) | 資料來源 |
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 搜尋服務會判斷執行索引子的最佳環境。 根據指派的工作數目和類型而定,索引器會在兩個環境中的其中一個執行/
執行環境 | 描述 |
---|---|
私用 | 搜尋服務的內部。 在私人環境中執行的索引子與同一搜尋服務上的其他編製索引和查詢工作負載共用計算資源。 如果您在索引器與數據之間設定私人連線,例如共用的私人連結,這是唯一可以使用的執行環境,而且會自動使用它。 |
多租用戶 | 由 Microsoft 管理及保護,無需額外費用。 其不受您控制的任何網路佈建的約束。 此環境可用來卸載計算密集型處理,讓特定於服務的資源可用於常式作業。 大量資源索引器作業的範例包括技能集、處理大型檔,或處理大量檔。 |
針對 Standard2 服務和更新版本,您可以設定索引器以一律使用私人環境。 不過,技能集處理一律會在多租用戶環境中執行,即使您將搜尋服務設定為使用私人環境也一樣。 如需索引器組態的詳細資訊,請參閱 建立索引器。
設定索引子執行的 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 虛擬網路中的解決方案的索引子資料存取選項,請檢閱下列任一操作說明文章作為下一個步驟: