在 Azure 虚拟网络中使用 Azure 机器学习工作室
提示
可以使用 Azure 机器学习托管虚拟网络,而不是执行本文中的步骤。 使用托管虚拟网络,Azure 机器学习可处理工作区和托管计算的网络隔离作业。 还可以为工作区所需的资源(例如 Azure 存储帐户)添加专用终结点。 有关详细信息,请参阅工作区托管网络隔离。
本文介绍如何在虚拟网络中使用 Azure 机器学习工作室。 工作室包括 AutoML、设计器和数据标签等功能。
在虚拟网络中,默认情况下会禁用某些工作室功能。 若要重新启用这些功能,必须为计划在工作室中使用的存储帐户启用托管标识。
在虚拟网络中,默认情况下禁用以下操作:
- 预览工作室中的数据。
- 在设计器中将数据可视化。
- 在设计器中部署模型。
- 提交 AutoML 试验。
- 启动标记项目。
工作室支持从虚拟网络中的以下数据存储类型读取数据:
Azure 存储帐户(blob 和文件)
Azure Data Lake Storage Gen2
Azure SQL 数据库
在本文中,学习如何:
- 授予工作室访问存储在虚拟网络内部的数据的权限。
- 从虚拟网络内部的资源访问工作室。
- 了解工作室如何影响存储安全性。
先决条件
阅读网络安全概述,了解常见的虚拟网络方案和体系结构。
要使用的预先存在的虚拟网络和子网。
- 要了解如何创建安全工作区,请参阅教程:创建安全工作区、Bicep 模板或 Terraform 模板。
限制
Azure 存储帐户
当存储帐户位于虚拟网络中时,如果要使用工作室,则需满足额外的验证要求:
设计器示例管道
存在一个已知问题:用户无法在设计器主页中运行示例管道。 导致此问题发生的原因是示例管道中使用的示例数据集为 Azure 全局数据集。 无法从虚拟网络环境访问它。
若要解决此问题,请使用公共工作区运行示例管道。 或者,在虚拟网络的工作区中将示例数据集替换为你自己的数据集。
数据存储:Azure 存储帐户
使用以下步骤来启用对 Azure Blob 和文件存储中存储的数据的访问:
提示
工作区的默认存储帐户不需要执行第一步。 对于 VNet 后面的所有存储帐户以及工作区使用的所有帐户(包括默认存储帐户)都需要执行其他步骤。
如果存储帐户是工作区的默认存储,请跳过此步骤。 如果不是默认值,请针对 Azure 存储帐户为工作区托管标识授予“存储 Blob 数据读者”角色,以便它可以从 Blob 存储读取数据。
有关详细信息,请参阅Blob 数据读取者内置角色。
向 Azure 用户标识授予 Azure 存储帐户的“存储 Blob 数据读取者”角色。 即使工作区托管标识具有读取者角色,工作室也使用标识访问 Blob 存储的数据。
有关详细信息,请参阅Blob 数据读取者内置角色。
向存储专用终结点授予工作区托管标识“读取者”角色。 如果存储服务使用专用终结点,请为工作区的托管标识读取者授予对专用终结点的访问权限。 Microsoft Entra ID 中的工作区托管标识与 Azure 机器学习工作区的名称相同。 Blob 和文件存储类型都需要专用终结点。
提示
存储帐户可以有多个专用终结点。 例如,一个存储帐户可能具有适用于 blob、文件和 dfs (Azure Data Lake Storage Gen2) 的多个单独专用终结点。 将托管标识添加到所有这些终结点。
有关详细信息,请参阅读取者内置角色。
对默认存储账户启用托管标识身份验证。 每个 Azure 机器学习工作区都有两个默认存储帐户:一个默认的 Blob 存储帐户和一个默认的文件存储帐户。 这两个帐户都是在创建工作区时定义的。 还可以在“数据存储”管理页面中设置新的默认值。
下表说明了为什么必须为工作区默认存储帐户使用托管标识身份验证。
存储帐户 说明 工作区默认 Blob 存储 存储设计器中的模型资源。 对此存储帐户启用托管标识身份验证才能在设计器中部署模型。 如果禁用了托管标识身份验证,则用户的标识用于访问 Blob 中存储的数据。
如果设计器管道使用已配置为使用托管标识的非默认数据存储,则可以可视化和运行该设计器管道。 但如果未在默认数据存储上启用托管标识就尝试部署定型模型,则无论是否正在使用任何其他数据存储,部署都会失败。工作区默认文件存储 存储 AutoML 试验资产。 对此存储帐户启用托管标识身份验证才能提交 AutoML 试验。 将数据存储配置为使用托管标识身份验证。 使用服务终结点或专用终结点将 Azure 存储帐户添加到虚拟网络后,必须将数据存储配置为使用托管标识身份验证。 这样,工作室就可以访问存储帐户中的数据。
Azure 机器学习使用数据存储连接到存储帐户。 创建新的数据存储时,请使用以下步骤将数据存储配置为使用托管标识身份验证:
在工作室中,选择“数据存储”。
选择“+ 创建”可新建数据存储。
在数据存储设置中,对于“在 Azure 机器学习工作室中使用工作区托管标识进行数据预览和分析”,请打开开关。
在 Azure 存储帐户的“网络”设置中,添加
Microsoft.MachineLearningService/workspaces
资源类型,并将“实例名称”设置为工作区。
这些步骤使用 Azure 基于角色的访问控制 (RBAC) 将工作区托管标识作为“读取者”添加到新存储服务。 “读取者”访问权限允许工作区查看资源,但不能进行更改。
数据存储:Azure Data Lake Storage Gen2
使用 Azure Data Lake Storage Gen2 作为数据存储时,可以使用 Azure RBAC 和 POSIX 样式的访问控制列表 (ACL) 来控制虚拟网络内的数据访问。
要使用 Azure RBAC,请按照本文的数据存储:Azure 存储帐户部分中的步骤进行操作。 Data Lake Storage Gen2 依托于 Azure 存储构建而成,因此在使用 Azure RBAC 时可采用相同的方法。
要使用 ACL,可以向工作区托管标识分配访问权限,方法与向任何其他安全主体分配访问权限一样。 有关详细信息,请参阅文件和目录上的访问控制列表。
数据存储: Azure SQL 数据库
若要使用托管标识访问存储在 Azure SQL 数据库中的数据,必须创建一个映射到托管标识的 SQL 包含用户。 若要详细了解如何从外部提供程序创建用户,请参阅创建映射到 Microsoft Entra 标识的包含用户。
创建 SQL 包含用户后,使用 GRANT T-SQL 命令向该用户授予权限。
中间组件输出
使用 Azure 机器学习设计器中间组件输出时,可以指定设计器中的任何组件的输出位置。 使用此输出可将中间数据集存储在单独的位置,以用于安全性、日志记录或审核目的。 若要指定输出,请使用以下步骤:
- 选择要指定其输出的组件。
- 在组件设置窗格中,选择“输出设置”。
- 指定要用于每个组件输出的数据存储。
确保有权访问虚拟网络中的中间存储帐户。 否则,管道将发生故障。
为中间存储帐户启用托管标识身份验证,以便可视化输出数据。
从 VNet 内部的资源访问工作室
如果从虚拟网络内的资源(例如,计算实例或虚拟机)访问工作室,则必须允许从虚拟网络到工作室的出站流量。
例如,如果使用网络安全组 (NSG) 来限制出站流量,请将一条规则添加到服务标记目标 AzureFrontDoor.Frontend
。
防火墙设置
一些存储服务(如 Azure 存储帐户)有防火墙设置,该设置适用于该特定服务实例的公共终结点。 通常情况下,可以通过该设置来允许/禁止从公共 Internet 的特定 IP 地址进行的访问。 使用 Azure 机器学习工作室时,不支持此功能。 使用 Azure 机器学习 SDK 或 CLI 时,支持此功能。
提示
使用 Azure 防火墙服务时,支持 Azure 机器学习工作室。 有关详细信息,请参阅配置入站和出站网络流量。
相关内容
本文是介绍如何保护 Azure 机器学习工作流系列文章的一部分。 请参阅本系列中的其他文章: