HKBN 字段加密后对象能力适配 PRD

版本:v0.1 创建日期:2026-05-13 需求来源:客户沟通 / 研发沟通 / 竞品调研 / 本地代码核对 优先级:P0 文档状态:草稿

需求变更记录

变更日期 变更人 变更内容

依赖需求 Story 列表

ID 需求描述 涉及端与开发人员 是否有依赖项 备注
待确认 字段加密标记后,对象基础能力识别加密字段并统一拦截 元数据 / PaaS,待确认 依赖元数据加密字段标记
待确认 公式、规则、排序、BI、查重、导入匹配等配置入口过滤加密字段 元数据 / PaaS 前端,待确认 需覆盖配置期和保存期校验
待确认 ES 同步服务适配加密字段 ES 同步服务,待确认 加密字段不得进入全文、分词、模糊搜索明文索引
待确认 历史数据迁移和正式切换程序改造 迁移程序 / 元数据,待确认 HKBN 约 442 万历史数据

一、需求概述

1.1 项目背景

背景结论: HKBN 已提出字段加密申请,并提供了 Account、Contact、Lead 等对象上的电话类字段范围。元数据团队正在推进字段加密执行和历史数据处理,但在沟通过程中发现,字段一旦启用加密后,部分 PaaS 对象基础能力仍可能引用这些字段,例如计算字段、验证规则、布局规则、筛选、排序、ES 同步、BI 分析等。因此本需求需要紧急补齐加密字段对对象能力的屏蔽和降级规则,保障 995 上线范围可控。

本需求不重新设计字段加密执行机制,也不把字段加密做成客户自助配置能力。重点是:当字段已经由元数据/后台标记为加密字段后,平台哪些对象能力必须屏蔽、哪些能力可以降级支持、哪些链路需要避免明文扩散。

需求编号 反馈客户 客户级别 反馈人 业务场景
HKBN-字段加密 HKBN 重点客户 项目团队转述 对 CRM 中客户、联系人、线索的电话类字段进行字段级加密,降低 DB 层数据泄露风险

HKBN 本次申请的待加密字段范围:

对象 字段
Contact Office_Phone_1_MDM__cOffice_Phone_2_MDM__cHomePhone_MDM__cMobile_1_MDM__cMobile_2_MDM__cFax_MDM__cPhoneMobileHome PhoneOther PhoneAsst. Phone
Account Phone
Lead PhoneMobile

1.2 系统现状

纷享CRM字段级加密能力说明

当前字段加密能力不是客户可自助配置的字段属性,也不支持通过 APL 或 API 主动调用加密函数。更准确地说:只有被后台/元数据标记为加密的字段,才会在写入时由系统自动加密保存,读取时由系统自动解密返回。 普通字段不会默认加密,业务方也不需要、不能通过 APL/API 自行调用加密能力。

字段加密的执行逻辑属于既有能力和交付现状,本需求不重新设计字段加密执行链路:

环节 现状逻辑 说明
启用方式 由开发人员在数据库/元数据层处理和标记,不开放客户自助配置 995 一期仍按后台处理,不做成普通字段配置项
数据写入 对已标记为加密的字段,页面、API、APL 写入明文字段值后,后台自动加密保存 不提供 APL/API 主动加密函数
数据读取 对已标记为加密的字段,后台读取密文后自动解密,再按现有字段权限和掩码规则返回 调用方不需要感知密文字段
历史数据迁移 对待加密字段在 Table 上增加新字段,将历史数据分批加密刷入新字段 HKBN 约 442 万历史数据,预计 1-2 天
正式切换 将增量变更数据重新加密刷入新字段,修改对象描述启用加密并指向新字段,删除旧字段 预计 30 分钟-1 小时;期间建议用户不要修改加密字段值
ES 同步 现有 ES 同步服务未处理加密字段,需要改造 加密字段不得进入全文、分词、模糊搜索的明文索引

代码层已存在 mask_field_encrypt__encrypt、读取解密、列表筛选与排序限制等基础逻辑。主要依据:

结论 本地依据
字段描述存在 mask_field_encrypt 扩展标记 fs-paas-appframework/fs-paas-app-metadata-util/src/main/java/com/facishare/paas/appframework/metadata/FieldDescribeExt.java
保存/展示链路存在加密字段处理逻辑,会生成加密值并按掩码规则处理展示值 fs-paas-appframework/fs-paas-app-metadata/src/main/java/com/facishare/paas/appframework/metadata/mask/MaskFieldLogicServiceImpl.java
加密与解密服务通过 MaskFieldEncryptService 处理字段值 fs-paas-appframework/fs-paas-app-metadata/src/main/java/com/facishare/paas/appframework/metadata/mask/MaskFieldEncryptServiceImpl.java
列表前端对加密字段已有筛选/排序降级处理 crm/crm2/modules/components/objecttable/objecttable.jscrm/crm2/modules/action/field/components/md20/table.js

当前缺口是:字段一旦被标记为加密字段,仍可能被对象基础能力引用,例如计算字段、统计字段、验证规则、布局规则、场景排序、筛选、ES 同步、BI 分析等。需要从产品层明确哪些能力必须屏蔽、哪些能力降级支持、哪些能力需要研发改造。

1.3 竞品现状

竞品结论:Salesforce 字段加密是产品化配置能力,但配置后不是“完全透明兼容”。 它把字段加密拆成三类管理动作:先生成/管理租户密钥,再配置加密策略和字段范围,最后由系统异步完成字段加密启用;同时通过系统权限控制谁能管理密钥和加密策略。

观察点 截图 说明 对本需求的启发
加密能力有独立设置入口 Salesforce Shield Platform 加密设置 Shield Platform 加密设置中集中管理租户密钥、数据库加密、文件附件加密和高级加密设置。页面提示已创建概率性租户密码,说明字段加密依赖租户级密钥材料。 字段加密不只是字段属性,还依赖租户级密钥、加密策略和后台执行链路。
密钥/策略管理受系统权限控制 Salesforce 管理加密密钥权限 管理加密密钥是权限集中的系统权限,用于管理租户秘密。没有该权限时,密钥管理页会提示需要“管理加密密钥”权限。 后续若做产品化配置,需要把“谁能启用字段加密”和“谁能看字段值”区分开;前者应走管理员系统权限。
可限制加密策略设置访问 Salesforce 高级加密设置 高级加密设置中存在“限制加密策略设置的访问权限”,说明 Salesforce 可以要求管理员具备管理加密密钥权限后,才可执行加密策略任务。 字段加密配置入口需要独立授权,不宜默认开放给所有对象管理员。
标准字段可批量选择加密 Salesforce 加密标准字段 标准字段加密页按对象展示字段,例如客户对象下的客户名、开单地址、电话等字段;页面提示加密前需要理解“考虑和权衡”,并对部分对象字段提示需要访问权限。 Salesforce 已将“标准字段是否加密”做成产品化字段选择;但启用前会提示兼容性和权限约束。
启用后存在异步处理状态 Salesforce 字段加密启用后 字段勾选后出现“启用待处理”,页面提示管理员会在启用完成时收到邮件,刷新后查看变更。 字段加密启用不是即时完成,涉及后台任务、状态反馈和完成通知;HKBN 历史数据迁移也应保留异步切换窗口。
密钥管理页会直接拦截无权限用户 Salesforce 密钥管理权限提示 进入密钥管理页时,如果当前用户没有管理加密密钥权限,只展示权限提示,不展示密钥材料。 敏感管理页面需要先做权限拦截,避免普通管理员接触密钥材料或加密策略。
竞品能力 产品化配置方式 能力限制 来源
Shield Platform Encryption 标准字段加密 在 Setup 的 Encrypt Standard Fields 页面批量选择一个或多个标准对象上的标准字段进行加密 加密字段仍存在过滤、排序、公式、自动化、关系等限制;既有数据需要同步加密策略 Apply Encryption to Standard Fields in Lightning ExperienceWhich Standard Fields Can I Encrypt?
Shield Platform Encryption 自定义字段加密 在 Object Manager 进入对象和字段详情,对支持的自定义字段逐个启用加密;支持 Email、Phone、Text 等类型 字段启用加密后不能修改字段类型;Phone、Email 等字段格式也受限制;Unique / External ID 等场景有额外约束 Which Custom Fields Can I Encrypt?
确定性加密 可用于部分需要保留等值匹配能力的字段 可支持部分等值过滤,但仍受字段类型、操作符、排序等限制 Considerations for Using Deterministic Encryption
公式 / 规则引用 官方对加密数据用于公式给出单独限制说明 Salesforce 建议 Lightning Experience 场景不要在公式中引用加密字段;Classic 加密文本字段不能用于公式字段、工作流规则条件或公式 Use Encrypted Data in FormulasClassic Encryption for Custom Fields

对本需求的启发:Salesforce 的长期方向是“字段级产品化配置 + 密钥/策略权限控制 + 启用前兼容性提示 + 启用后异步状态反馈 + 启用后能力限制”。但 HKBN 995 一期仍是开发人员在数据库/元数据层处理和标记,因此本期不做自助配置;优先补齐对象能力拦截规则,避免加密字段被公式、搜索、分析、自动化链路间接使用。

1.4 产品价值

本需求直接支撑 HKBN 对电话类敏感数据的 DB 层安全诉求,避免敏感字段以明文落库。同时通过统一限制规则,避免加密字段被公式、规则、检索、分析等能力间接使用后产生明文扩散或能力异常。

1.5 需求目标

  1. 明确加密字段对对象基础能力的影响边界,避免被计算字段、统计字段、验证规则、布局规则等公式类能力引用。
  2. 对字段筛选、场景字段排序、ES 同步、BI 分析等能力进行屏蔽或降级,保证 995 上线范围可控。
  3. 保证 HKBN 字段加密执行过程中,PaaS 周边能力不会因未适配而出现明文扩散、能力异常或客户预期不一致。

二、产品方案

2.1 方案原则

本期不做字段加密自助配置,仍由开发人员在数据库/元数据层启用和标记。产品方案只处理一个问题:字段被标记为加密后,所有依赖字段明文计算、检索、排序、聚合、分析或匹配的对象能力,都必须被识别并限制。

995 一期按“展示读写可用、等值筛选降级、其他高风险能力禁止”的口径落地。配置入口要做字段过滤,保存时要做二次校验,运行态要避免加密字段明文进入搜索索引、分析链路、日志和第三方同步。

2.2 对象能力影响矩阵

能力范围 一期策略 处理规则
页面 / API / APL 写入 支持 调用方写入明文字段值,后台对已标记字段自动加密保存;不提供主动加密函数
页面 / API 读取 支持 后台自动解密后返回,继续受字段权限、掩码规则控制;不暴露 __encrypt 等内部字段
字段筛选 降级支持 仅支持等于、不等于、为空、不为空;不支持包含、前缀、后缀、手机号后几位等部分匹配
全文搜索 / 对象内模糊搜索 / ES 索引 不支持 加密字段不进入全文、分词、模糊搜索索引;如需完整值精确匹配,需研发确认密文等值或安全哈希方案
场景排序 / 列表排序 / 相关列表排序 不支持 字段选择器中过滤加密字段;已有配置需在运行态降级或提示不支持
计算字段 / 统计字段 不支持引用 来源字段、统计字段、统计条件中均不能选择加密字段
验证规则 / 默认值公式 不支持引用 公式字段选择器中过滤加密字段,保存时解析公式并二次校验
布局规则 不支持引用 显隐、必填、只读、默认值联动等条件不能选择加密字段
自动化 / 流程 / 审批条件 不支持引用 工作流、审批流、触发器配置、业务规则条件不能引用加密字段
BI / 报表 / 汇总 / 分组 不支持 BI 侧不可见,不作为维度、指标、筛选、分组、排序或明细展示字段
查重 / 合并 / 导入匹配 / 外部 ID 不支持 不能作为重复判断、合并匹配、导入更新匹配、唯一字段、外部 ID 或主数据匹配字段
修改记录 / 审计日志 / 导出 / 同步 待确认后限制 不得记录或扩散加密字段明文;导出是否允许明文值需产品、安全、交付共同确认

2.3 配置与运行态拦截

拦截时机 处理要求
配置期 涉及字段选择器的能力统一过滤加密字段;包括公式、规则、排序、BI、查重、导入匹配、自动化条件等入口
保存期 对公式表达式、规则条件、排序配置等做二次校验,避免通过历史配置、复制配置、接口保存绕过字段过滤
开启前 若待加密字段已被现有配置引用,迁移程序或元数据服务需输出影响项清单,并阻断直接开启
运行态 对历史遗留配置做兜底拦截或降级提示;ES、日志、导出、第三方同步链路不得输出加密字段明文

2.4 ES 同步与搜索口径

ES 同步服务需要在 995 中适配加密字段。默认产品口径为:加密字段不进入全文、分词、模糊搜索索引,不支持部分搜索和后几位搜索。若业务必须支持完整值等值匹配,需要研发确认采用密文等值、哈希索引或其他安全方案;未确认前,对外口径只承诺对象查询链路中的 equal 类匹配。

2.5 上线与申请流程

本节仅说明字段加密能力的交付和上线节奏,不作为本次产品方案的核心设计范围。

规则
服务发布 程序改造预计跟随 995 发版,2026-05-23 24:00 全网发布
申请时间 995 全网后接受申请
申请信息 租户、环境、对象 API Name、对象名称、字段 API Name、字段名称
环境顺序 Dev/UAT 验证通过后,再申请正式环境
租户维度 每个租户分开申请
正式切换窗口 建议选择客户低峰期;切换期间建议用户不要修改加密字段值

2.6 客户沟通口径

字段加密用于保护电话等敏感字段在数据库及底层存储中的安全。一期开启后,字段仍可正常录入、查看和通过完整值做精确匹配,但不再支持模糊搜索、全文搜索、部分搜索、排序、BI 分析、统计汇总、公式引用、验证规则引用和布局规则引用。

该限制属于字段加密类能力的通用约束。Salesforce 等国际产品也对加密字段的过滤、排序、公式、自动化能力做了限制。

三、规范检查项

3.1 业务文案多语言 Key

无。本期不新增面向终端用户的独立业务模块文案。若研发在配置拦截处新增错误提示,需要按已有国际化机制补充 Key。

3.2 需求埋点

无。本期不新增产品埋点。

3.3 沙盒/更改集能力

模块 功能点 是否支持沙盒 是否支持更改集 说明
字段加密后台标记 指定字段启用加密 待确认 不支持 一期不是客户自助配置,不作为更改集配置项流转

3.4 PaaS 国际化兼容检查

ID 多语接入事项 是否需要 注意事项
1 接入翻译工作台 不涉及业务数据翻译
2 CRM 提醒 不新增提醒内容
3 企信消息提醒 不新增消息内容
4 修改记录 待确认 若字段变更记录展示加密字段值,需要遵守解密/掩码规则
5 审计日志 待确认 审计日志不得记录加密字段明文
6 支持快捷翻译能力 不涉及
7 支持数据多语能力 不涉及
8 预置配置多语 不涉及
9 预置示例数据多语 不涉及

3.5 新对象/新字段 BI 分析申请

不涉及新增对象/字段 BI 分析申请。加密字段在 BI 侧默认不可见,不支持分析。

3.6 操作日志说明

本期不新增用户可见操作日志。后台执行历史数据迁移、正式切换、对象描述变更时,应记录租户、对象、字段、执行人、执行时间、执行结果和失败原因,但不得记录加密字段明文。

3.7 需求风险点检测

ID 风险分组 风险类型 有无该风险 涉及风险的功能点 影响范围 响应策略
1 对现逻辑有影响 功能有减少 筛选、搜索、排序、BI、公式引用 HKBN 指定字段及后续申请字段 在客户沟通和审批中明确限制,并在配置侧拦截
2 对现逻辑有影响 功能逻辑调整 写入加密、读取解密、ES 同步 加密字段全链路 Dev/UAT 先验证,再申请正式环境
3 新能力风险 性能压力 读写加解密、历史数据迁移 442 万历史数据及后续增量数据 分批迁移,正式切换选择低峰期
4 新能力风险 逻辑不完善 对象基础能力未全量拦截 计算、规则、自动化、布局、导入等 995 先按禁止策略处理,后续按白名单放开

3.8 上线策略

3.8.1 收费标准

待确认。

3.8.2 上线节奏

说明
服务发布时间 跟随 995 发版,预计 2026-05-23 24:00 全网发布
申请节奏 995 全网后接受申请
灰度策略 先 Dev/UAT,后正式环境;每个租户单独申请
客户切换窗口 建议低峰期执行,切换期间建议用户不要修改加密字段值

3.8.3 适用版本

待确认。当前按专项客户申请处理,不作为全版本自助能力开放。

四、待确认事项

ID 待确认事项 影响范围 负责人 结论
1 995 是否必须覆盖所有公式类能力的保存期二次校验,还是先覆盖计算字段、统计字段、验证规则、布局规则四类高频入口 元数据配置拦截范围 元数据 / PaaS 产品 待确认
2 ES 是否需要支持完整值 equal 匹配,若支持采用密文匹配还是安全哈希索引 ES 同步与搜索口径 ES 同步服务 / 元数据 待确认
3 修改记录、审计日志、导出、打印、第三方同步是否都已确认不会落加密字段明文 数据扩散风险 各链路负责人 待确认
4 现有配置引用待加密字段时,是否由迁移程序输出影响清单并阻断开启 开启前检查 迁移程序 / 元数据 待确认
5 标准字段与自定义字段的加密标记、迁移和回滚策略是否完全一致 HKBN 字段范围 元数据 / 迁移程序 待确认
6 字段加密后是否允许导出明文值,还是按权限导出脱敏值 导出能力 产品 / 安全 / 交付 待确认

五、原始沟通依据

以下内容为项目沟通原文承载,不做改写。

能力现状:只有被后台/元数据标记为加密的字段,才会在写入时由系统自动加密保存,读取时由系统自动解密返回。普通字段不会默认加密,业务方也不需要、不能通过 APL/API 自行调用加密能力。

改造项 迁移程序改造@钱凌锋irony :因为有442万的历史数据需要迁移处理,需要改造迁移程序;上线的时候分两步: A、刷442万历史数据:需要先对待加密的字段在Table上增加新的字段,把历史数据分批加密刷进去;预计耗时1-2天; B、切换:把增量变更的数据重新加密刷到新字段上,然后修改对象描述启用加密并指向新字段,然后把旧字段删除;预计耗时30分钟-1小时之内;在这个过程中用户最好不要修改加密字段的值 ES同步服务改造@李晨Jason :现在的ES同步服务没有处理加密字段,需要改造处理

影响 字段开启加密后,只支持equal匹配,不支持模糊搜索、部分搜索、全文搜索等,不支持排序 字段开启加密后,在BI侧不可见,不支持任何分析

上线时间 服务发布:程序改造的量不小,预计跟随995发版(5月23日24:00全网发布); 接受申请:995全网后接受申请,请在工作圈中提审批,写清楚对象和字段的api_name和名字;先在Dev和UAT环境开开启验证后,然后再提正式环境的申请;每个租户分开申请;

新提出的问题:从基础对象的角度,加密字段对基础对象能力的适配兼容还需要做完整改造。 基于加密字段的计算字段先不做加密有一个点请确认一下:计算字段中是否可以引用加密字段?SalesForce 中好像是不可以的,也就是说:开启了字段加密的字段,不能被作为计算字段的来源字段;我们是否也要类似方式处理?

六、附录:竞品官方资料

资料 链接
Salesforce 标准字段加密配置 https://help.salesforce.com/s/articleView?id=xcloud.security_pe_apply_fle_in_lightning.htm&language=en_US&type=5
Salesforce 可加密的标准字段范围 https://help.salesforce.com/s/articleView?id=xcloud.security_pe_standard_fields.htm&language=en_US&type=5
Salesforce 可加密的自定义字段范围 https://help.salesforce.com/s/articleView?id=xcloud.security_pe_custom_fields.htm&language=en_US&type=5
Salesforce Shield Platform Encryption 通用限制 https://help.salesforce.com/s/articleView?id=sf.security_pe_considerations_general.htm&type=5
Salesforce 确定性加密限制 https://help.salesforce.com/s/articleView?id=xcloud.security_pe_deterministic_considerations.htm&language=en_US&type=5
Salesforce 加密数据用于公式的限制 https://help.salesforce.com/s/articleView?id=xcloud.security_pe_formulas.htm&language=en_US&type=5
Salesforce Classic Encryption 自定义字段限制 https://help.salesforce.com/s/articleView?id=platform.fields_about_encrypted_fields.htm&language=en_US&type=5
评审纪要
说明:当前为静态网页,记录会保存在本浏览器 localStorage;复制或下载后可合并回 PRD 源稿。