與 Azure 虛擬機器上 SQL Server 執行個體的索引子連線

設定 Azure SQL 索引器以從 Azure 虛擬機上的資料庫擷取內容時,安全連線需要額外的步驟。

從 Azure AI 搜尋服務到虛擬機器上 SQL Server 執行個體的連線是公用網際網路連線。 若要讓安全連線成功,請執行下列步驟:

  • 憑證授權單位提供者取得憑證,以取得虛擬機器上 SQL Server 執行個體的完整網域名稱。

  • 在虛擬機器上安裝憑證。

在 VM 上安裝憑證之後,您就可以完成本文中的下列步驟。

注意

Azure AI 搜尋服務索引子目前不支援 Always Encrypted 資料行。

啟用加密的連線

Azure AI 搜尋服務會針對透過公用網際網路連線的所有索引子要求加密的通道。 本節列出執行這項工作的步驟。

  1. 檢查憑證的屬性,以驗證主體名稱為 Azure VM 的完整網域名稱 (FQDN)。

    您可以使用 CertUtils 之類的工具或憑證嵌入式管理單元來檢視屬性。 您可以從 [VM 服務] 頁面 [Essentials] 區段的 [公用IP 位址/DNS 名稱標籤] 字段中,取得 FQDN Azure 入口網站

    FQDN 通常會格式化為 <your-VM-name>.<region>.cloudapp.azure.com

  2. 使用登錄編輯器 (regedit) 設定 SQL Server 以使用憑證。

    雖然通常會在這項工作中使用 SQL Server 組態管理員,但您在此案例中無法使用它。 其不會尋找匯入的憑證,因為在 Azure 上 VM 的 FQDN 不符合由 VM 所決定的 FQDN (其會將網域識別為本機電腦或其已加入的網路網域)。 當名稱不相符時,使用 regedit 來指定憑證。

    1. 在 regedit 中,瀏覽此登錄金鑰︰HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\[MSSQL13.MSSQLSERVER]\MSSQLServer\SuperSocketNetLib\Certificate

      [MSSQL13.MSSQLSERVER] 部分將視版本和執行個體名稱而有所不同。

    2. 憑證金鑰的值設定為您已匯入至 VM 的 TLS/SSL 憑證指紋

    有數種方式可以取得指紋,有些方式較其他的更好。 如果您從 MMC 中的 [憑證 ] 嵌入式管理單元複製它,您可能會收到一個不可見的前置字元 ,如本支援文章所述,這會導致您嘗試連線時發生錯誤。 有數個因應措施可修正此問題。 最簡單的方法是按退格鍵,然後重新輸入指紋的第一個字元,在 regedit 中移除金鑰值欄位中的開頭字元。 或者,您可以使用不同的工具來複製指紋。

  3. 授與權限給服務帳戶。

    務必要將 TLS/SSL 憑證私密金鑰的適當權限授與 SQL Server 服務帳戶。 如果您忽略此步驟,SQL Server 不會啟動。 針對這項工作,您可以使用憑證嵌入式管理單元或 CertUtils

  4. 重新啟動 SQL Server 服務。

連接至 SQL Server

設定 Azure AI 搜尋所需的加密連線之後,請透過其公用端點連線到實例。 下列文章說明連線需求和語法:

設定網路安全性群組

最佳做法是設定網路安全組 (NSG) 和對應的 Azure 端點或 存取控制 清單 (ACL), 讓您的 Azure VM 可供其他合作物件存取。 您很可能過去已完成此設定,允許自己的應用程式邏輯連接至您的 SQL Azure VM。 這和 Azure AI 搜尋服務連線至 SQL Azure VM 並無不同。

下列步驟和連結提供 VM 部署 NSG 設定的指示。 使用下列搜尋服務端點根據其 IP 位址的 ACL 指示。

  1. 取得搜尋服務的 IP 位址。 如需指示,請參閱下一節

  2. 將搜尋 IP 位址新增至安全性群組的 IP 篩選清單。 下列其中一篇文章說明這些步驟:

IP 位址可能會造成一些挑戰,如果您知道問題和可能的因應措施則可輕易克服。 其餘各節提供與 ACL 中的 IP 位址相關的問題處理建議。

強烈建議您在 ACL 中限制對搜尋服務 IP 位址和AzureCognitiveSearch服務標籤 IP 位址範圍的存取,而不是讓 SQL Azure VM 對所有連線要求來者不拒。

您可以 Ping 搜尋服務的 FQDN (例如, <your-search-service-name>.search.windows.net),找出 IP 位址。 雖然搜尋服務 IP 位址可能會變更,但其不太可能變更。 IP 位址通常會在服務的存留期保持靜態。

您可以找出AzureCognitiveSearch服務標籤的 IP 位址範圍,方法是使用可下載的 JSON 檔案,或透過服務標籤探索 API。 IP 位址範圍每週更新。

包含 Azure 入口網站 IP 位址

如果使用 Azure 入口網站建立索引子,您必須將入口網站輸入存取權授與 SQL Azure 虛擬機器。 防火牆中的輸入規則需要您提供入口網站的 IP 位址。

若要取得入口網站 IP 位址,ping stamp2.ext.search.windows.net這是流量管理員的網域。 要求逾時,但IP位址會顯示在狀態消息中。 例如,在 "Pinging azsyrie.northcentralus.cloudapp.azure.com [52.252.175.48]" 訊息中,IP 位址為 "52.252.175.48"。

不同區域中的叢集會連線到不同的流量管理員。 不論網域名稱為何,從 ping 傳回的 IP 位址都是正確的位址,在您的區域中為 Azure 入口網站定義輸入防火牆規則時,可以使用此 IP 位址。

使用令牌驗證補充網路安全性

防火牆和網路安全性是防止未經授權存取數據和作業的第一個步驟。 授權應該是下一個步驟。

我們建議角色型存取,其中 Microsoft Entra ID 使用者和群組會指派給決定服務讀取和寫入存取權的角色。 如需內建角色的描述,以及建立自定義角色的指示,請參閱使用角色型訪問控制 連線 至 Azure AI 搜尋。

如果您不需要金鑰型驗證,建議您停用 API 金鑰,並獨佔使用角色指派。

下一步

解決組態之後,您現在就可以在 Azure VM 指定 SQL Server,做為 Azure AI 搜尋服務索引子的資料來源。 如需詳細資訊,請參閱從 Azure SQL 中編制資料索引