Azure 机器学习的企业安全性和治理

在本文中,你将了解可用于 Azure 机器学习的安全和治理功能。 如果管理员、DevOps 工程师和 MLOps 工程师想要创建符合组织策略的安全配置,那么这些功能对其十分有用。

通过 Azure 机器学习和 Azure 平台,你可以:

  • 按用户帐户或组限制对资源和操作的访问。
  • 限制传入和传出网络通信。
  • 加密传输中的数据和静止时的数据。
  • 扫描漏洞。
  • 应用和审核配置策略。

限制对资源和操作的访问

Microsoft Entra ID 是 Azure 机器学习的标识服务提供程序。 可以使用此功能创建和管理用于向 Azure 资源进行身份验证的安全对象(用户、组、服务主体和托管标识)。 如果 Microsoft Entra ID 已配置为使用多重身份验证 (MFA),则支持多重身份验证。

以下是在 Microsoft Entra ID 中使用 MFA 进行 Azure 机器学习身份验证的过程:

  1. 客户端登录到 Microsoft Entra ID 并获取 Azure 资源管理器令牌。
  2. 客户端将令牌提供给 Azure 资源管理器和 Azure 机器学习。
  3. Azure 机器学习将机器学习服务令牌提供给用户计算目标(例如机器学习计算群集或无服务器计算)。 作业完成后,用户计算目标使用此令牌回调机器学习服务。 范围限制为工作区。

展示 Azure 机器学习中的身份验证的示意图。

每个工作区都有一个关联的系统分配的托管标识,该标识与工作区同名。 此托管标识用于安全地访问工作区使用的资源。 它对关联的资源具有以下 Azure 基于角色的访问控制 (RBAC) 权限:

资源 权限
工作区 贡献者
存储帐户 存储 Blob 数据参与者
密钥保管库 访问所有密钥、机密和证书
容器注册表 贡献者
包含工作区的资源组 贡献者

系统分配的托管标识用于在 Azure 机器学习与其他 Azure 资源之间进行内部的服务到服务身份验证。 用户无法访问标识令牌,并且无法使用它来获取对这些资源的访问权限。 用户在具有足够 RBAC 权限的情况下,只能通过 Azure 机器学习控制和数据平面 API 来访问这些资源。

不要撤销托管标识对上表中提到的资源的访问权限。 可以使用“重新同步密钥”操作来恢复访问权限。

不要向不想访问工作区计算或标识的用户授予工作区存储帐户的权限。 工作区的存储帐户包含在工作区计算上运行的代码和可执行文件。 有权访问该存储帐户的用户可以编辑或更改在工作区上下文中运行的代码,从而授予对工作区数据和凭据的访问权限。

注意

如果 Azure 机器学习工作区具有在 2021 年 5 月 14 日之前创建的计算目标(例如计算群集、计算实例或 Azure Kubernetes 服务 [AKS] 实例),则可能还有一个额外的 Microsoft Entra 帐户。 帐户名称以 Microsoft-AzureML-Support-App- 开头,并且对你在每个工作区区域的订阅具有参与者级别访问权限。

如果工作区未附加任何 AKS 实例,你可以放心删除此 Microsoft Entra 帐户。

如果工作区具有附加的 AKS 群集,并在 2021 年 5 月 14 日之前创建了它, 请不要删除此Microsoft Entra 帐户。 在这种情况下,必须先删除并重新创建 AKS 群集,然后才能删除 Microsoft Entra 帐户。

可以预配工作区以使用用户分配的托管标识,然后向托管标识授予其他角色。 例如,你可以向某个角色授予权限,以访问你自己的 Azure 容器注册表实例以获取基础 Docker 映像。

你还可以将托管标识配置为与 Azure 机器学习计算群集配合使用。 此托管标识独立于工作区托管标识。 使用计算群集时,可以使用托管标识来访问运行训练作业的用户可能无权访问的资源,例如安全数据存储。 有关详细信息,请参阅使用托管标识进行访问控制。

提示

在 Azure 机器学习中使用 Microsoft Entra ID 和 Azure RBAC 存在例外情况:

  • 你可以选择启用对计算资源(例如 Azure 机器学习计算实例和计算群集)的安全外壳 (SSH) 访问。 SSH 访问基于公钥/私钥对,而不是 Microsoft Entra ID。 Azure RBAC 不会控制 SSH 访问。
  • 可以使用基于密钥、基于 Azure 机器学习令牌或基于 Microsoft Entra 令牌的身份验证,对部署为联机终结点的模型进行身份验证。 密钥是静态字符串,而令牌是通过 Microsoft Entra 安全对象检索的。 有关详细信息,请参阅对联机终结点的客户端进行身份验证。

有关详细信息,请参阅以下文章:

提供网络安全和隔离

若要限制对 Azure 机器学习资源的网络访问,请使用 Azure 机器学习托管虚拟网络 或 Azure 虚拟网络实例。 使用虚拟网络会减少解决方案的受攻击面并降低数据外泄的几率。

不必从中选择一个。 例如,你可以使用 Azure 机器学习托管虚拟网络来帮助保护托管计算资源,使用 Azure 虚拟网络实例来保护非托管资源,或者帮助保护客户端对工作区的访问。

  • Azure 机器学习托管虚拟网络:提供了一个完全托管的解决方案,可为你的工作区和托管计算资源启用网络隔离。 使用专用终结点来帮助保护与其他 Azure 服务的通信,并限制出站通信。 使用托管虚拟网络来帮助保护以下托管计算资源:

    • 无服务器计算(包括 Spark 无服务器)
    • 计算群集
    • 计算实例
    • 托管联机终结点
    • 批处理终结点
  • Azure 虚拟网络实例:提供了自定义程度更高的虚拟网络产品。 但是,你负责配置和管理。 你可能需要使用网络安全组、用户定义的路由或防火墙来限制出站通信。

有关详细信息,请参阅 比较网络隔离配置。

加密数据

Azure 机器学习使用 Azure 平台上的各种计算资源和数据存储。 要详细了解这些资源如何支持静止数据加密和传输数据加密,请参阅 Azure 机器学习的数据加密。

阻止数据渗透

Azure 机器学习有多个入站和出站网络依赖项。 其中一些依赖项可暴露由组织内的恶意代理导致的数据外泄风险。 这些风险与 Azure 存储、Azure Front Door 和 Azure Monitor 的出站要求相关联。 有关缓解此风险的建议,请参阅 Azure 机器学习数据外泄防护。

扫描漏洞

Microsoft Defender for Cloud 跨混合云工作负载提供统一的安全管理和高级威胁防护。 对于 Azure 机器学习,请启用 对 Azure 容器注册表 资源和 AKS 资源的扫描。

审核和管理合规性

Azure Policy 是一种管理工具,可帮助确保 Azure 资源符合你的策略。 设置策略以允许或强制实施特定配置,例如 Azure 机器学习工作区是否使用专用终结点。

有关 Azure Policy 的详细信息,请参阅 Azure Policy 文档。 若要详细了解特定于 Azure 机器学习的策略,请参阅审核和管理 Azure 机器学习。