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

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

## 需求变更记录

| 变更日期 | 变更人 | 变更内容                                                                                                                                                                           |
| -------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|          | 孙浩   | 5.13第一版                                                                                                                                                                         |
|          | 孙浩   | 1. apiname=name的   主属性单行文本/编码 不能修改类型<br />2. 导入匹配先支持<br />3. 前后台 需要一起看一下**  **导入工具数据批量处理工具**  **华国<br />4. 搜索 叫上李晨 李晨 |

## 依赖需求 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__c`、`Office_Phone_2_MDM__c`、`HomePhone_MDM__c`、`Mobile_1_MDM__c`、`Mobile_2_MDM__c`、`Fax_MDM__c`、`Phone`、`Mobile`、`Home Phone`、`Other Phone`、`Asst. Phone` |
| Account | `Phone`                                                                                                                                                                                                     |
| Lead    | `Phone`、`Mobile`                                                                                                                                                                                         |

### 1.2 系统现状

![纷享CRM字段级加密能力说明](image/HKBN字段加密能力适配_PRD_20260513/1778674662514.png)

当前字段加密能力不是客户可自助配置的字段属性，也不支持通过 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.js`、`crm/crm2/modules/action/field/components/md20/table.js`                     |

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

### 1.3 竞品现状

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

| 观察点                         | 截图                                                              | 说明                                                                                                                                                   | 对本需求的启发                                                                                      |
| ------------------------------ | ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------- |
| 加密能力有独立设置入口         | ![Salesforce Shield Platform 加密设置](加密设置01.png)              | `Shield Platform 加密设置`中集中管理租户密钥、数据库加密、文件附件加密和高级加密设置。页面提示已创建概率性租户密码，说明字段加密依赖租户级密钥材料。 | 字段加密不只是字段属性，还依赖租户级密钥、加密策略和后台执行链路。                                  |
| 密钥/策略管理受系统权限控制    | ![Salesforce 管理加密密钥权限](需要分配系统权限.png)                | `管理加密密钥`是权限集中的系统权限，用于管理租户秘密。没有该权限时，密钥管理页会提示需要“管理加密密钥”权限。                                       | 后续若做产品化配置，需要把“谁能启用字段加密”和“谁能看字段值”区分开；前者应走管理员系统权限。    |
| 可限制加密策略设置访问         | ![Salesforce 高级加密设置](salesforce高级加密设置-加密标准字段.png) | 高级加密设置中存在“限制加密策略设置的访问权限”，说明 Salesforce 可以要求管理员具备 `管理加密密钥`权限后，才可执行加密策略任务。                    | 字段加密配置入口需要独立授权，不宜默认开放给所有对象管理员。                                        |
| 标准字段可批量选择加密         | ![Salesforce 加密标准字段](针对字段开启加密.png)                    | 标准字段加密页按对象展示字段，例如客户对象下的客户名、开单地址、电话等字段；页面提示加密前需要理解“考虑和权衡”，并对部分对象字段提示需要访问权限。   | Salesforce 已将“标准字段是否加密”做成产品化字段选择；但启用前会提示兼容性和权限约束。             |
| 启用后存在异步处理状态         | ![Salesforce 字段加密启用后](salesforce-字段加密开启后.png)         | 字段勾选后出现“启用待处理”，页面提示管理员会在启用完成时收到邮件，刷新后查看变更。                                                                   | 字段加密启用不是即时完成，涉及后台任务、状态反馈和完成通知；HKBN 历史数据迁移也应保留异步切换窗口。 |
| 密钥管理页会直接拦截无权限用户 | ![Salesforce 密钥管理权限提示](salesforce字段加密设置.png)          | 进入密钥管理页时，如果当前用户没有 `管理加密密钥`权限，只展示权限提示，不展示密钥材料。                                                              | 敏感管理页面需要先做权限拦截，避免普通管理员接触密钥材料或加密策略。                                |

| 竞品能力                                  | 产品化配置方式                                                                                       | 能力限制                                                                                                                      | 来源                                                                                                                                                                                                                                                                                                                         |
| ----------------------------------------- | ---------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Shield Platform Encryption 标准字段加密   | 在 Setup 的 Encrypt Standard Fields 页面批量选择一个或多个标准对象上的标准字段进行加密               | 加密字段仍存在过滤、排序、公式、自动化、关系等限制；既有数据需要同步加密策略                                                  | [Apply Encryption to Standard Fields in Lightning Experience](https://help.salesforce.com/s/articleView?id=xcloud.security_pe_apply_fle_in_lightning.htm&language=en_US&type=5)、[Which Standard Fields Can I Encrypt?](https://help.salesforce.com/s/articleView?id=xcloud.security_pe_standard_fields.htm&language=en_US&type=5) |
| Shield Platform Encryption 自定义字段加密 | 在 Object Manager 进入对象和字段详情，对支持的自定义字段逐个启用加密；支持 Email、Phone、Text 等类型 | 字段启用加密后不能修改字段类型；Phone、Email 等字段格式也受限制；Unique / External ID 等场景有额外约束                        | [Which Custom Fields Can I Encrypt?](https://help.salesforce.com/s/articleView?id=xcloud.security_pe_custom_fields.htm&language=en_US&type=5)                                                                                                                                                                                   |
| 确定性加密                                | 可用于部分需要保留等值匹配能力的字段                                                                 | 可支持部分等值过滤，但仍受字段类型、操作符、排序等限制                                                                        | [Considerations for Using Deterministic Encryption](https://help.salesforce.com/s/articleView?id=xcloud.security_pe_deterministic_considerations.htm&language=en_US&type=5)                                                                                                                                                     |
| 公式 / 规则引用                           | 官方对加密数据用于公式给出单独限制说明                                                               | Salesforce 建议 Lightning Experience 场景不要在公式中引用加密字段；Classic 加密文本字段不能用于公式字段、工作流规则条件或公式 | [Use Encrypted Data in Formulas](https://help.salesforce.com/s/articleView?id=xcloud.security_pe_formulas.htm&language=en_US&type=5)、[Classic Encryption for Custom Fields](https://help.salesforce.com/s/articleView?id=platform.fields_about_encrypted_fields.htm&language=en_US&type=5)                                        |

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

### 1.4 产品价值

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

### 1.5 需求目标

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

## 二、产品方案

### 2.1 方案原则

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

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

### 2.2 对象能力影响矩阵

以下矩阵按本次补充场景逐项评估。原则是：**凡是把字段值作为条件、公式、排序、搜索、匹配、归档范围或规则判断依据的能力，一期默认不允许引用加密字段；只有普通读写和完整值 equal 类筛选降级支持。**

| 场景                              | 是否纳入本期评估 | 一期策略               | 处理规则                                                                                                                 |
| --------------------------------- | ---------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| 页面 / API / APL 写入             | 是               | 支持                   | 调用方写入明文字段值，后台对已标记字段自动加密保存；不提供主动加密函数                                                   |
| 页面 / API 读取                   | 是               | 支持                   | 后台自动解密后返回，继续受字段权限、掩码规则控制；不暴露 `__encrypt` 等内部字段                                        |
| 字段类型变更                      | 是               | 不支持                 | 字段开启加密后不支持修改字段类型；`api_name = name` 的主属性单行文本 / 编码字段本身也不能通过修改类型来适配加密         |
| 计算公式                          | 是               | 不支持引用             | 公式字段选择器过滤加密字段；保存时解析公式并二次校验，避免手写 API Name 绕过                                             |
| 统计字段                          | 是               | 不支持引用             | 统计来源字段、统计条件、统计口径中均不能选择加密字段                                                                     |
| 前后台场景筛选条件                | 是               | 降级支持               | 仅支持完整值等于、不等于、为空、不为空；后台场景、高级筛选、列表筛选口径一致                                             |
| 前后台场景排序字段                | 是               | 不支持                 | 场景排序、后台配置排序、列表排序、相关列表排序均不能选择加密字段                                                         |
| 前台高级排序                      | 是               | 不支持                 | 多字段高级排序字段选择器中过滤加密字段；历史配置运行态降级或提示不支持                                                   |
| 布局组件显示条件                  | 是               | 不支持引用             | 组件显隐条件、字段显隐条件、区块显隐条件不能选择加密字段                                                                 |
| 布局规则                          | 是               | 不支持引用             | 显隐、必填、只读、默认值联动等规则条件不能选择加密字段                                                                   |
| 验证规则                          | 是               | 不支持引用             | 验证规则公式不能引用加密字段；保存时做公式解析校验                                                                       |
| 按钮显示条件                      | 是               | 不支持引用             | 按钮 / 动作显示条件不能选择加密字段；已有条件需在启用前输出影响清单                                                      |
| 查重                              | 是               | 不支持                 | 不支持按加密字段做新建查重、编辑查重、查重工具、合并匹配、导入查重                                                       |
| 搜索                              | 是               | 不支持模糊 / 全文      | 不进入全文、分词、模糊搜索索引；如需完整值精确匹配，需研发确认密文等值或安全哈希方案                                     |
| 打印模板过滤器                    | 是               | 不支持引用             | 打印模板的数据过滤条件不能选择加密字段；模板正文是否可展示字段值需按字段权限、脱敏和导出策略另行确认                     |
| 变更管理                          | 是               | 保存 / 发布时校验      | 配置变更、发布、部署、导入时若包含引用加密字段的规则，应阻断或提示先修改配置；字段加密标记本身一期不作为更改集配置项流转 |
| 转换规则                          | 是               | 条件不支持，映射待确认 | 转换条件、数据范围、匹配条件、回写条件不能引用加密字段；字段映射是否允许“加密字段到加密字段”需研发确认，默认不放开     |
| 离线规则                          | 是               | 不支持引用             | 离线数据范围、离线过滤条件、离线同步规则不能选择加密字段，避免加密字段明文进入离线包或本地索引                           |
| 数据归档                          | 是               | 不支持作为规则条件     | 归档数据范围、归档过滤条件、归档匹配条件不能选择加密字段；归档后的字段值保存形态需确认是否仍保持加密                     |
| 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  | 字段加密后是否允许导出明文值，还是按权限导出脱敏值                                                           | 导出能力           | 产品 / 安全 / 交付   | 待确认 |
| 7  | 转换规则是否允许“加密字段到加密字段”的字段映射；若允许，是否要求源字段和目标字段均已启用同类加密           | 转换规则           | 元数据 / PaaS 产品   | 待确认 |
| 8  | 数据归档后字段值是否继续保持加密存储，归档对象查询、恢复和导出时是否沿用原字段权限与掩码策略                 | 数据归档           | 数据归档 / 元数据    | 待确认 |
| 9  | 打印模板正文、导出模板、邮件模板等输出类能力是否允许展示解密后的字段值，还是统一按字段权限和脱敏策略输出     | 输出链路           | 产品 / 安全 / 交付   | 待确认 |

## 五、原始沟通依据

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

> 能力现状：只有被后台/元数据标记为加密的字段，才会在写入时由系统自动加密保存，读取时由系统自动解密返回。普通字段不会默认加密，业务方也不需要、不能通过 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          |
