與 Azure 虛擬機器上 SQL Server 執行個體的索引子連線
將 Azure SQL 索引子設定為從 Azure 虛擬機器上的資料庫擷取內容時,安全連線需要額外的步驟。
從 Azure AI 搜尋服務到虛擬機器上 SQL Server 執行個體的連線是公用網際網路連線。 若要成功安全連線,請執行下列步驟:
向憑證授權單位提供者取得憑證,以取得虛擬機器上 SQL Server 執行個體的完整網域名稱。
在虛擬機器上安裝憑證。
在 VM 上安裝憑證之後,您已準備好完成本文中的下列步驟。
注意
Azure AI 搜尋服務索引子目前不支援 Always Encrypted 資料行。
啟用加密的連線
Azure AI 搜尋服務會針對透過公用網際網路連線的所有索引子要求加密的通道。 本節列出執行這項工作的步驟。
檢查憑證的屬性,以驗證主體名稱為 Azure VM 的完整網域名稱 (FQDN)。
您可以使用 CertUtils 之類的工具或憑證嵌入式管理單元來檢視屬性。 您可以在 Azure 入口網站的 [公用 IP 位址/DNS 名稱標籤] 欄位中,從 VM 服務頁面的 [程式集] 區段中取得 FQDN。
FQDN 通常會格式化為
<your-VM-name>.<region>.cloudapp.azure.com
使用登錄編輯器 (regedit) 設定 SQL Server 以使用憑證。
雖然通常會在這項工作中使用 SQL Server 組態管理員,但您在此案例中無法使用它。 其不會尋找匯入的憑證,因為在 Azure 上 VM 的 FQDN 不符合由 VM 所決定的 FQDN (其會將網域識別為本機電腦或其已加入的網路網域)。 當名稱不相符時,使用 regedit 來指定憑證。
在 regedit 中,瀏覽此登錄金鑰︰
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\[MSSQL13.MSSQLSERVER]\MSSQLServer\SuperSocketNetLib\Certificate
。[MSSQL13.MSSQLSERVER]
部分將視版本和執行個體名稱而有所不同。將憑證金鑰的值設定為您已匯入至 VM 的 TLS/SSL 憑證指紋。
有數種方式可以取得指紋,有些方式較其他的更好。 如果您將其從 MMC 中的 憑證 嵌入式管理單元進行複製,您可能會挑選不可見的開頭字元 (如本支援文章中所述),如此當您嘗試連線時便會導致錯誤。 有數個因應措施可修正此問題。 最簡單的方法是按退格鍵,然後重新輸入指紋的第一個字元,在 regedit 中移除金鑰值欄位中的開頭字元。 或者,您可以使用不同的工具來複製指紋。
授與權限給服務帳戶。
務必要將 TLS/SSL 憑證私密金鑰的適當權限授與 SQL Server 服務帳戶。 如果您忽略此步驟,SQL Server 將不會啟動。 針對這項工作,您可以使用憑證嵌入式管理單元或 CertUtils。
重新啟動 SQL Server 服務。
連接至 SQL Server
在設定 Azure AI 搜尋服務所需的加密連線之後,透過其公用端點連線到執行個體。 下列文章說明連線需求和語法:
設定網路安全性群組
最佳做法是設定網路安全性群組 (NSG) 與對應的 Azure 端點或存取控制清單 (ACL),讓他人能夠存取您的 Azure VM。 您很可能過去已完成此設定,允許自己的應用程式邏輯連接至您的 SQL Azure VM。 這和 Azure AI 搜尋服務連線至 SQL Azure VM 並無不同。
下列步驟和連結提供 VM 部署的 NSG 設定指示。 使用下列搜尋服務端點根據其 IP 位址的 ACL 指示。
取得搜尋服務的 IP 位址。 如需指示,請參閱下一節。
將搜尋 IP 位址新增至安全性群組的 IP 篩選清單。 下列其中一篇文章說明這些步驟:
IP 位址可能會造成一些挑戰,如果您知道問題和可能的因應措施則可輕易克服。 其餘各節提供與 ACL 中的 IP 位址相關的問題處理建議。
限制對 Azure AI 搜尋的網路存取
強烈建議您在 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 虛擬機的輸入存取權授與 Azure 入口網站。 防火牆中的輸入規則會要求您提供 Azure 入口網站的IP位址。
若要取得 Azure 入口網站 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 中編制資料索引。