Microsoft Fabric 使用 Microsoft 托管密钥加密所有静态数据。 使用 Fabric 工作区的客户管理的密钥,可以使用 Azure Key Vault 密钥为 Microsoft Fabric 工作区中的数据添加另一层保护。 客户管理的密钥提供更大的灵活性,使你能够管理其轮换、控制访问和使用情况审核。 它还有助于组织满足数据管理需求,并符合数据保护和加密标准。
所有 Fabric 数据存储都使用Microsoft管理的密钥进行静态加密。 客户管理的密钥使用信封加密,其中密钥加密密钥(KEK)对数据加密密钥(DEK)进行加密。 使用客户管理的密钥时,Microsoft管理的DEK会加密您的数据,然后使用客户管理的KEK对DEK进行加密。 使用永不离开 Key Vault 的 KEK 允许对数据加密密钥本身进行加密和控制。
重要
此功能目前为预览版。
先决条件
Fabric 工作区的客户托管密钥需要进行初始设置。 此设置包括启用 Fabric 加密租户设置、配置 Azure Key Vault 以及授予 Fabric 平台 CMK 应用对 Azure Key Vault 的访问权限。 设置完成后,具有 管理员工作区角色 的用户可以在工作区上启用该功能。
步骤 1:启用 Fabric 租户设置
Fabric 管理员需要确保已启用“应用客户管理的密钥”设置。 有关详细信息,请参阅 加密租户设置 文章。
步骤 2:为 Fabric 平台 CMK 应用创建服务主体
Fabric 使用 Fabric 平台 CMK 应用访问 Azure Key Vault。 若要使应用正常工作,必须为租户创建 服务主体 。 此过程由具有 Microsoft Entra ID 权限的用户(例如 云应用程序管理员)执行。
按照 Microsoft Entra ID 中的多租户应用程序创建企业应用程序 中的说明,为 Microsoft Entra ID 租户中名为 Fabric Platform CMK 的应用程序创建服务主体。
步骤 3:配置 Azure Key Vault
需要配置 Key Vault,以便 Fabric 可以访问它。 此步骤由具有 Key Vault 权限的用户(例如 Key Vault 管理员)执行。 有关详细信息,请参阅 Azure 安全 角色。
打开 Azure 门户并导航到 Key Vault。 如果没有 Key Vault,请按照 使用 Azure 门户创建密钥保管库中的说明进行作。
在 Key Vault 中,配置以下设置:
在 Key Vault 中,打开访问控制(IAM)。
在 “添加” 下拉列表中,选择“ 添加角色分配”。
选择“ 成员 ”选项卡,然后单击“ 选择成员”。
在 “选择成员”窗格中,搜索 Fabric 平台 CMK
选择 Fabric 平台 CMK 应用,然后点击选择。
选择 “角色 ”选项卡并搜索 Key Vault 加密服务加密用户 或启用 获取、包装密钥和解包密钥 权限的角色。
选择 Key Vault 加密服务加密用户。
选择 “审阅 + 分配 ”,然后选择“ 审阅 + 分配 ”以确认选择。
步骤 4:创建 Azure Key Vault 密钥
若要创建 Azure Key Vault 密钥,请按照使用 Azure 门户创建密钥保管库中的说明作。
Key Vault 要求
Fabric 仅支持 无版本客户管理的密钥,这些密钥是格式的 https://{vault-name}.vault.azure.net/{key-type}/{key-name}
密钥。 Fabric 每天检查密钥保管库是否有新版本,并使用可用的最新版本。 为了避免在创建新密钥后无法访问工作区中的数据的时间段,请在禁用旧版本之前等待 24 小时。
密钥必须是 RSA 密钥。 支持的大小包括:
- 2,048 位
- 3,072 比特
- 4,096 位
有关详细信息,请参阅关于密钥。
使用客户管理的密钥启用加密
按照本部分中的步骤在 Fabric 工作区中使用客户管理的密钥。
在 Fabric 工作区中,选择 “工作区设置”。
在 “工作区设置 ”窗格中,选择“ 加密”。
启用使用客户管理的密钥。
在 “密钥标识符 ”字段中,输入客户管理的密钥标识符。
选择应用。
完成这些步骤后,工作区会使用客户管理的密钥进行加密。 这意味着工作区中的现有项目和未来项目将由您用于设置的客户管理密钥加密。 可以在工作区设置的“加密”选项卡中查看“活动”、“正在进行”或“失败”的加密状态。 加密正在进行或失败的项目也按类别列出。 加密正在进行时,密钥需要在 Key Vault 中保持活动状态(状态:正在进行)。 刷新页面以查看最新的加密状态。 如果工作区中的某些项加密失败,则可以使用不同的密钥重试。
撤销访问权限
若要撤销对使用客户管理的密钥加密的工作区中的数据的访问权限,请撤销 Azure Key Vault 中的密钥。 在吊销密钥后 60 分钟内,对工作区的读取和写入调用将失败。
可以撤销客户管理的加密密钥,方法是更改访问策略,或更改针对密钥保管库的权限,或者删除该密钥。
若要恢复访问权限,请还原对 Key Vault 中客户管理的密钥的访问权限。
禁用加密
若要禁用使用客户管理的密钥加密工作区,请转到 “工作区设置 ”禁用 应用客户管理的密钥。 工作区仍使用Microsoft托管密钥进行加密。
如果工作区中任何 Fabric 项正在进行加密操作时,无法禁用客户管理的密钥。
加密目前在选定区域内可用,并且仅适用于使用这些区域容量的工作区。
注意事项和限制
在使用客户管理的密钥配置 Fabric 工作区之前,请考虑以下限制:
以下 Fabric 项目目前支持客户管理密钥:
- Lakehouse
- 环境
- Spark 作业定义
- GraphQL 的 API
- ML 模型
- 实验
- 数据管道
- 数据流
- 行业解决方案
对于包含不受支持的项的工作区,无法启用此功能。
启用 Fabric 工作区的客户管理的密钥加密后,只能在该工作区中创建受支持的项。 若要使用不支持的项目,请在未启用此功能的其他工作区中创建它们。
下面列出的数据不受客户管理的密钥的保护:
- 存储在 Spark 群集中的所有数据(作为随机磁盘或数据溢出或 SPARK 应用程序中的 RDD 缓存的一部分存储的数据)不受保护。 这包括笔记本中的所有 Spark 作业、Lakehouse、Spark 作业定义、Lakehouse 表加载和维护作业、快捷转换、Fabric 具体化视图刷新。
- 存储在历史记录服务器中的作业日志
- 使用 magic 命令作为环境一部分附加或作为 Spark 会话自定义的一部分添加的库不受保护
- Lakehouse 列名称,表格式,表压缩,SQL 终结点
- 创建数据管道和复制作业时生成的元数据,例如数据库名称、表、架构
- ML 模型和试验的元数据,如模型名称、版本、指标
CMK 仅在以下区域受支持:美国东部、德国中西部、美国中北部、北欧、美国中南部、东南亚、阿联酋北部、英国南部、西欧和美国西部。 若要使用 CMK,您的主区域和容量必须位于受支持的地区内。
所有 F SKU 都支持 CMK。
可以使用 Fabric 门户启用 CMK,并且不支持 API。
启用 Azure Key Vault 防火墙设置时不支持 CMK。
在启用租户级别加密设置时,可以为工作区启用和禁用 CMK。 关闭租户设置后,不能再为该租户中的工作区启用 CMK,也不能为已在该租户中启用 CMK 的工作区禁用 CMK。 在关闭租户设置之前启用 CMK 的工作区中的数据将使用客户管理的密钥进行加密。 使关联的密钥保持活动状态,以便能够在该工作区中解包数据。