Compartir a través de

Azure 机器学习的客户管理的密钥

Azure 机器学习是在多个 Azure 服务的基础上构建的。 虽然存储的数据会通过 Microsoft 提供的加密密钥来加密,但你也可以通过提供自己的(客户管理的)密钥来增强安全性。 你提供的密钥存储在 Azure Key Vault 中。 你的数据存储在你在 Azure 订阅中管理的一组其他资源上。

除了客户管理的密钥 (CMK) 以外,Azure 机器学习还提供了一个 hbi_workspace 标志。 启用此标志可以减少 Microsoft 为诊断收集的数据量,并在 Azure 管理的环境中启用其他加密。 此标志还实现以下行为:

  • 开始加密 Azure 机器学习计算群集中的本地暂存磁盘,如果你之前没有在该订阅中创建任何群集。 否则,你需要提交支持票证来启用对计算群集的暂存磁盘的加密。
  • 在不同作业之间清理本地暂存磁盘。
  • 利用密钥保管库,将存储帐户、容器注册表和安全外壳 (SSH) 帐户的凭据从执行层安全地传递到计算群集。

hbi_workspace 标志不会影响传输中的加密。 它仅影响静态加密。

先决条件

  • Azure 订阅。
  • 一个 Azure 密钥保管库实例。 密钥保管库包含用于加密你的服务的密钥。

密钥保管库必须启用软删除和清除保护。 你使用客户管理的密钥帮助保护的服务的托管标识必须具有对密钥保管库的以下权限:

  • 打包密钥
  • 解包密钥
  • 获取

例如,Azure Cosmos DB 的托管标识需要对密钥保管库拥有这些权限。

限制

  • 创建工作区后,工作区所依赖的资源的客户管理的加密密钥只能更新为原始 Azure Key Vault 资源中的其他密钥。
  • 除非你使用的是服务器端预览,否则加密数据将存储在订阅中 Azure 受管理资源组中的资源上。 你不能提前创建这些资源,也不能将它们的所有权转让给你。 在 Azure 机器学习服务中创建对象时,通过 Azure 机器学习 API 间接管理数据生命周期。
  • 在不删除工作区的情况下,无法删除用于客户管理的密钥的 Azure 受管理资源。
  • 无法使用客户管理的密钥加密计算群集的 OS 磁盘。 必须使用 Azure 管理的密钥。

警告

请不要删除包含此 Azure Cosmos DB 实例的资源组,也不要删除此组中自动创建的任何资源。 如果需要删除资源组或其中的 Azure 托管服务,则必须删除使用该组的 Azure 机器学习工作区。 删除关联的工作区时,将删除资源组的资源。

客户管理的密钥

使用客户管理的密钥时,Microsoft 会在 Microsoft 拥有的 Azure 订阅中创建和管理资源,并使用 Azure 管理的密钥加密数据。

如果你使用客户管理的密钥,则资源将位于你的 Azure 订阅中,并使用你的密钥进行加密。 虽然这些资源存在于你的订阅中,但 Microsoft 会对它们进行管理。 创建 Azure 机器学习工作区时,会自动创建并配置这些资源。

这些 Azure 受管理资源位于订阅中创建的一个新 Azure 资源组中。 此资源组与你的工作区的资源组是分开的。 它包含与密钥一起使用的 Azure 受管理资源。 用于命名资源组的公式为:<Azure Machine Learning workspace resource group name><GUID>

提示

Azure Cosmos DB 的请求单位会按需自动缩放。

如果 Azure 机器学习工作区使用专用终结点,则此资源组还包含 Azure 管理的 Azure 虚拟网络。 此虚拟网络有助于保护托管服务与工作区之间的通信。 无法提供自己的虚拟网络与 Azure 受管理资源一起使用。 你也不能修改虚拟网络。 例如,你不能更改它使用的 IP 地址范围。

重要

如果你的订阅不能为这些服务提供足够的配额,则会发生失败。

使用客户管理的密钥时,订阅成本更高,因为这些资源在你的订阅中。 若要估算成本,请使用 Azure 定价计算器

计算资源上的数据加密

Azure 机器学习使用计算资源来训练和部署机器学习模型。 下表介绍了计算选项以及每个选项如何加密数据:

计算 加密
Azure 容器实例 使用 Azure 托管密钥或客户管理的密钥对数据进行加密。
有关详细信息,请参阅加密部署数据
Azure Kubernetes 服务 使用 Azure 托管密钥或客户管理的密钥对数据进行加密。
有关详细信息,请参阅在 Azure Kubernetes 服务中对 Azure 磁盘使用自己的密钥
Azure 机器学习计算实例 如果为工作区启用 hbi_workspace 标志,则会加密本地暂存磁盘。
Azure 机器学习计算群集 OS 磁盘在 Azure 存储中使用 Azure 管理的密钥进行加密。 如果为工作区启用 hbi_workspace 标志,则会加密临时磁盘。
计算 Encryption
Azure Kubernetes 服务 使用 Azure 托管密钥或客户管理的密钥对数据进行加密。
有关详细信息,请参阅在 Azure Kubernetes 服务中对 Azure 磁盘使用自己的密钥
Azure 机器学习计算实例 如果为工作区启用 hbi_workspace 标志,则会加密本地暂存磁盘。
Azure 机器学习计算群集 OS 磁盘在 Azure 存储中使用 Azure 管理的密钥进行加密。 如果为工作区启用 hbi_workspace 标志,则会加密临时磁盘。

计算群集

计算群集具有本地 OS 磁盘存储,并且可以在作业期间从订阅中的存储帐户装载数据。 在作业中装载来自你自己的存储帐户的数据时,你可以在这些存储帐户上启用客户管理的密钥以进行加密。

每个计算节点的 OS 磁盘存储在 Azure 存储中,始终使用 Azure 机器学习存储帐户中的 Azure 管理的密钥进行加密,而不是使用客户管理的密钥进行加密。 此计算目标是临时的,因此群集纵向缩减后,OS 磁盘上存储的数据将被删除。 当没有作业排队、自动缩放处于开启状态且最小节点数设置为零时,群集通常会纵向缩减。 基础虚拟机已取消预配,并已删除 OS 磁盘。

OS 磁盘不支持 Azure 磁盘加密。 每个虚拟机还包含一个本地临时磁盘用于 OS 操作。 如果需要,可以使用该磁盘来暂存训练数据。 如果创建工作区时将 hbi_workspace 参数设置为 TRUE,则将对临时磁盘进行加密。 此环境短暂存在(仅在作业期间),加密支持仅限于系统管理的密钥。

计算实例

计算实例的 OS 磁盘使用 Azure 机器学习存储帐户中的 Azure 管理的密钥进行加密。 如果创建工作区时将 hbi_workspace 参数设置为 TRUE,则计算实例上的本地临时磁盘将使用 Azure 管理的密钥进行加密。 OS 和临时磁盘不支持客户管理的密钥加密。

加密工作区元数据的存储

自带加密密钥时,服务元数据存储在 Azure 订阅中的专用资源上。 Microsoft 会出于此目的在你的订阅中创建一个单独的资源组:azureml-rg-workspacename_GUID。 只有 Microsoft 才能修改此托管资源组中的资源。

Microsoft 会创建以下资源来存储你的工作区的元数据:

服务 使用情况 示例数据
Azure Cosmos DB 存储作业历史记录数据、计算元数据、资产元数据。 数据可能包括作业名称、状态、序列号和状态;计算群集名称、核心数、节点数;数据存储名称和标记、资产(如模型)的说明;数据标签名称。
Azure AI 搜索 存储有助于查询机器学习内容的索引。 这些索引基于 Azure Cosmos DB 中存储的数据构建。
Azure 存储 存储与 Azure 机器学习管道数据相关的元数据。 数据可能包括设计器管道名称、管道布局和执行属性。

从数据生命周期管理的角度来看,当你在 Azure 机器学习中创建和删除相应对象时,会创建和删除上述资源中的数据。

你的 Azure 机器学习工作区会使用其托管标识读取和写入数据。 通过数据资源的角色分配(Azure 基于角色的访问控制)为此标识授予对资源的访问权限。 所提供的加密密钥用于加密存储在 Azure 受管理资源上的数据。 该密钥还用于在运行时为 Azure AI 搜索创建索引。

在工作区上创建专用链接终结点以允许入站连接时,会配置额外的网络控制。 此配置包括创建与 Azure Cosmos DB 实例的专用链接终结点连接。 网络访问仅限于受信任的 Microsoft 服务。

(预览版)元数据的服务端加密

客户管理的密钥加密工作区的新体系结构以预览版提供,与当前体系结构相比,它降低了成本,并缓解了 Azure 策略冲突的可能性。 在此新模型中,加密的数据存储在 Azure 托管资源的服务端,而不是存储在订阅中。

先前存储在订阅的 Azure CosmosDB 中的数据,现在使用加密密钥通过文档级加密存储在多租户 Azure 受管理资源中。 先前存储在订阅的 Azure AI 搜索中的搜索索引,存储在按工作区专门为你预配的 Azure 托管资源上。 Azure AI 搜索实例的费用在 Microsoft 成本管理中的 Azure 机器学习工作区下收费。

以前存储在托管资源组存储帐户中的管道元数据,现在存储在与 Azure 机器学习工作区关联的订阅中的存储帐户上。 由于此 Azure 存储资源在订阅中单独管理,因此你需负责在其上配置加密设置。

若要选择加入此预览版,请在 REST API 或 Bicep 或资源管理器模板中设置 enableServiceSideCMKEncryption。 也可以使用 Azure 门户。 预览版可用性因工作区类型而异:

Kind 支持
默认
Hub
集成

“加密”选项卡的屏幕截图,其中已选中“服务器端加密”选项。

注意

在此预览版密钥轮换期间,不支持数据标记功能。

有关创建具有元数据服务端加密的工作区的模板,请参阅 https://github.com/azure/azure-quickstart-templates/tree/master/quickstarts/microsoft.machinelearningservices/machine-learning-workspace-cmk-service-side-encryption

hbi_workspace 标志

只能在创建工作区时设置 hbi_workspace 标志。 无法为现有工作区更改它。

将此标志设置为 TRUE 时,可能会增加排查问题的难度,因为发送到 Microsoft 的遥测数据会变少。 成功率或问题类型的可见性较低。 当此标志为 TRUE 时,Microsoft 可能无法那么主动的做出反应。

若要在创建 Azure 机器学习工作区时启用 hbi_workspace 标志,请按照以下某篇文章中的步骤操作:

后续步骤