共用方式為


Azure AI 搜尋中的安全性

Azure AI 搜尋服務提供跨網路存取、資料存取和資料保護的全方位安全性控制,以符合企業需求。 身為解決方案架構師,您應該了解三個關鍵安全性網域:

  • 網路流量模式和網路安全性:輸入、輸出和內部流量。
  • 存取控制機制:具有角色的 API 金鑰或 Microsoft Entra ID。
  • 資料落地和保護:在傳輸中加密、在使用中搭配選用機密運算,以及在待用時搭配選用雙重加密。

搜尋服務支援多種網路安全拓撲,從用於基本保護的 IP 防火牆限制,到實現完整網路隔離的私人端點。 或者,使用網路安全界限,在 Azure PaaS 資源周圍建立邏輯界限。 對於需要精細權限的企業案例,您可以實作文件層級存取控制。 所有安全性功能都與 Azure 的合規性架構整合,並支援常見的企業模式,例如使用受控識別進行多租使用者和跨服務驗證。

本文詳細說明每個安全性層的實作選項,以協助您為開發和生產環境設計適當的安全性架構。

網路流量模式

Azure AI 搜尋服務可以裝載在 Azure 公用雲端、Azure 私人雲端或主權雲端 (例如 Azure Government) 中。 根據預設,針對所有雲端主機,搜尋服務通常由用戶端應用程式透過公用網路連線存取。 雖然這是主要的模式,但並非唯一需要注意的流量模式。 了解所有進入點和輸出流量,是保護開發和生產環境的必備背景知識。

Azure AI 搜尋服務有三種基本網路流量模式:

  • 使用者或用戶端對搜尋服務提出的輸入要求 (主要模式)
  • 搜尋服務對 Azure 等位置上其他服務發出的輸出要求
  • 透過安全 Microsoft 骨幹網路的內部服務對服務要求

輸入流量

以搜尋服務端點為目標的輸入要求包括:

  • 在搜尋服務上建立、讀取、更新或刪除索引和其他物件
  • 透過搜尋文件載入索引
  • 查詢索引
  • 執行索引子或技能組作業

REST API 描述搜尋服務所處理的完整輸入要求範圍。

至少必須使用下列其中一個選項來驗證所有輸入要求:

  • 金鑰型驗證 (預設)。 輸入要求提供有效的 API 金鑰。
  • 角色型存取控制。 授權是透過您的搜尋服務上的 Microsoft Entra 身分識別和角色指派進行的。

此外,您可以新增網路安全功能,以進一步限制端點的存取。 您可以在 IP 防火牆中建立輸入規則或建立私人端點,讓您的搜尋服務完全不受公用網際網路威脅。

輸出流量

輸出要求可以受到您的保護和管理。 這些外部請求是由搜尋服務發起並傳送至其他應用程式。 這些要求通常由索引子發出,用於以文字為基礎和多模式編製索引、以自訂技能為基礎的 AI 豐富化,以及查詢時的向量化處理。 輸出要求包括讀取和寫入作業。

下列清單是您可以為其設定安全連線的輸出要求的完整列舉。 搜尋服務可代表其本身,以及索引子或自訂技能提出要求。

Operation Scenario
Indexers 連線到外部資料來源以擷取資料 (讀取存取)。 如需詳細資訊,請參閱索引子存取受 Azure 網路安全性保護的內容
Indexers 連線到 Azure 儲存體以將作業寫入到知識存放區快取的豐富化偵錯工作階段
自訂技能 連線到 Azure 函式、Azure Web 應用程式或執行服務之外裝載的外部程式碼的其他應用程式。 外部處理的要求會在技能集執行期間傳送。
索引子和整合向量化 連線到 Azure OpenAI 和已部署的內嵌模型,或透過自訂技能連線到您所提供的內嵌模型。 搜尋服務會在編製索引期間將文字傳送至內嵌模型以進行向量化處理。
Vectorizers 在查詢時連線到 Azure OpenAI 或其他內嵌模型,將使用者文字字串轉換成向量以進行向量搜尋。
知識庫 連線到聊天完成模型以進行 Agent 擷取查詢規劃,並根據搜尋結果制定答案。

如果您要實作基本 RAG 模式,您的查詢邏輯會呼叫外部聊天完成模型,以根據搜尋結果制定答案。 針對此模式,與模型的連線會使用用戶端或使用者的身分識別。 搜尋服務身分識別不會用於連線。 相反地,如果您在 RAG 擷取模式中使用知識庫,則輸出要求是由搜尋服務受控識別提出。

搜尋服務 連線到 Azure Key Vault,以取得用於加密和解密敏感性資料的客戶管理的加密金鑰

輸出連線通常可以使用資源的完整存取連接字串 (包括金鑰或資料庫登入) 或受控識別 (如果您使用的是 Microsoft Entra ID 和角色型存取) 來建立。

若要存取防火牆後面的 Azure 資源,請在允許搜尋服務要求的其他 Azure 資源上建立輸入規則

若要存取受 Azure Private Link 保護的 Azure 資源,請建立共用私人連結以讓索引子用來建立其連線。

相同區域搜尋和儲存體服務的例外狀況

如果 Azure 儲存體和 Azure AI 搜尋服務位於相同的區域,網路流量會透過私人 IP 位址路由傳送,並透過 Microsoft 骨幹網路進行。 由於使用私人 IP 位址,因此您無法針對網路安全性設定 IP 防火牆或私人端點。

使用下列其中一種方法設定相同區域連線:

內部流量

內部要求會受到 Microsoft 保護和管理。 您無法設定或控制這些連線。 如果您要鎖定網路存取,則不需要採取任何動作,因為客戶無法設定內部流量。

內部流量包含:

  • 服務之間的呼叫可用於處理各類任務,例如透過 Microsoft Entra ID 進行驗證和授權、記錄資源以供 Azure Monitor 監控,以及利用 Azure Private Link 進行的私人端點連線
  • 內建技能處理的要求,同區域的要求會導向至內部裝載的 Microsoft Foundry 資源,這些資源專門用於 Azure AI 搜尋服務的內建技能處理。
  • 對支援 語意排名的各種模型提出要求。

網路安全性

網路安全性會控制網路流量,以防止有人未經授權存取或攻擊資源。 Azure AI 搜尋服務所支援的網路功能,可成為抵禦未經授權存取的第一道防線。

透過 IP 防火牆的輸入連線

搜尋服務會佈建公用端點,以允許使用公用 IP 位址進行存取。 若要限制可通過公用端點的流量,請建立輸入防火牆規則,以允許來自特定 IP 位址或 IP 位址範圍的要求。 所有用戶端連線都必須透過允許的 IP 位址進行,否則連線會遭到拒絕。

IP 限制存取的範例架構圖表

您可以使用 Azure 入口網站 來設定防火牆存取

或者,您可以使用管理 REST API。 從 API 2020-03-13 版開始,您可以使用 IpRule 參數來識別要授與搜尋服務存取權的 IP 位址 (個別或範圍),藉此限制服務的存取權。

到私人端點的輸入連線(網路隔離,無網際網路流量)

如需更嚴格的安全性,您可以為 Azure AI 搜尋服務建立私人端點,讓虛擬網路上的用戶端透過 Private Link 安全地存取搜尋索引中的資料。

私人端點會使用來自虛擬網路位址空間的 IP 位址,連線至您的搜尋服務。 用戶端和搜尋服務之間的網路流量會經過 Microsoft 骨幹網路上的虛擬網路和私人連結,避免暴露在公開網際網路中。 虛擬網路可讓您保護資源之間、內部部署網路和網際網路的通訊。

私人端點存取的範例架構圖表

雖然此解決方案最安全,不過使用更多服務會產生額外成本,因此在採用前,請務必先清楚了解優點。 如需成本的詳細資訊,請參閱定價頁面。 如需這些元件如何一起運作的詳細資訊,請觀看這段影片。 私人端點選項的涵蓋範圍從影片的 5:48 開始。 如需如何設定端點的指示,請參閱建立 Azure AI 搜尋服務的私人端點

網路安全界限

網路安全界限是部署於虛擬網路之外的平台即服務 (PaaS) 資源周圍的邏輯網路邊界。 它會建立一個周邊,以控制對 Azure AI 搜尋、Azure 記憶體和 Azure OpenAI 等資源的公用網路存取。 您可以透過輸入和輸出流量的明確存取規則來授與例外狀況。 此方法有助於防止資料外流,同時維護應用程式所需的連線。

入站用戶端連線和服務間連線會在邊界內發生,這可簡化並強化您的防禦措施,以防止未經授權的存取。 Azure AI 搜尋服務解決方案通常會使用多個 Azure 資源。 下列資源都可以加入現有的網路安全邊界:

如需合格服務的完整清單,請參閱 上線的私人鏈接資源

Authentication

在要求獲准進入搜尋服務後,仍然必須經過驗證和授權,以判斷是否允許要求。 Azure AI 搜尋服務支援兩種驗證方法:

  • Microsoft Entra 驗證會建立呼叫者 (而不是要求) 作為已驗證的身分識別。 Azure 角色指派會決定授權。

  • 金鑰式驗證會在要求上透過 API 金鑰執行 (不會呼叫應用程式或使用者),金鑰是由隨機產生的數字和字母組成的字串,可證明要求來自可信任的來源。 每項要求都必須使用金鑰。 提交有效的金鑰可證明要求源自受信任的實體。

    若採用 API 金鑰式驗證,則根據 Azure 安全性最佳做法,您應該定期重新產生系統管理金鑰。 每個搜尋服務最多有兩個系統管理金鑰。 如需保護與管理 API 金鑰的詳細資訊,請參閱建立及管理 API 金鑰

金鑰型驗證是資料平面作業的預設值 (在搜尋服務上建立和使用物件)。 您可以使用這兩種驗證方法,或將您不想在搜尋服務上使用的方法停用

Authorization

Azure AI 搜尋服務針對服務管理和內容管理提供不同的授權模型。

特殊權限存取

在新的搜尋服務上,訂用帳戶層級的現有角色指派會由搜尋服務繼承,而且只有擁有者和使用者存取系統管理員可以授與存取權。

控制平面作業 (服務或資源建立和管理) 工作會透過角色指派來獨佔授權,無法使用金鑰型驗證進行服務管理。

控制平面作業包括建立、設定或刪除服務,以及管理安全性。 因此,Azure 角色指派可以決定可執行這些工作的人員,無論他們是使用入口網站PowerShell管理 REST API 都一樣。

三個基本角色 (擁有者、參與者、讀者) 適用於搜尋服務管理。

Note

透過 Azure 通用的機制,您可以鎖定訂用帳戶或資源,以防止具有系統管理權限的使用者意外或未經授權地刪除您的搜尋服務。 如需詳細資訊,請參閱鎖定資源以避免非預期的刪除

授權存取內容

資料平面作業是指在搜尋服務上建立和使用的物件。

  • 針對角色型授權,使用 Azure 角色指派來建立作業的讀寫存取權。

  • 針對金鑰型授權,API 金鑰和合格端點決定存取權。 端點可能是服務本身、索引集合、特定索引、文件集合或特定文件。 當鏈結在一起時,端點、作業 (例如,建立要求) 和金鑰類型 (系統管理或查詢) 會授權對內容和作業的存取。

限制索引的存取權

使用 Azure 角色,您可以程式化地設定個別索引的權限

任何人只要擁有您服務的系統管理金鑰,便可讀取、修改或刪除該相同服務中的任何索引。 為防止發生意外或惡意刪除索引,針對程式碼資產的內部來源控制,可作為防範非預期索引刪除或修改的解決方案。 Azure AI 搜尋服務會在叢集內提供容錯移轉功能以確保可用性,但無法儲存或執行用來建立或載入索引的專屬程式碼。

針對需要在索引層級設置安全界限的多租戶解決方案,通常會在應用程式代碼的中間層處理索引隔離。 如需有關多租用戶使用案例的詳細資訊,請參閱多租用戶 SaaS 應用程式與 Azure AI 搜尋服務的設計模式

限制文件的存取權

文件層級的使用者權限 (也稱為「資料列層級安全性」) 可作為預覽功能使用,並依賴於資料來源。 如果內容來自 Azure Data Lake Storage (ADLS) Gen2Azure Blob,則源自 Azure 記憶體的使用者許可權元數據會保留在索引器產生的索引中,並在查詢時間強制執行,以便只包含已授權的內容包含在搜尋結果中。

對於其他數據源,您可以 推送包含使用者或群組許可權元數據的檔承載,這些許可權會保留在索引內容中,並在查詢時強制執行。 這項功能也處於預覽狀態。

如果您無法使用預覽功能,且需要根據使用者身份來獲取搜尋結果中的內容的存取權,可以使用一種技術來根據使用者身份套用篩選器,以包含或排除文件。 此因應措施會在資料來源中新增字串欄位,此欄位代表群組或使用者身分識別,您可以在索引中進行篩選。 如需此模式的詳細資訊,請參閱根據身分識別篩選器的安全性調整。 如需檔存取的詳細資訊,請參閱 檔層級訪問控制

資料存放位置

當您設定搜尋服務時,您可以選擇一個區域來決定客戶資料的儲存和處理位置。 每個區域都存在於一個通常包含多個區域的地理位置 (Geo) 內 (例如,瑞士是一個包含瑞士北部和瑞士西部的地理位置 (Geo))。 Azure AI 搜尋服務可能會將您的資料複寫到相同地理位置內的另一個區域,以實現持久性和高可用性。 該服務不會在您的指定地理位置之外儲存或處理客戶資料,除非您所設定的功能相依於另一個 Azure 資源,且該資源是在不同的區域中佈建配的。

目前,搜尋服務會寫入其中的唯一外部資源是 Azure 儲存體。 儲存體帳戶是您提供的帳戶,且可以位於任何區域中。 如果您使用下列任一項功能,則搜尋服務會寫入 Azure 儲存體:

如需資料落地的詳細資訊,請參閱 Azure 中的資料落地

資料落地承諾的例外狀況

物件名稱會出現在 Microsoft 用來為服務提供支援的遙測記錄中。 物件名稱會在您選取的區域或位置之外進行儲存和處理。 物件名稱包括索引和索引欄位、別名、索引子、資料來源、技能集、同義字對應、資源、容器和金鑰保存庫的名稱。 客戶不該在名稱欄位中放置任何敏感性資料,或者建立用途是在這些欄位中儲存敏感性資料的應用程式。

遙測記錄會保留一年半。 在此期間,Microsoft 可能會在下列情況下存取和參考物件名稱:

  • 診斷問題、改善功能或修正錯誤。 在此案例中,資料存取僅供內部使用,沒有第三方存取權。

  • 在支援期間,此資訊可用於快速解決問題,並在需要時提交給產品小組進一步處理。

數據保護

在儲存體層級,資料加密會套用於儲存至磁碟的所有服務管理內容,包括索引、同義字對應,以及索引子、資料來源和技能集的定義。 服務管理的加密適用於長期資料儲存體和暫存資料儲存體。

您可以選擇新增客戶自控金鑰 (CMK),作為索引內容的額外加密,以對靜態數據進行雙重加密。 針對在 2020 年 8 月 1 日之後建立的服務,CMK 加密延伸至暫存磁碟上的短期資料。

資料傳輸中

對於透過公用網際網路進行的搜尋服務連線,Azure AI 搜尋服務會接聽 HTTPS 連接埠 443。

Azure AI 搜尋服務支援 TLS 1.2 和 1.3 用於用戶端到服務之間的通道加密:

不支援舊版的 TLS (1.0 或 1.1)。

如需詳細資訊,請參閱 .NET Framework 中的 TLS 支援

使用中的資料

根據預設,Azure AI 搜尋服務會在標準 Azure 基礎結構上部署您的搜尋服務。 此基礎結構會加密靜態和傳輸中的資料,但在記憶體中主動處理資料時,它不會保護資料。

您可以選擇性地使用 Azure 入口網站服務 - 建立或更新 (REST API) 在服務建立期間設定機密運算。 機密運算會透過硬體證明和加密,保護使用中的資料免於未經授權的存取,包括來自 Microsoft 的資料。 如需詳細資訊,請參閱 機密運算使用案例

下表比較了這兩種計算類型。

計算類型 Description 局限性 費用 Availability
預設 在標準 VM 上處理資料,並內建靜態和傳輸中的資料加密。 使用中的數據沒有硬體隔離。 沒有限制。 免費或計費層級的基本成本不會變更。 適用於所有地區。
Confidential 在硬體型信任執行環境中處理機密 VM (DCasv5 或 DCesv5) 上的資料。 將計算和記憶體與主機作業系統和其他 VM 隔離。 停用或限制 Agent 擷取語意排名工具查詢重寫技能執行,以及在多租用戶環境1 中執行的索引子。 在可計費層級的基本成本中新增 10% 附加費。 如需詳細資訊,請參閱價格網頁 在某些地區可用。 如需詳細資訊,請參閱 支援的區域清單

1 當您啟用此計算類型時,索引子只能在私人執行環境中執行,這表示它們會從機密運算上裝載的搜尋叢集執行。

這很重要

我們只建議合規性或法規要求需要使用中資料保護的組織使用機密運算。 對於日常使用量,預設運算類型就足夠了。

待用資料

針對由搜尋服務內部處理的資料,下表描述其資料加密模型。 某些功能 (例如知識存放區、累加擴充,以及索引子為基礎的索引編制) 會讀取或寫入其他 Azure 服務中的資料結構。 相依於 Azure 儲存體的服務可以使用該技術的加密功能

Model Keys Requirements Restrictions 適用對象
伺服器端加密 Microsoft 管理的金鑰 無 (內建) 沒有限制,適用於所有層級及所有區域,並針對 2018 年 1 月 24 日之後建立的內容。 資料磁碟和暫存磁碟上的內容 (索引和同義字對應 )和定義 (索引子、資料來源、技能集)
伺服器端加密 客戶管理的金鑰 Azure Key Vault 適用於 2020 年 8 月 1 日之後建立的內容,計費層級、特定區域可使用。 資料磁碟上的內容 (索引和同義字對應) 和定義 (索引子、資料來源、技能集)
伺服器端完整加密 客戶管理的金鑰 Azure Key Vault 2021 年 5 月 13 日之後的搜尋服務,計費層級、所有區域皆可使用。 資料磁碟和暫存磁碟上的內容 (索引和同義字對應 )和定義 (索引子、資料來源、技能集)

當您引進 CMK 加密時,您會對內容進行兩次加密。 針對上一節所述的物件和欄位,內容會先使用您的 CMK 進行加密,然後使用 Microsoft 管理的金鑰進行加密。 在長期儲存的資料磁碟和短期儲存的暫存磁碟上的內容會進行雙重加密。

由服務管理的金鑰

服務管理的加密是 Microsoft 內部作業,使用 256 位元 AES 加密。 此加密會在所有索引編製程序上自動執行,包括針對未完全加密索引 (建立時間在 2018 年 1 月以前) 的累加式更新。

服務管理的加密適用於長期和短期儲存體上的所有內容。

客戶自控金鑰 (CMK)

客戶使用 CMK 的原因有兩個:額外的保護,以及撤銷金鑰的能力,以防止存取內容。

客戶自控金鑰需要其他的計費服務 (Azure Key Vault),該服務可以位於不同的區域,但與 Azure AI 搜尋服務屬於相同 Azure 租用戶下。

CMK 支援分兩個階段推出。 如果您在第一個階段建立搜尋服務,則 CMK 加密僅限於長期儲存體和特定區域。 在第二個階段中建立的服務可以在任何區域中使用CMK加密。 在第二波推出期間,內容在長期和短期儲存體上均經過 CMK 加密。

  • 第一次推出是在 2020 年 8 月 1 日,其中包括下列五個區域。 在下列區域中建立的搜尋服務支援資料磁碟的 CMK,但不支援暫存磁碟:

    • 美國西部 2
    • 美國東部
    • 美國中南部
    • US Gov 維吉尼亞州
    • US Gov 亞利桑那州
  • 2021 年 5 月 13 日的第二次推出新增了暫存磁碟的加密,並將 CMK 加密延伸至所有支援的區域

    如果您是從第一次推出期間建立的服務使用 CMK,而且也希望暫存磁碟進行 CMK 加密,則必須在您選擇的區域中建立新的搜尋服務,並重新部署內容。 若要判斷您的服務建立日期,請參閱檢查您的服務建立或升級日期

啟用 CMK 加密會增加索引大小,並降低查詢效能。 根據迄今為止的觀察,查詢時間大約會增加 30%-60%,不過實際效能會取決於索引定義和查詢類型。 由於此效能負面影響,我們建議您僅在有實際需求的索引上啟用此功能。 如需詳細資訊,請參閱在 Azure AI 搜尋服務中設定客戶自控加密金鑰

記錄和監視

Azure AI 搜尋服務不會記錄使用者身分識別,因此您無法參考記錄以取得特定使用者的相關資訊。 不過,此服務會記錄建立/讀取/更新/刪除作業,將此資訊與其他記錄相互關聯或許能了解特定動作的執行者。

透過 Azure 中的警示和記錄基礎結構,您可以偵測到查詢量的尖峰,或其他偏離預期工作負載的行為。 如需設定記錄的詳細資訊,請參閱收集和分析記錄資料監視查詢要求

合規性與控管要求

Azure AI 搜尋服務會參與定期稽核,並已獲得許多針對公用雲端和 Azure Government 的全球、地區以及產業專屬的認證。 如需完整清單,請從官方稽核報告頁面下載 Microsoft Azure 合規性供應項目白皮書

建議您定期檢閱 Azure AI 搜尋服務合規性認證和文件,以確保符合您的法規需求。

使用 Azure 原則

為符合規範,您可以使用 Azure 原則來實作 Microsoft 雲端安全性基準的高安全性最佳做法。 Microsoft 雲端安全性基準測試是安全性建議的集合,且編列為安全性控制項,對應至您應該採取的重要動作,進而減輕服務與資料的威脅。 目前有 12 個安全性控制項,包括網路安全性、記錄和監視,以及資料保護

Azure 原則是 Azure 內建的功能,可協助您管理多個標準的合規性,也包括 Microsoft 雲端安全性基準。 針對已知的基準測試,Azure 原則具有內建定義,提供解決不符合規範的準則和可採取動作的回應。

針對 Azure AI 搜尋服務,目前有一個內建定義。 此定義用於資源記錄。 您可以指派一個原則來識別缺少資源記錄的搜尋服務,然後將其開啟。 如需更多資訊,請參閱適用於Azure AI 搜尋服務的 Azure 原則法規合規性控制項

使用標籤

套用中繼資料標籤,根據資料敏感度和合規性需求對搜尋服務進行分類。 這有助於適當的治理和安全性控制。 如需詳細資訊,請參閱使用標記來組織 Azure 資源一般指導 - 使用標記來組織 Azure 資源

我們也建議您觀看下列 有關安全性功能的影片。 它已有好幾年的歷史,不涵蓋較新的功能,但它涵蓋了以下功能:CMK、IP 防火牆和私人連結。 如果您使用這些功能,可能會發現此影片很有幫助。