管理 Azure AI 搜尋服務解決方案的安全性
組織必須能夠信任其搜尋解決方案的安全性。 Azure AI 搜尋服務可讓您控制如何保護搜尋的資料。
本次會帶您探索如何保護您的搜尋解決方案。 重於資料加密的位置,以及如何保護輸入和輸出資料流程。 最後可了解如何對特定使用者或群組限制搜尋結果的存取。
安全性方法概觀
AI 搜尋服務安全性建置在 Azure 的現有網路安全性功能上。 當您考慮保護搜尋解決方案時,可以著重於三個領域:
- 使用者對搜尋解決方案提出的輸入搜尋要求
- 從搜尋解決方案輸出要求到其他伺服器以編製文件索引
- 限制每個使用者搜尋要求的文件層級存取
資料加密
Azure AI 搜尋服務,就像所有 Azure 服務一樣,會使用服務受控金鑰加密其待用資料。 此加密包括索引、資料來源、同義字對應、技能,甚至是索引子定義。
傳輸中的資料會使用透過連接埠 443 的標準 HTTPS TLS 1.3 加密進行加密。
如果您想要使用自己的加密金鑰,ACS 支援使用 Azure Key Vault。 使用您自己的客戶自控金鑰的優點是,在您使用自訂金鑰的所有物件上都會啟用雙重加密。
提示
如需如何使用客戶自控金鑰進行加密的詳細步驟,請參閱在 Azure AI 搜尋服務中設定客戶自控金鑰以進行資料加密
保護輸入流量
如果您的搜尋解決方案可從網際網路或應用程式外部存取,您可以減少受攻擊面。 Azure AI 搜尋服務可讓您使用防火牆免費限制對公用端點的存取,以允許來自特定 IP 位址的存取。
如果您的搜尋服務僅供內部部署資源使用,您可以使用 ExpressRoute 線路、Azure 閘道和 App Service 來強化安全性。 您也可以選擇變更公用端點以使用 Azure Private Link。 您也需要設定 Azure 虛擬網路和其他資源。 使用私人端點是最安全的解決方案,儘管它的確伴隨著使用在 Azure 平台上裝載服務所需的額外成本。
提示
如需私人端點的詳細資訊,請參閱建立私人端點以安全連線至 Azure AI 搜尋服務。
驗證搜尋解決方案的要求
適時使用基礎結構,以減少搜尋解決方案的攻擊面,您的重點可以轉移成如何驗證使用者和應用程式的搜尋要求。
當您建立 ACS 時的預設選項是金鑰型驗證。 有兩種不同的金鑰:
- 管理金鑰:授與寫入權限,以及查詢系統資訊的權限 (每個搜尋服務最多可建立 2 個管理金鑰)
- 查詢金鑰:授與讀取權限,並可供您的使用者或應用程式用來查詢索引 (每個搜尋服務最多可建立 50 個查詢金鑰)
重要
資料平面作業的角色型存取控制目前處於預覽狀態,並遵守補充使用規定。 這些角色僅適用於 Azure 公用雲端,而且使用這些角色會增加搜尋要求的延遲。
角色型存取控制 (RBAC) 是由 Azure 平台提供,做為控制資源存取的全域系統。 您可以透過下列方式,在 Azure AI 搜尋服務中使用 RBAC:
- 可以授與角色管理服務的存取權
- 定義有權建立、載入和查詢索引的角色
您可以指派來管理 Azure AI 搜尋服務的內建角色如下:
- 擁有者:可完整存取所有搜尋資源
- 參與者:與上述相同,但無法指派角色或變更授權
- 讀取者 - 檢視部分服務資訊
如果您需要也可以管理資料平面的角色,例如搜尋索引或資料來源,請使用下列其中一個角色:
- 搜尋服務參與者:搜尋服務管理員的角色 (與上述參與者角色相同的存取權) 和內容 (索引、索引子、資料來源和技能)
- 搜尋索引資料參與者:開發人員或索引擁有者的角色,可匯入、重新整理或查詢索引文件集合
- 搜尋索引資料讀取者:唯讀存取角色,適用於只需要執行查詢的應用程式或使用者
提示
如需使用 RBAC 進行驗證的詳細資訊,請參閱在 Azure AI 搜尋服務中使用 Azure 角色型存取控制 (Azure RBAC)。
保護輸出流量
一般而言,您的輸出流量會對來源資料編製索引,或使用人工智慧 (AI) 加以擴充。 如果您可以使用 Microsoft Entra ID,輸出連線支援使用金鑰型驗證、資料庫登入或 Microsoft Entra ID 登入。
如果您的資料來源裝載於 Azure 平台上,您也可以使用系統或使用者指派的受控識別來保護連線。
Azure 服務可以使用防火牆來限制對它們的存取。 您的防火牆可以設定為僅允許 Azure AI 搜尋服務的 IP 位址。 如果您要使用 AI 擴充索引,也必須允許 AzureCognitiveSearch 服務標籤中的所有 IP 位址。
您可以選擇保護索引子所使用的共用私人連結背後的來源資料。
重要
共用私人連結需要適用於文字型索引的基本層,或適用於技能型索引的標準 2 (S2) 層。 如需價格詳細資料,請參閱 Azure Private Link 價格。
保護文件層級的資料
您可以設定 Azure AI 搜尋服務來限制可搜尋文件的對象,例如,將搜尋合約 PDF 的對象限制為法律部門的人員。
控制誰在文件層級具有存取權,需要您更新搜尋索引中的每個文件。 您必須將新的安全性欄位新增至每個文件,該文件包含可存取的使用者或群組識別碼。 安全性欄位必須是可篩選的,以便篩選欄位上的搜尋結果。
適時使用此欄位,並填入允許的使用者或群組,您可以藉由將 search.in
篩選條件新增至所有搜尋查詢來限制結果。 如果您使用 HTTP POST 要求,本文看起來應該如下所示:
{
"filter":"security_field/any(g:search.in(g, 'user_id1, group_id1, group_id2'))"
}
這會篩選該使用者所屬使用者識別碼和群組所傳回的搜尋結果。 如果您的應用程式可以使用 Microsoft Entra ID,則可以從該處使用使用者的身分識別和群組成員資格。
提示
如需如何使用 Microsoft Entra ID 的逐步指南,請參閱使用 Active Directory 身分識別修剪 Azure AI 搜尋服務結果的安全性篩選