数据管理
了解如何管理数据访问以及如何在 Azure 机器学习中进行身份验证
适用范围:Azure CLI ml 扩展 v2(最新版)Python SDK azure-ai-ml v2(最新版)
重要
本文面向想要为 Azure 机器学习解决方案创建所需基础结构的 Azure 管理员。
一般情况下,从工作室访问数据涉及到以下检查:
- 哪个用户想要访问资源?
- 根据存储类型,可以使用不同类型的身份验证,例如
- 帐户密钥
- 令牌
- 服务主体 (service principal)
- 托管标识
- 用户标识
- 若要根据用户标识进行身份验证,必须知道哪个特定用户尝试访问存储资源。 有关用户身份验证的详细信息,请参阅 Azure 机器学习的身份验证。 若要详细了解服务级别身份验证,请参阅 Azure 机器学习与其他服务之间的身份验证。
- 根据存储类型,可以使用不同类型的身份验证,例如
- 此用户是否具有权限?
- 用户是否具有正确的凭据? 如果是,服务主体、托管标识等是否具有该存储资源所需的权限? 权限是使用 Azure 基于角色的访问控制 (Azure RBAC) 授予的。
- 存储帐户读取者读取存储元数据。
- 存储 Blob 数据读取者读取 blob 容器中的数据。
- 参与者允许对存储帐户进行写入访问。
- 可能需要更多角色,具体取决于存储类型。
- 访问来自何处?
- 用户:客户端 IP 地址是否在 VNet/子网范围内?
- 工作区:工作区是公共的,还是 VNet/子网中有专用终结点?
- 存储:存储是允许进行公共访问,还是仅限通过服务终结点或专用终结点进行访问?
- 将执行哪些操作?
- Azure 机器学习处理数据存储/数据集上的创建、读取、更新和删除操作 (CRUD)。
- 工作室中对数据资产的存档操作需要此 RBAC 操作:
Microsoft.MachineLearningServices/workspaces/datasets/registered/delete
- 数据访问调用(例如预览或架构)将进入底层存储,并需要额外的权限。
- 此操作是否会在 Azure 订阅计算资源或 Azure 订阅中托管的资源中运行?
- 对数据集和数据存储服务的所有调用(“生成配置文件”选项除外)都使用托管在 Microsoft 订阅中的资源来运行操作。
- 作业(包括数据集“生成配置文件”选项)在你订阅中的计算资源上运行,并从该位置访问数据。 计算标识需要对存储资源的权限,而不是提交作业的用户的标识。
此图显示了数据访问调用的常规流。 在这里,用户尝试通过机器学习工作区发出数据访问调用,但未使用任何计算资源。
场景和标识
下表列出了用于特定方案的标识:
方案 | 使用工作区 托管服务标识 (MSI) |
要使用的标识 |
---|---|---|
从 UI 访问 | 是 | 工作区 MSI |
从 UI 访问 | 否 | 用户的标识 |
从作业访问 | Yes/No | 计算 MSI |
从笔记本访问 | Yes/No | 用户的标识 |
数据访问很复杂,涉及许多部分。 例如,与使用 SDK 进行数据访问相比,来自 Azure 机器学习工作室的数据访问有所不同。 在本地开发环境中使用 SDK 时,你会直接访问云中的数据。 使用工作室时,你并不总是直接从客户端访问数据存储。 工作室依赖使用工作区来代表你访问数据。
提示
若要从 Azure 机器学习外部(例如使用 Microsoft Azure 存储资源管理器)访问数据,该访问可能依赖于用户标识。 有关特定信息,请查看所使用的工具或服务的文档。 若要详细了解 Azure 机器学习如何处理数据,请参阅在 Azure 机器学习与其他服务之间设置身份验证。
Azure 存储帐户
从 Azure 机器学习工作室使用 Microsoft Azure 存储帐户时,必须将工作区的托管标识添加到该存储帐户的以下 Azure RBAC 角色:
- Blob 数据读取器
- 如果存储帐户使用专用终结点连接到 VNet,则必须为托管标识授予对存储帐户专用终结点的读取者角色。
有关详细信息,请参阅在 Azure 虚拟网络中使用 Azure 机器学习工作室。
以下部分介绍了在 VNet 中使用 Microsoft Azure 存储帐户和工作区的限制。
保护与 Azure 存储帐户的通信
若要保护 Azure 机器学习和 Microsoft Azure 存储帐户之间的通信,请将存储配置为授予对受信任的 Azure 服务的访问权限。
Azure 存储防火墙
当 Microsoft Azure 存储帐户位于虚拟网络后面时,通常可以使用存储防火墙来允许客户端通过 Internet 直接进行连接。 但是,使用工作室时,客户端不会连接到存储帐户。 发出请求的 Azure 机器学习服务将连接到存储帐户。 服务的 IP 地址未记录,并且经常更改。 启用存储防火墙将不允许工作室访问 VNet 配置中的存储帐户。
Azure 存储终结点类型
当工作区使用专用终结点并且存储帐户也位于 VNet 中时,使用工作室时有额外的验证要求:
- 如果存储帐户使用服务终结点,则工作区专用终结点和存储服务终结点必须位于 VNet 的同一子网中。
- 如果存储帐户使用专用终结点,则工作区专用终结点和存储专用终结点必须位于同一 VNet 中。 在这种情况下,它们可以位于不同的子网中。
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 虚拟网络中使用 Azure 机器学习工作室。