如何安全地整合 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

    建置此組態的快速簡單方法是使用 Microsoft Bicep 或 HashiCorp 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

重要

遵循這些步驟之前,您需要設定為使用受控虛擬網路的 Azure Synapse 工作區。 如需詳細資訊,請參閱 Azure Synapse Analytics 受控虛擬網路

  1. 從 Azure Synapse Studio,建立新的 Azure Machine Learning 連結服務

  2. 建立及發佈連結服務之後,請選取 [管理]、[受控私人端點],然後在 Azure Synapse Studio 中選取 [+ 新增]

    Screenshot of the managed private endpoints dialog.

  3. 從 [新增受控私人端點] 頁面,搜尋 Azure Machine Learning 並選取圖格。

    Screenshot of selecting Azure Machine Learning.

  4. 當系統提示您選取 Azure Machine Learning 工作區時,請使用您先前新增為連結服務的 Azure 訂用帳戶Azure Machine Learning 工作區。 選取 [建立] 以建立端點。

    Screenshot of the new private endpoint dialog.

  5. 此端點會列為佈建中,直到建立為止。 建立之後,[核准] 資料行會列出 [擱置] 狀態。 您將在設定 Azure Machine Learning 一節中核准端點。

    注意

    在下列螢幕擷取畫面中,已經為與此 Synapse 工作區相關聯的 Azure Data Lake Storage Gen 2 建立受控私人端點。 如需如何建立 Azure Data Lake Storage Gen 2 並為其啟用私人端點的資訊,請參閱使用受控 VNet 佈建及保護連結服務

    Screenshot of the managed private endpoints list.

建立 Spark 集區

若要確認 Azure Synapse 與 Azure Machine Learning 之間的整合是否正常運作,您將使用 Apache Spark 集區。 如需建立 Spark 集區的相關資訊,請參閱建立 Spark 集區

設定 Azure Machine Learning

  1. Azure 入口網站,選取您的 Azure Machine Learning 工作區,然後選取 [網路]

  2. 選取 [私人端點],然後選取您在先前步驟中建立的端點。 其狀態應為 [擱置]。 選取 [核准] 以核准端點連線。

    Screenshot of the private endpoint approval.

  3. 從頁面左邊,選取 [存取控制 (IAM)]。 選取 [+ 新增],然後選取 [角色指派]

    Screenshot of the role assignment.

  4. 選取 [特殊許可權系統管理員角色]、 [參與者],然後選取 [ 下一步]。

    Screenshot of selecting contributor.

  5. 選取 [使用者、群組或服務主體],然後 [+ 選取成員]。 輸入稍早建立的身分識別名稱,加以選取,然後使用 [選取] 按鈕。

    Screenshot of assigning the role.

  6. 選取 [檢閱 + 指派],確認資訊,然後選取 [檢閱 + 指派] 按鈕。

    提示

    Azure Machine Learning 工作區可能需要幾分鐘的時間才能更新認證快取。 更新以後,您可能會在嘗試從 Synapse 存取 Azure Machine Learning 工作區時收到錯誤。

驗證連線能力

  1. 從 Azure Synapse Studio,選取 [開發],然後選取 [+ 筆記本]

    Screenshot of adding a notebook.

  2. 在 [附加至] 欄位中,選取 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 物件的詳細資訊,請參閱工作區類別參考。

下一步