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

本文介绍可用于 Azure 机器学习的安全和治理功能。 如果管理员、DevOps 和 MLOps 想要创建符合公司策略的安全配置,那么这些功能对其十分有用。 通过 Azure 机器学习和 Azure 平台,你可以:

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

限制对资源和操作的访问

Azure Active Directory (Azure AD) 是 Azure 机器学习的标识服务提供程序。 它允许你创建和管理用于向 Azure 资源进行身份验证的安全对象(用户、组、服务主体和托管标识)。 如果 Azure AD 已配置为使用多重身份验证,则多重身份验证受支持。

下面是在 Azure AD 中使用多重身份验证的 Azure 机器学习的身份验证过程:

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

Azure 机器学习中的身份验证

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

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

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

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

注意

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

如果工作区未附加任何 Azure Kubernetes 服务 (AKS),你可以放心删除此 Azure AD 帐户。

如果工作区已附加 AKS 群集,并且这些群集是在 2021 年 5 月 14 日之前创建的,请不要删除此 Azure AD 帐户。 在这种情况下,必须先删除并重新创建 AKS 群集,然后才能删除 Azure AD 帐户。

可以将工作区预配为使用用户分配的托管标识,并将其他角色授予托管标识,以便访问所需目标(例如,访问你自己的 Azure 容器注册表以获取基础 Docker 映像)。 还可以将托管标识配置为与 Azure 机器学习计算群集配合使用。 此托管标识独立于工作区托管标识。 使用计算群集时,可以使用托管标识来访问运行训练作业的用户可能无权访问的资源,例如安全数据存储。 有关详细信息,请参阅使用托管标识进行访问控制

提示

在 Azure 机器学习中使用 Azure AD 和 Azure RBAC 有一些例外:

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

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

网络安全性和隔离

若要限制对 Azure 机器学习资源进行网络访问,可以使用 Azure 虚拟网络 (VNet)。 VNet 允许你创建与公共 Internet 部分隔离或完全隔离的网络环境。 这会减少解决方案的受攻击面以及数据外泄的几率。

你可以使用虚拟专用网 (VPN) 网关将单个客户端或你自己的网络连接到 VNet

Azure 机器学习工作区可以使用 Azure 专用链接在 VNet 之后创建专用终结点。 这将提供一组专用 IP 地址,这些地址可用于在 VNet 内访问工作区。 Azure 机器学习依赖的某些服务也可使用 Azure 专用链接,但某些服务依赖于网络安全组或用户定义的路由。

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

数据加密

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

数据外泄防护(预览版)

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

漏洞扫描

Microsoft Defender for Cloud 跨混合云工作负载提供统一的安全管理和高级威胁防护。 对于 Azure 机器学习,应启用对 Azure 容器注册表资源和 Azure Kubernetes 服务资源的扫描。 有关详细信息,请参阅通过 Defender for Cloud 扫描 Azure 容器注册表映像Azure Kubernetes 服务与 Defender for Cloud 的集成

审核和管理合规性

Azure Policy 是一种管理工具,你可用它来确保 Azure 资源符合你的策略。 可以设置策略以允许或强制实施特定配置,例如 Azure 机器学习工作区是否使用专用终结点。 有关 Azure Policy 的详细信息,请参阅 Azure Policy 文档。 若要详细了解特定于 Azure 机器学习的策略,请参阅使用 Azure Policy 审核和管理合规性

后续步骤