教學課程:如何使用範本建立安全工作區

範本提供方便的方式來建立可重現的服務部署。 範本會定義將建立的專案,以及您使用範本時所提供的一些資訊。 例如,指定 Azure 機器學習 工作區的唯一名稱。

在本教學課程中,您將瞭解如何使用 Microsoft BicepHashicorp Terraform 範本來建立下列 Azure 資源:

  • Azure 虛擬網絡。 下列資源會在此 VNet 後方受到保護:
    • Azure 機器學習 工作區
      • Azure Machine Learning 計算執行個體
      • Azure Machine Learning 計算叢集
    • Azure 儲存體帳戶
    • Azure Key Vault
    • Azure Application Insights
    • Azure Container Registry
    • Azure Bastion 主機
    • Azure 機器學習 虛擬機 (資料科學虛擬機器)
    • Bicep 範本也會建立 Azure Kubernetes Service 叢集,並為其建立個別的資源群組。

提示

Microsoft 建議使用 Azure 機器學習 受控虛擬網路,而不是本文中的步驟。 使用受控虛擬網路,Azure Machine Learning 會處理工作區和受控計算的網路隔離作業。 您也可以為工作區所需的資源新增私人端點,例如 Azure 儲存體帳戶。 如需詳細資訊,請參閱工作區受管理的網路隔離

必要條件

使用本文中的步驟之前,您必須擁有 Azure 訂用帳戶。 如果您沒有 Azure 訂閱,請建立免費帳戶

您也必須具有 Bash 或 Azure PowerShell 命令行。

提示

閱讀本文時,請使用每個區段中的索引標籤來選取是否要檢視使用 Bicep 或 Terraform 範本的資訊。

  1. 若要安裝命令行工具,請參閱 設定 Bicep 開發和部署環境

  2. 本文中使用的 Bicep 樣本位於 https://github.com/Azure/azure-quickstart-templates/blob/master/quickstarts/microsoft.machinelearningservices/machine-learning-end-to-end-secure。 使用下列命令將 GitHub 存放庫複製到您的開發環境:

    提示

    如果您的開發環境上沒有 git 命令,您可以從 加以安裝 https://git-scm.com/

    git clone https://github.com/Azure/azure-quickstart-templates
    cd azure-quickstart-templates/quickstarts/microsoft.machinelearningservices/machine-learning-end-to-end-secure
    

了解範本

Bicep 範本是由 main.bicep.bicep modules 子目錄中的檔案所組成。 下表描述每個檔案所負責的專案:

檔案 說明
main.bicep 參數和變數。 將參數和變數傳遞至子目錄中的其他模組 modules
vnet.bicep 定義 Azure 虛擬網絡 和子網。
nsg.bicep 定義 VNet 的網路安全組規則。
bastion.bicep 定義 Azure Bastion 主機和子網。 Azure Bastion 可讓您使用網頁瀏覽器輕鬆地存取 VNet 內的 VM。
dsvmjumpbox.bicep 定義 資料科學虛擬機器 (DSVM)。 Azure Bastion 可用來透過網頁瀏覽器存取此 VM。
storage.bicep 定義工作區用於預設記憶體的 Azure 儲存體 帳戶。
keyvault.bicep 定義工作區所使用的 Azure 金鑰保存庫。
containerregistry.bicep 定義工作區所使用的 Azure Container Registry。
applicationinsights.bicep 定義工作區所使用的 Azure 應用程式 Insights 實例。
machinelearningnetworking.bicep 定義 Azure 機器學習 工作區的私人端點和 DNS 區域。
Machinelearning.bicep 定義 Azure 機器學習 工作區。
machinelearningcompute.bicep 定義 Azure 機器學習 計算叢集和計算實例。
privateaks.bicep 定義 Azure Kubernetes Services 叢集實例。

重要

範例範本不一定會使用適用於 Azure 機器學習 的最新 API 版本。 使用範本之前,建議您先修改它以使用最新的 API 版本。 如需 Azure 機器學習 最新 API 版本的資訊,請參閱 Azure 機器學習 REST API

每個 Azure 服務都有自己的一組 API 版本。 如需特定服務 API 的相關信息,請查看 Azure REST API 參考中的服務資訊。

若要更新 API 版本,請尋找 Microsoft.MachineLearningServices/<resource> 資源類型的專案,並將其更新為最新版本。 下列範例是使用 API 版本的 2022-05-01Azure 機器學習 工作區專案:

resource machineLearning 'Microsoft.MachineLearningServices/workspaces@2022-05-01' = {

重要

DSVM 和 Azure Bastion 是用來連線到安全工作區的簡單方式,以供本教學課程使用。 在生產環境中,我們建議使用 Azure VPN 閘道Azure ExpressRoute ,直接從內部部署網路存取 VNet 內的資源。

設定範本

若要執行 Bicep 範本,請使用檔案所在位置 machine-learning-end-to-end-securemain.bicep 下列命令:

  1. 若要建立新的 Azure 資源群組,請使用下列命令。 取代為資源群組名稱,並以eastus您想要使用的 Azure 區域取代 exampleRG

    az group create --name exampleRG --location eastus
    
  2. 若要執行範本,請使用下列命令。 prefix將取代為唯一前置詞。 建立 Azure 機器學習 所需的 Azure 資源時,將會使用前置詞。 securepassword將取代為跳躍方塊的安全密碼。 密碼適用於跳躍方塊的登入帳戶(azureadmin 在下列範例中):

    提示

    prefix必須是5個字元或更少。 它不能完全是數值或包含下列字元: ~ ! @ # $ % ^ & * ( ) = + _ [ ] { } \ | ; : . ' " , < > / ?

    az deployment group create \
        --resource-group exampleRG \
        --template-file main.bicep \
        --parameters \
        prefix=prefix \
        dsvmJumpboxUsername=azureadmin \
        dsvmJumpboxPassword=securepassword
    

連線到工作區

範本完成之後,請使用下列步驟來連線到 DSVM:

  1. 從 Azure 入口網站 中,選取您搭配範本使用的 Azure 資源群組。 然後,選取範本所建立的 資料科學虛擬機器。 如果您發現問題,請使用 [篩選] 區段來篩選 [類型 ] 至 虛擬機

    Screenshot of filtering and selecting the vm.

  2. 從虛擬機的 [觀] 區段中,選取 [連線],然後從下拉式清單中選取 [Bastion]。

    Screenshot of selecting to connect using Bastion.

  3. 出現提示時,請提供您在設定範本時指定的使用者名稱和密碼,然後選取 [連線]。

    重要

    第一次連線到 DSVM 桌面時,PowerShell 視窗隨即開啟並開始執行腳本。 允許完成此作業,再繼續進行下一個步驟。

  4. 從 DSVM 桌面啟動 Microsoft Edge ,然後輸入 https://ml.azure.com 作為位址。 登入您的 Azure 訂用帳戶,然後選取範本所建立的工作區。 工作區的 Studio 隨即顯示。

疑難排解

錯誤:Windows 計算機名稱長度不能超過 15 個字元、全數位或包含下列字元

當 DSVM 跳躍方塊的名稱大於 15 個字元或包含下列其中一個字元時,就會發生此錯誤: ~ ! @ # $ % ^ & * ( ) = + _ [ ] { } \ | ; : . ' " , < > / ?

使用 Bicep 範本時,會使用提供給範本的前置詞值,以程式設計方式產生跳躍方塊名稱。 若要確定名稱不超過 15 個字元或包含任何無效字元,請使用前置詞 5 個字元或更少,且不使用前置詞中的任何下列字元: ~ ! @ # $ % ^ & * ( ) = + _ [ ] { } \ | ; : . ' " , < > / ?

使用 Terraform 範本時,會使用 dsvm_name 參數傳遞跳躍方塊名稱。 若要避免此錯誤,請使用不超過 15 個字元的名稱,而且不會使用下列任何字元做為名稱的一部分: ~ ! @ # $ % ^ & * ( ) = + _ [ ] { } \ | ; : . ' " , < > / ?

下一步

重要

資料科學虛擬機器 (DSVM) 和任何計算實例資源都會向您收取執行時的費用。 若要避免產生超額費用,您應該在未使用這些資源時停止這些資源。 如需詳細資訊,請參閱下列文章:

若要繼續瞭解如何從 DSVM 使用受保護的工作區,請參閱教學課程:Azure 機器學習 一天

若要深入瞭解常見的安全工作區設定和輸入/輸出需求,請參閱 Azure 機器學習 安全工作區流量流程