客户管理密钥用于Fabric工作区

Microsoft Fabric使用由Microsoft管理的密钥加密所有静态数据。 对于 Fabric 工作区的客户管理密钥,可以使用 Azure 密钥保管库 密钥为 Microsoft Fabric 工作区中的数据添加另一层保护,包括 OneLake 中的所有数据。 客户管理的密钥提供更大的灵活性,使你能够管理其轮换、控制访问和使用情况审核。 它还有助于组织满足数据管理需求,并符合数据保护和加密标准。

客户管理的密钥的工作原理

所有Fabric数据存储都使用Microsoft管理的密钥进行静态加密。 客户管理的密钥使用信封加密,其中密钥加密密钥(KEK)对数据加密密钥(DEK)进行加密。 使用客户管理的密钥时,Microsoft托管 DEK 会加密数据,然后使用客户管理的 KEK 对 DEK 进行加密。 使用永不离开 密钥保管库 的密钥加密密钥(KEK),可以对数据加密密钥本身进行加密和控制。 这可确保使用客户管理的密钥对启用了 CMK 的工作区中的所有客户内容进行加密。

为您的工作区启用客户管理密钥进行加密

工作区管理员可以在工作区级别使用 CMK 设置加密。 工作区管理员启用门户中的设置后,存储在该工作区中的所有客户内容都使用指定的 CMK 进行加密。 CMK 与 AKV 的访问策略和基于角色的访问控制(RBAC)集成,使你可以灵活地根据组织的安全模型定义精细权限。 如果选择稍后禁用 CMK 加密,工作区将还原为使用Microsoft管理的密钥。 还可以随时撤销密钥,并在吊销后一小时内阻止对加密数据的访问权限。 借助工作区级别的粒度和控制,可以提升Fabric中的数据的安全性。

支持的项目

以下Fabric项目前支持客户管理的密钥:

  • Lakehouse
  • 仓库
  • Notebook
  • 环境
  • Spark 作业定义
  • GraphQL 的 API
  • ML 模型
  • 实验
  • 管道
  • 数据流
  • 复制作业
  • 行业解决方案
  • SQL Database
  • Eventhouse (预览版)
  • Graph (预览版)

对于包含不受支持的项的工作区,无法启用此功能。 启用Fabric工作区的客户管理的密钥加密后,只能在该工作区中创建受支持的项。 若要使用不支持的项目,请在未启用此功能的其他工作区中创建它们。

为您的工作区配置客户管理的密钥加密

Fabric工作区的客户托管密钥需要初始配置。 此设置包括启用Fabric加密租户设置、配置Azure 密钥保管库以及授予Fabric平台 CMK 应用对Azure 密钥保管库的访问权限。 设置完成后,具有 管理员工作区角色 的用户可以在工作区上启用该功能。

步骤 1:启用Fabric租户设置

Fabric管理员需要确保已启用应用客户管理的密钥设置。 有关详细信息,请参阅 加密租户设置 文章。

步骤 2:为 Fabric 平台 CMK 应用创建服务主体

Fabric使用 Fabric 平台 CMK 应用访问 Azure 密钥保管库。 若要使应用正常工作,必须为租户创建 服务主体 。 此过程由具有Microsoft Entra ID权限的用户执行,例如 Cloud 应用程序管理员

按照 在 Microsoft Entra ID 中从多租户应用程序创建企业应用程序的说明,在 Microsoft Entra ID 租户中为名为Fabric Platform CMK、应用程序 ID 为61d6811f-7544-4e75-a1e6-1c59c0383311的应用程序创建服务主体。

步骤 3:配置Azure 密钥保管库

需要配置密钥保管库,以便Fabric可以访问它。 此步骤由具有密钥保管库权限的用户执行,例如 密钥保管库 Administrator。 有关详细信息,请参阅 Azure Security 角色。

  1. 打开Azure门户并导航到密钥保管库。 如果没有密钥保管库,请按照 使用 Azure 门户创建key vault

  2. 在密钥保管库中,配置以下设置:

  3. 在密钥库中,打开 访问控制(IAM)

  4. “添加” 下拉列表中,选择“ 添加角色分配”。

  5. 选择“ 成员 ”选项卡,然后单击“ 选择成员”。

  6. 选择成员窗格中,搜索 Fabric Platform CMK

  7. 选择 Fabric Platform CMK 应用,然后选择 Select

  8. 选择 Role 选项卡并搜索 密钥保管库加密服务用户 或启用 获取、密钥包裹和解包密钥 权限的角色。

  9. 选择密钥保管库加密服务加密用户

  10. 选择 “审阅 + 分配 ”,然后选择“ 审阅 + 分配 ”以确认选择。

步骤 4:创建Azure 密钥保管库密钥

若要创建Azure 密钥保管库密钥,请按照 使用 Azure 门户创建密钥保管库的说明

密钥保管库要求

Fabric仅支持< c0 >无版本的客户托管密钥,这些密钥的格式为保管库的< c1 />,以及托管HSM的< c2 />。 Fabric每天检查密钥保管库是否有新版本,并使用可用的最新版本。 为了避免在创建新密钥后无法访问工作区中的数据的时间段,请在禁用旧版本之前等待 24 小时。

密钥保管库 和托管 HSM 必须启用软删除和清除保护,并且密钥必须是 RSA 或 RSA-HSM 类型。 支持的密钥大小包括:

  • 2,048 位
  • 3,072 比特
  • 4,096 位

有关详细信息,请参阅关于密钥

注释

Microsoft Fabric中的 SQL 数据库不支持 4,096 位密钥。

还可以使用启用了 firewall 设置的 Azure Key Vault。 禁用对密钥保管库的公共访问时,可以选择“允许受信任的Microsoft服务绕过此防火墙”选项。

步骤 5:使用客户管理的密钥启用加密

完成先决条件后,请按照本部分中的步骤在Fabric工作区中启用客户管理的密钥。

  1. 在Fabric工作区中,选择Workspace 设置

  2. “工作区设置 ”窗格中,选择“ 加密”。

  3. 启用使用客户管理的密钥

  4. “密钥标识符 ”字段中,输入客户管理的密钥标识符。

  5. 选择应用

完成这些步骤后,工作区会使用客户管理的密钥进行加密。 这意味着 OneLake 中的所有数据都已加密,并且工作区中的现有项和未来项由您用于设置的客户管理密钥加密。 可以在工作区设置的“加密”选项卡中查看“活动”、“正在进行”或“失败”的加密状态。 加密正在进行或失败的项目也按类别列出。 加密正在进行(状态:正在进行)时,密钥需要在密钥保管库保持活动状态。 刷新页面以查看最新的加密状态。 如果工作区中的某些项加密失败,则可以使用不同的密钥重试。

撤销访问权限

若要撤销对使用客户管理的密钥加密的工作区中的数据的访问权限,请撤销Azure 密钥保管库中的密钥。 在吊销密钥后 60 分钟内,对工作区的读取和写入调用将失败。

可以撤销客户管理的加密密钥,方法是更改访问策略,或更改针对密钥保管库的权限,或者删除该密钥。

若要恢复访问权限,请还原对密钥保管库中客户管理的密钥的访问权限。

注释

工作区不会自动重新验证 Microsoft Fabric 中 SQL 数据库的密钥。 相反,必须 手动重新验证 CMK 才能还原访问权限。

禁用加密

若要禁用使用客户管理的密钥加密工作区,请转到 “工作区设置 ”禁用 应用客户管理的密钥。 工作区仍使用Microsoft托管密钥进行加密。

注释

在工作区内的任意 Fabric 项目的加密正在进行时,您无法禁用客户托管密钥。

监测

可以通过审核日志条目跟踪Fabric工作区的加密配置请求。 在审核日志中使用以下操作名称:

  • 应用工作区加密
  • DisableWorkspaceEncryption
  • GetWorkspaceEncryption

注意事项和限制

在使用客户管理的密钥配置Fabric工作区之前,请考虑以下限制:

  • 以下数据不受客户管理的密钥的保护:

    • Lakehouse 列名称、表格式、表压缩。
    • 存储在 Spark 群集中所有数据(在临时磁盘中作为 shuffle 或数据溢出的一部分存储的数据,或者是 Spark 应用程序中的 RDD 缓存)均不受保护。 这包括笔记本、Lakehouses、Spark 作业定义、Lakehouse 表加载和维护作业、快捷方式转换、Fabric具体化视图刷新中的所有 Spark 作业。
    • 存储在历史记录服务器中的作业日志
    • 使用 magic 命令作为环境一部分附加或作为 Spark 会话自定义的一部分添加的库不受保护
    • 创建管道和复制作业时生成的元数据,例如数据库名称、表、架构
    • ML 模型和试验的元数据,如模型名称、版本、指标
    • 在 Object Explored 和后端缓存上进行的仓库查询,每次使用后都会被驱逐。
  • 所有 F SKU 都支持 CMK。 试用容量不能用于使用 CMK 进行加密。

  • 可以为托管于 BYOK 容量中的工作区启用 CMK。 可以使用相同或单独的密钥来保护启用了 CMK 的工作区和驻留在 BYOK 容量上的语义模型中的项。 (预览版)

  • 可以使用 Fabric 门户启用 CMK,并且不支持 API。

  • 在启用租户级别加密设置时,可以为工作区启用和禁用 CMK。 关闭租户设置后,不能再为该租户中的工作区启用 CMK,也不能为已在该租户中启用 CMK 的工作区禁用 CMK。 在关闭租户设置之前启用 CMK 的工作区中的数据仍使用客户管理的密钥进行加密。 使关联的密钥保持活动状态,以便能够在该工作区中解包数据。