category
在本文中,学习如何创建和连接到安全的Azure机器学习工作区。本文中的步骤使用Azure虚拟网络围绕Azure机器学习使用的资源创建安全边界。
重要的
我们建议使用Azure Machine Learning托管虚拟网络,而不是Azure虚拟网络。有关使用托管虚拟网络的本教程版本,请参阅教程:使用托管虚拟网创建安全工作区。
在本教程中,您将完成以下任务:
- 创建Azure虚拟网络(VNet)以确保虚拟网络中服务之间的通信安全。
- 在VNet后面创建一个Azure存储帐户(blob和文件)。此服务用作工作区的默认存储。
- 在VNet后面创建一个Azure密钥保管库。此服务用于存储工作区使用的机密。例如,访问存储帐户所需的安全信息。
- 创建Azure容器注册表(ACR)。此服务用作Docker映像的存储库。Docker镜像提供了训练机器学习模型或将训练好的模型部署为端点时所需的计算环境。
- 创建Azure机器学习工作区。
- 创建一个jump box。jump box是位于VNet后面的Azure虚拟机。由于VNet限制从公共互联网的访问,因此跳转框被用作连接到VNet后面的资源的一种方式。
- 将Azure机器学习工作室【Azure Machine Learning studio】配置为在VNet后面工作。该工作室为Azure机器学习提供了一个web界面。
- 创建Azure机器学习计算集群【Azure Machine Learning compute cluster】。在云中训练机器学习模型时使用计算集群。在Azure Container Registry位于VNet后面的配置中,它也用于构建Docker映像。
- 连接到 jump box 并使用Azure机器学习工作室。
提示如果您正在寻找一个演示如何创建安全工作空间的模板(Microsoft Bicep或Hashicorp Terraform),请参阅教程-使用模板创建安全工作区。
完成本教程后,您将拥有以下体系结构:
- Azure虚拟网络,包含三个子网:
- 培训:包含Azure机器学习工作区、依赖项服务和用于培训模型的资源。
- 评分:对于本教程中的步骤,不使用它。但是,如果您继续将此工作区用于其他教程,我们建议在将模型部署到端点时使用此子网。
- AzureBastionSubnet:由Azure Bastion服务用于将客户端安全连接到Azure虚拟机。
- Azure机器学习工作区,使用专用端点使用VNet进行通信。
- Azure存储帐户,该帐户使用专用终结点允许存储服务(如blob和文件)使用VNet进行通信。
- 使用专用终结点的Azure容器注册表使用VNet进行通信。
- Azure Bastion,它允许您使用浏览器与VNet内的跳转框VM进行安全通信。
- 一个Azure虚拟机,您可以远程连接到它并访问VNet内保护的资源。
- Azure机器学习计算实例和计算集群。
提示图表上列出的Azure批处理服务是计算集群和计算实例所需的后端服务。
通过本教程创建的最终体系结构图。
先决条件
- 熟悉Azure虚拟网络和IP网络。如果您不熟悉,请尝试计算机网络基础模块。
- 虽然本文中的大多数步骤使用Azure门户或Azure机器学习工作室,但有些步骤使用Azure CLI扩展for Machine Learning v2。
创建虚拟网络
要创建虚拟网络,请使用以下步骤:
- 在Azure门户中,选择左上角的门户菜单。从菜单中,选择+创建资源,然后在搜索字段中输入Virtual Network。选择“虚拟网络”条目,然后选择“创建”。
- 从“基本”选项卡中,选择要用于此资源的Azure订阅,然后选择或创建新的资源组。在“实例详细信息”下,输入虚拟网络的友好名称,然后选择要在其中创建虚拟网络的区域。
- 选择安全。选择以启用Azure堡垒。Azure Bastion提供了一种安全的方式来访问您稍后将在VNet内创建的VM跳转框。对其余字段使用以下值:
- Bastion name:此堡垒实例的唯一名称
- Public IP address:创建一个新的公共IP地址。
将其他字段保留为默认值。
- 选择IP地址。默认设置应类似于下图:
使用以下步骤配置IP地址并配置培训和评分资源的子网:
提示
虽然您可以对所有Azure机器学习资源使用单个子网,但本文中的步骤显示了如何创建两个子网来分离培训和评分资源。
工作区和其他依赖性服务将进入培训子网。它们仍然可以被其他子网中的资源使用,例如记分子网。
- 查看默认的IPv4地址空间值。在屏幕截图中,值为172.16.0.0/16。值可能会因您而异。虽然您可以使用不同的值,但本教程中的其余步骤都是基于172.16.0.0/16的值。
警告
不要将172.17.0.0/16 IP地址范围用于您的VNet。这是Docker网桥网络使用的默认子网范围,如果用于VNet,将导致错误。根据您要连接到虚拟网络的内容,其他范围也可能发生冲突。例如,如果您计划将本地网络连接到VNet,而本地网络也使用172.16.0.0/16范围。最终,由您来规划您的网络基础设施。
- 选择默认子网,然后选择删除子网。
- 要创建一个子网以包含工作区、依赖项服务和用于培训的资源,请选择+添加子网,然后设置子网名称、起始地址和子网大小。以下是本教程中使用的值:
- Name: Training
- Starting address: 172.16.0.0
- Subnet size: /24 (256 addresses)
- 要为用于为模型打分的计算资源创建子网,请再次选择+添加子网,然后设置名称和地址范围:
- Subnet name: Scoring
- Starting address: 172.16.1.0
- Subnet size: /24 (256 addresses)
- 要为Azure Bastion创建子网,请选择+添加子网并设置模板、起始地址和子网大小:
- Subnet template: Azure Bastion
- Starting address: 172.16.2.0
- Subnet size: /26 (64 addresses)
- 选择“审阅+创建”。
-
验证信息是否正确,然后选择“创建”。
创建存储帐户
- 在Azure门户中,选择左上角的门户菜单。从菜单中,选择+创建资源,然后输入存储帐户。选择存储帐户条目,然后选择创建。
- 从“基本”选项卡中,选择以前用于虚拟网络的订阅、资源组和区域。输入唯一的存储帐户名,然后将“冗余”设置为“本地冗余存储(LRS)”。
- 从“网络”选项卡中,选择“专用端点”,然后选择+“添加专用端点”。
- 在“创建专用端点”窗体上,使用以下值:
订阅:包含您以前创建的资源的同一Azure订阅。
资源组:包含您以前创建的资源的同一Azure资源组。
位置:包含您以前创建的资源的同一Azure区域。
名称:此专用终结点的唯一名称。
目标子资源:blob
虚拟网络:您先前创建的虚拟网络。
子网:培训(172.16.0.0/24)
Private DNS integration:是
Private DNS Zone:privatelink.blob.core.windows.net
选择“确定”以创建专用终结点。
- 选择“审阅+创建”。验证信息是否正确,然后选择“创建”。
创建存储帐户后,选择转到资源:
- 从左侧导航中,选择Networking the Private endpoint connections选项卡,然后选择+Private endpoint:
笔记
在前面的步骤中为Blob存储创建了专用端点时,还必须为File存储创建一个专用端点。
- 在“创建专用端点”窗体上,使用与以前资源相同的订阅、资源组和区域。输入唯一的名称。
- 选择下一步:资源,然后将目标子资源设置为文件。
- 选择下一步:配置,然后使用以下值:
- Virtual network: The network you created previously
- Subnet: Training
- Integrate with private DNS zone: Yes
- Private DNS zone: privatelink.file.core.windows.net
- 选择“审阅+创建”。验证信息是否正确,然后选择“创建”。
提示
如果您计划使用批处理端点或使用ParallelRunStep的Azure机器学习管道,还需要配置专用端点目标队列和表子资源。ParallelRunStep在后台使用队列和表进行任务调度。
创建密钥保管库
- 在Azure门户中,选择左上角的门户菜单。从菜单中,选择+创建资源,然后输入Key Vault。选择密钥库条目,然后选择“创建”。
- 从“基本”选项卡中,选择以前用于虚拟网络的订阅、资源组和区域。输入唯一的密钥保管库名称。将其他字段保留为默认值。
- 从“网络”选项卡中,选择“专用端点”,然后选择+“添加”。
- 在“创建专用端点”窗体上,使用以下值:
- Subscription: The same Azure subscription that contains the previous resources you've created.
- Resource group: The same Azure resource group that contains the previous resources you've created.
- Location: The same Azure region that contains the previous resources you've created.
- Name: A unique name for this private endpoint.
- Target sub-resource: Vault
- Virtual network: The virtual network you created earlier.
- Subnet: Training (172.16.0.0/24)
- Private DNS integration: Yes
- Private DNS Zone: privatelink.vaultcore.azure.net
选择“确定”以创建专用终结点。
选择“审阅+创建”。验证信息是否正确,然后选择“创建”。
创建容器注册表
- 在Azure门户中,选择左上角的门户菜单。从菜单中,选择+创建资源,然后输入Container Registry。选择Container Registry条目,然后选择Create。
- 从“基本”选项卡中,选择您以前用于虚拟网络的订阅、资源组和位置。输入唯一的注册表名称并将SKU设置为“高级”。
- 从“网络”选项卡中,选择“专用端点”,然后选择+“添加”。
- 在“创建专用端点”窗体上,使用以下值:
- Subscription: The same Azure subscription that contains the previous resources you've created.
- Resource group: The same Azure resource group that contains the previous resources you've created.
- Location: The same Azure region that contains the previous resources you've created.
- Name: A unique name for this private endpoint.
- Target sub-resource: registry
- Virtual network: The virtual network you created earlier.
- Subnet: Training (172.16.0.0/24)
- Private DNS integration: Yes
- Private DNS Zone: privatelink.azurecr.io
选择“确定”以创建专用终结点。
- 选择“审阅+创建”。验证信息是否正确,然后选择“创建”。
- 创建容器注册表后,选择转到资源。
- 从页面左侧,选择Access keys,然后启用Admin user。使用Azure机器学习在虚拟网络内使用Azure容器注册表时,需要此设置。
创建工作空间
在Azure门户中,选择左上角的门户菜单。从菜单中,选择+创建资源,然后进入机器学习。选择机器学习条目,然后选择创建。- 从“基本”选项卡中,选择以前用于虚拟网络的订阅、资源组和区域。对其他字段使用以下值:
- Workspace name: A unique name for your workspace.
- Storage account: Select the storage account you created previously.
- Key vault: Select the key vault you created previously.
- Application insights: Use the default value.
Container registry: Use the container registry you created previously.
- 从“网络”选项卡中,选择“Internet出站专用”。在“工作区入站访问”部分,选择+添加。
- 在“创建专用端点”窗体上,使用以下值:
- Subscription: The same Azure subscription that contains the previous resources you've created.
- Resource group: The same Azure resource group that contains the previous resources you've created.
- Location: The same Azure region that contains the previous resources you've created.
- Name: A unique name for this private endpoint.
- Target sub-resource: amlworkspace
- Virtual network: The virtual network you created earlier.
- Subnet: Training (172.16.0.0/24)
- Private DNS integration: Yes
- Private DNS Zone: Leave the two private DNS zones at the default values of privatelink.api.azureml.ms and privatelink.notebooks.azure.net.
选择“确定”以创建专用终结点。
- 在“网络”选项卡的“工作区出站访问”部分,选择“使用我自己的虚拟网络”。
- 选择“审阅+创建”。验证信息是否正确,然后选择“创建”。
- 创建工作区后,选择转到资源。
- 从左侧的“设置”部分,选择“专用端点连接”,然后在“专用端点”列中选择链接:
- 出现专用端点信息后,从页面左侧选择DNS配置。将IP地址和完全限定域名(FQDN)信息保存在此页面上,以便以后使用。
重要的
在您可以完全使用工作区之前,仍需要一些配置步骤。但是,这些要求您连接到工作空间。
启用工作室
- Azure机器学习工作室是一个基于web的应用程序,可以让您轻松管理工作区。然而,它需要一些额外的配置,然后才能与VNet内部安全的资源一起使用。使用以下步骤启用工作室:
- 当使用具有专用终结点的Azure存储帐户时,请将工作区的服务主体添加为存储专用端点的读卡器。从Azure门户中,选择您的存储帐户,然后选择“网络”。接下来,选择Private endpoint connections。
- 对于列出的每个专用端点,请使用以下步骤:
- 在“专用端点”列中选择链接。
- 从左侧选择访问控制(IAM)。
- 选择+添加,然后选择添加角色分配(预览)。
- 访问控制(IAM)页面,打开“添加角色分配”菜单。
- 在“角色”选项卡上,选择读卡器。
- 选择“角色”选项卡后添加角色分配页面。
- 在成员选项卡上,在分配访问权限区域中选择用户、组或服务主体,然后选择+选择成员。在“选择成员”对话框中,输入名称作为Azure机器学习工作区。选择工作区的服务主体,然后使用“选择”按钮。
- 在“审阅+分配”选项卡上,选择“审阅+指定”以分配角色。
安全Azure监视器和应用程序见解
笔记有关保护Azure Monitor和Application Insights的更多信息,请参阅以下链接:
迁移到基于工作区的Application Insights资源。
配置你的Azure Monitor专用链接。
- 在Azure门户中,选择您的Azure机器学习工作区。从概览中,选择Application Insights链接。
- 在Application Insights的Properties中,检查WORKSPACE条目以查看它是否包含值。如果没有,请选择“迁移到基于工作区”,选择要使用的订阅和日志分析工作区,然后选择“应用”。
- 在Azure门户中,选择主页,然后搜索私人链接。选择Azure Monitor专用链接作用域结果,然后选择创建。
- 从“基本”选项卡中,选择与Azure机器学习工作区相同的订阅、资源组和资源组区域。输入实例的名称,然后选择“审阅+创建”。若要创建实例,请选择“创建”。
- 创建Azure Monitor专用链接作用域实例后,请在Azure门户中选择该实例。从配置部分,选择Azure监视器资源,然后选择+添加。
- 从“选择范围”中,使用筛选器为Azure机器学习工作区选择Application Insights实例。选择“应用”以添加实例。
- 从配置部分,选择专用端点连接,然后选择+专用端点。
- 选择包含VNet的相同Subscription、Resource Group和Region。选择下一步:资源。
- 选择Microsoft.insights/privateLinkScopes作为资源类型。选择您先前创建的专用链接作用域作为资源。选择azuremonitor作为目标子资源。最后,选择下一步:虚拟网络以继续。
- 选择您先前创建的虚拟网络和Training子网。选择“下一步”,直到到达“审阅+创建”。选择“创建”以创建专用终结点。
- 创建专用终结点后,返回到门户中的Azure Monitor专用链接作用域资源。从配置部分,选择访问模式。对于摄入访问模式和查询访问模式,选择“仅限私人”,然后选择“保存”。
连接到工作区
有几种方法可以连接到安全工作区。本文中的步骤使用了一个跳转框,它是VNet中的一个虚拟机。您可以使用web浏览器和Azure Bastion连接到它。下表列出了连接到安全工作区的其他几种方式:
Method | Description |
---|---|
Azure VPN gateway | Connects on-premises networks to the VNet over a private connection. Connection is made over the public internet. |
ExpressRoute | Connects on-premises networks into the cloud over a private connection. Connection is made using a connectivity provider. |
重要的当使用VPN网关或ExpressRoute时,您需要规划名称解析在本地资源和VNet中的资源之间的工作方式。有关详细信息,请参阅使用自定义DNS服务器。
创建jump box (VM)
使用以下步骤创建Azure虚拟机以用作跳转框。Azure Bastion使您能够通过浏览器连接到虚拟机桌面。然后,您可以从虚拟机桌面使用虚拟机上的浏览器连接到VNet内部的资源,如Azure Machine Learning studio。或者您可以在虚拟机上安装开发工具。
提示
以下步骤创建一个Windows 11企业虚拟机。根据您的要求,您可能需要选择不同的VM映像。如果您需要将虚拟机加入组织的域,Windows 11(或10)企业映像非常有用。
在Azure门户中,选择左上角的门户菜单。从菜单中,选择+创建资源,然后进入Virtual Machine。选择虚拟机条目,然后选择创建。
从“基本”选项卡中,选择以前用于虚拟网络的订阅、资源组和区域。为以下字段提供值:
-
Virtual machine name: A unique name for the VM.
-
Username: The username you'll use to log in to the VM.
-
Password: The password for the username.
-
Security type: Standard.
-
Image: Windows 11 Enterprise.
提示
如果Windows 11 Enterprise不在图像选择列表中,请使用See all images_。从Microsoft中找到Windows 11条目,然后使用“选择”下拉菜单选择企业映像。
您可以将其他字段保留为默认值。
选择“网络”,然后选择先前创建的虚拟网络。使用以下信息设置其余字段:
- 选择Training子网。
- 将“公用IP”设置为“无”。
- 将其他字段保留为默认值。
选择“审阅+创建”。验证信息是否正确,然后选择“创建”。
连接到jump box
创建虚拟机后,选择转到资源。
从页面顶部,选择“连接”,然后选择“堡垒”。
选择“使用堡垒”,然后提供虚拟机的身份验证信息,将在浏览器中建立连接。
创建计算集群和计算实例
计算机集群用于您的培训工作。计算实例在连接到工作空间的共享计算资源上提供Jupyter Notebook体验。
- 从Azure Bastion连接到跳转框,打开远程桌面上的Microsoft Edge浏览器。
- 在远程浏览器会话中,转到https://ml.azure.com.出现提示时,使用您的Microsoft Entra帐户进行身份验证。
- 欢迎来到演播室!屏幕上,选择您之前创建的机器学习工作区,然后选择开始。
提示
如果您的Microsoft Entra帐户可以访问多个订阅或目录,请使用“目录和订阅”下拉列表选择包含工作区的订阅或目录。
在studio中,选择“计算”、“计算集群”,然后选择“+新建”。
从“虚拟机”对话框中,选择“下一步”以接受默认的虚拟机配置。
- 在配置设置对话框中,输入cpu cluster作为计算名称。将“子网”设置为“训练”,然后选择“创建”以创建群集。
- 提示
- 计算集群根据需要动态缩放集群中的节点。我们建议将最小节点数保留为0,以在不使用集群时降低成本。
在studio中,选择“计算”、“计算实例”,然后选择“+新建”。
在虚拟机对话框中,输入唯一的计算机名称,然后选择下一步:高级设置。
在“高级设置”对话框中,将“子网”设置为“训练”,然后选择“创建”。
提示
当您创建计算集群或计算实例时,Azure Machine Learning会动态添加网络安全组(NSG)。此NSG包含以下特定于计算集群和计算实例的规则:
- 允许端口29876-29877上来自BatchNodeManagement服务标记的入站TCP流量。
- 允许端口44224上来自AzureMachineLearning服务标记的入站TCP流量。
以下屏幕截图显示了这些规则的示例:
有关创建计算集群和计算集群的更多信息,包括如何使用Python和CLI进行创建,请参阅以下文章:
配置图像构建
适用于:Azure CLI ml扩展v2(当前)
当Azure Container Registry位于虚拟网络后面时,Azure Machine Learning无法使用它直接构建Docker映像(用于培训和部署)。相反,配置工作区以使用您之前创建的计算集群。使用以下步骤创建计算集群,并配置工作空间以使用它来构建图像:
- 导航到https://shell.azure.com/打开Azure云外壳。
- 从Cloud Shell中,使用以下命令安装Azure Machine Learning的2.0 CLI:
Azure CLI
az extension add -n ml
更新工作空间以使用计算集群来构建Docker映像。将docs ml rg替换为您的资源组。将docs ml ws替换为您的工作区。将cpu集群替换为要使用的计算集群:
Azure CLI
az ml workspace update -n myworkspace -g myresourcegroup -i mycomputecluster
笔记
您可以使用相同的计算集群来训练模型并为工作空间构建Docker映像。
使用工作空间
重要的本文中的步骤将Azure容器注册表置于VNet之后。在此配置中,您无法将模型部署到VNet内的Azure容器实例。我们不建议在虚拟网络中使用Azure容器实例和Azure机器学习。有关更多信息,请参阅保护推理环境(SDK/CLI v1)。
作为Azure容器实例的替代方案,请尝试Azure机器学习管理的在线端点。有关详细信息,请参阅启用受管联机端点的网络隔离。
此时,您可以使用工作室在计算实例上与笔记本交互工作,并在计算集群上运行训练作业。有关使用计算实例和计算集群的教程,请参阅教程:Azure机器学习一天。
停止计算实例和jump box
警告当它运行(启动)时,计算实例和跳转框将继续向您的订阅收费。为了避免成本过高,请在它们不使用时停止使用。
计算群集在创建时在最小和最大节点计数集之间动态缩放。如果接受默认值,则最小值为0,这将在不使用时有效地关闭群集。
停止计算实例
从studio中,选择“计算”、“计算集群”,然后选择计算实例。最后,从页面顶部选择“停止”。
停止jump box
创建后,在Azure门户中选择虚拟机,然后使用“停止”按钮。当您准备再次使用它时,请使用“开始”按钮启动它。
您还可以将跳转框配置为在特定时间自动关闭。要执行此操作,请选择自动关机、启用、设置时间,然后选择保存。
清理资源
如果您计划继续使用安全工作区和其他资源,请跳过本节。
要删除本教程中创建的所有资源,请使用以下步骤:
- 在Azure门户中,选择最左边的资源组。
- 从列表中,选择您在本教程中创建的资源组。
- 选择删除资源组。
输入资源组名称,然后选择“删除”。
接下来的步骤
既然您已经创建了一个安全的工作空间并可以访问studio,那么就学习如何将模型部署到具有网络隔离的在线端点。
- 登录 发表评论
- 10 次浏览
最新内容
- 1 day 16 hours ago
- 1 day 16 hours ago
- 1 day 16 hours ago
- 1 day 16 hours ago
- 1 day 23 hours ago
- 2 days 21 hours ago
- 1 week 4 days ago
- 1 week 4 days ago
- 1 week 4 days ago
- 1 week 4 days ago