如何安全地整合 Azure Machine Learning 與 Azure Synapse
在本文中,了解如何從 Azure Synapse 安全地與 Azure Machine Learning 整合。 此整合可讓您從 Azure Synapse 工作區中的筆記本使用 Azure Machine Learning。 使用 Azure 虛擬網路保護兩個工作區之間的通訊。
必要條件
Azure 訂用帳戶。
具有虛擬網路私人端點連線的 Azure Machine Learning 工作區。 下列工作區相依性服務也必須有虛擬網路的私人端點連線:
Azure 儲存體帳戶
提示
針對儲存體帳戶,有三個不同的私人端點;每個 Blob、檔案和 dfs 各一個。
Azure Key Vault
Azure Container Registry
建置此組態的快速簡單方法是使用 Bicep 範本或 Terraform 範本。
受控虛擬網路中的 Azure Synapse 工作區,其使用受控私人端點。 如需詳細資訊,請參閱 Azure Synapse Analytics 受控虛擬網路。
警告
在具有資料外流保護的 Synapse 工作區中,目前不支援 Azure Machine Learning 整合。 設定 Azure Synapse 工作區時,請勿啟用資料外流保護。 如需詳細資訊,請參閱 Azure Synapse Analytics 受控虛擬網路。
注意
本文中的這些步驟進行下列假設:
- Azure Synapse 工作區位於與 Azure Machine Learning 工作區不同的資源群組中。
- Azure Synapse 工作區會使用受控虛擬網路。 受控虛擬網路可保護 Azure Synapse 與 Azure Machine Learning 之間的連線。 其不會限制對 Azure Synapse 工作區的存取。 您將透過公用網際網路存取工作區。
了解網路通訊
在此組態中,Azure Synapse 使用受控私人端點和虛擬網路。 受控虛擬網路和私人端點會藉由限制虛擬網路的網路流量,保護從 Azure Synapse 到 Azure Machine Learning 的內部通訊。 其不會限制用戶端與 Azure Synapse 工作區之間的通訊。
Azure Machine Learning 不會提供受控私人端點或虛擬網路,而是改用使用者管理的私人端點和虛擬網路。 在此組態中,內部和用戶端/服務通訊僅限於虛擬網路。 例如,如果您想要直接從虛擬網路外部存取 Azure Machine Learning 工作室,您會使用下列其中一個選項:
- 在虛擬網路內建立 Azure 虛擬機器,並使用 Azure Bastion 加以連線。 然後從 VM 連線到 Azure Machine Learning。
- 建立 VPN 閘道,或使用 ExpressRoute 將用戶端連線到虛擬網路。
由於 Azure Synapse 工作區可公開存取,因此您可連線到該工作區,而不必建立 VPN 閘道之類的項目。 Synapse 工作區會透過虛擬網路安全地連線到 Azure Machine Learning。 Azure Machine Learning 及其資源會在虛擬網路內受到保護。
新增資料來源時,您也可以保護虛擬網路後方的資料來源。 例如,透過虛擬網路安全地連線到 Azure 儲存體帳戶或 Data Lake Store Gen 2。
如需詳細資訊,請參閱下列文章:
- Azure Synapse Analytics 管理的虛擬網路
- 使用虛擬網路保護 Azure Machine Learning 工作區資源。
- 從您的 Synapse 工作區連線到安全的 Azure 儲存體帳戶。
設定 Azure Synapse
重要
遵循這些步驟之前,您需要設定為使用受控虛擬網路的 Azure Synapse 工作區。 如需詳細資訊,請參閱 Azure Synapse Analytics 受控虛擬網路。
從 Azure Synapse Studio,建立新的 Azure Machine Learning 連結服務。
建立及發佈連結服務之後,請選取 [管理]、[受控私人端點],然後在 Azure Synapse Studio 中選取 [+ 新增]。
從 [新增受控私人端點] 頁面,搜尋 Azure Machine Learning 並選取圖格。
當系統提示您選取 Azure Machine Learning 工作區時,請使用您先前新增為連結服務的 Azure 訂用帳戶和 Azure Machine Learning 工作區。 選取 [建立] 以建立端點。
此端點會列為佈建中,直到建立為止。 建立之後,[核准] 資料行會列出 [擱置] 狀態。 您將在設定 Azure Machine Learning 一節中核准端點。
注意
在下列螢幕擷取畫面中,已經為與此 Synapse 工作區相關聯的 Azure Data Lake Storage Gen 2 建立受控私人端點。 如需如何建立 Azure Data Lake Storage Gen 2 並為其啟用私人端點的資訊,請參閱使用受控 VNet 佈建及保護連結服務。
建立 Spark 集區
若要確認 Azure Synapse 與 Azure Machine Learning 之間的整合是否正常運作,您將使用 Apache Spark 集區。 如需建立 Spark 集區的相關資訊,請參閱建立 Spark 集區。
設定 Azure Machine Learning
從 Azure 入口網站,選取您的 Azure Machine Learning 工作區,然後選取 [網路]。
選取 [私人端點],然後選取您在先前步驟中建立的端點。 其狀態應為 [擱置]。 選取 [核准] 以核准端點連線。
從頁面左邊,選取 [存取控制 (IAM)]。 選取 [+ 新增],然後選取 [角色指派]。
選取 [特殊權限管理員角色],並選取 [參與者],然後選取 [下一步]。
選取 [使用者、群組或服務主體],然後 [+ 選取成員]。 輸入稍早建立的身分識別名稱,加以選取,然後使用 [選取] 按鈕。
選取 [檢閱 + 指派],確認資訊,然後選取 [檢閱 + 指派] 按鈕。
提示
Azure Machine Learning 工作區可能需要幾分鐘的時間才能更新認證快取。 更新以後,您可能會在嘗試從 Synapse 存取 Azure Machine Learning 工作區時收到錯誤。
驗證連線能力
從 Azure Synapse Studio,選取 [開發],然後選取 [+ 筆記本]。
在 [附加至] 欄位中,選取 Azure Synapse工作區的 Apache Spark 集區,然後在第一個儲存格中輸入下列程式碼:
from notebookutils.mssparkutils import azureML # getWorkspace() takes the linked service name, # not the Azure Machine Learning workspace name. ws = azureML.getWorkspace("AzureMLService1") print(ws.name)
重要
此程式碼片段會使用 SDK v1 連線到連結的工作區,然後列印工作區資訊。 在列印的輸出中,顯示的值為 Azure Machine Learning 工作區的名稱,而不是
getWorkspace()
呼叫中使用的連結服務名稱。 如需使用ws
物件的詳細資訊,請參閱工作區類別參考。