Shield Platform Encryption

Shield Platform Encryption 让你加密 Salesforce 平台上所有静态敏感数据。本文跟随 Zephyrus 团队,讲解加密密钥材料(租户密钥、根密钥、DEK)、概率式与确定性加密、规划与权限要求,并动手启用数据库加密、文件与附件、字段级、事件总线和搜索索引加密。...

📅 2026/10/11 ✍️ ponybai 🏷️ salesforce, headless

Shield Platform Encryption 入门(01 Get Started with Shield Platform Encryption)

slide_2
slide_3

本单元介绍基础——Zephyrus 的安全审查、Shield Platform Encryption 背后的密钥材料、加密模式以及密钥管理选项。

完成本单元后,你将能够:

  • 识别 Shield Platform Encryption 中不同类型的密钥材料;
  • 解释主密钥(primary secret)、租户密钥(tenant secret)、根密钥(root key)、数据加密密钥(DEK)、盐(salt)和初始化向量(IV)之间的关系;
  • 识别密钥派生函数(KDF)的各部分;
  • 解释概率式加密与确定性加密的区别。

为安全审查做好准备(Get Ready for a Security Review)

slide_4

Zephyrus 是一家为跨国调动员工提供全面搬迁管理的小公司,处理大量个人且敏感的信息。CEO Carolyn、IT 总监 Ernesto 和管理员 Calvin 开会讨论数据安全。Ernesto 提出最近安全审查发现的静态数据(data at rest)漏洞,Calvin 解释说公司目前用 Salesforce Classic Encryption,只对某些敏感字段提供 128 位加密,但审查建议升级到 256 位加密和更好的密钥管理。

Calvin 提到 Shield Platform Encryption 提供:256 位加密强度、事务数据库全量加密、字段级加密(FLE)、Data 360 平台加密、搜索索引加密、文件和附件加密、事件总线数据加密,以及管理自有密钥的选项。

了解不同的加密密钥材料(Learn the Different Encryption Key Materials)

slide_5

Shield Platform Encryption 的一个要点是:数据加密密钥(DEK)从不以明文存储在磁盘上。DEK 的生成方式:

  • 由密钥派生函数(KDF)生成——如字段级加密,DEK 只存在于加密密钥缓存中,且很快过期;
  • 或直接生成——如搜索加密,DEK 存储在 TenantSecret 表中,但被根密钥包裹(双重加密),只在放入加密缓存时才解包。

密钥材料包括:主密钥、租户密钥、根密钥、DEK、盐和 IV。用根密钥包裹 DEK 的方式与外部密钥管理服务兼容。

区分概率式与确定性加密(Distinguish Between Probabilistic and Deterministic Encryption)

slide_6

字段加密提供两种方案:

  • 概率式(probabilistic)加密——每次随机生成一个初始化向量(IV),即使明文没变,密文每次也不同。非常安全,但可能损失某些功能(如过滤);
  • 确定性(deterministic)加密——用字段特定的静态 IV(永不改变),明文不变则密文相同,支持更多功能,但安全性略低。

Ernesto 决定先推荐概率式加密,再让测试组试用并反馈性能和可用性变化。

了解外部管理密钥的特性(Review the Features of Externally Managed Keys)

slide_7

默认情况下,在 Salesforce 应用内生成的密钥材料(如根密钥、租户密钥)存储在 Salesforce 数据库中。但 Salesforce 提供几种密钥管理选项:

  • 外部密钥管理(EKM)——用外部 KMS(如 AWS KMS)作为密钥控制器;
  • 自带密钥(BYOK)——用任意安全密钥服务中生成或存储的密钥材料作为密钥源;
  • 仅缓存密钥(CoK)——把 BYOK DEK 直接插入加密密钥缓存,绕过 KDF。

EKM、BYOK、CoK 都要求提供 AES-256 位密钥,并用于你为功能选择的模式。

了解密钥轮换(Learn About Key Rotation)

slide_8

密钥轮换是生成或提供新密钥材料作为活跃密钥。安全审查建议:每 120 天轮换一次加密密钥,并安全备份每个旧密钥。

轮换时,从该材料派生的所有 DEK 也会轮换,新数据用新活跃租户密钥派生的新 DEK 加密解密。Salesforce 主密钥每次发布(每年三次)轮换;你可以每 24 小时轮换一次租户密钥、根密钥和 DEK——远超过需求。

规划 Shield Platform Encryption(02 Plan for Shield Platform Encryption)

slide_9
slide_10

本单元 Calvin 规划实施——审查安全需求、了解 Shield 提供什么、需求与权限,以及用户体验影响。

完成本单元后,你将能够:

  • 识别 Shield Platform Encryption 的主要特性和前置要求;
  • 识别在组织中设置它所需的权限;
  • 描述它如何影响用户访问信息的方式;
  • 匹配 Classic Encryption 与 Shield Platform Encryption 提供的加密特性。

审查安全需求(Review the Security Needs)

slide_11

安全审查推荐的三个要求:

  • 对加密相关的权限和密钥设置受限访问;
  • 对所有敏感数据字段、文件、日志和搜索应用 AES-256 静态加密;
  • 对客户体验影响尽量小或为零。

带着这些要求,Calvin 开始研究 Shield Platform Encryption。

了解 Shield Platform Encryption(Learn About Shield Platform Encryption)

slide_12

Shield Platform Encryption 能加密 Salesforce 平台上所有静态(at rest)的机密和敏感数据——「静态」指不活跃或存储在文件、电子表格、标准与自定义字段、事件数据、甚至数据库和数据仓库里的数据。你甚至可以用一个设置加密事务数据库里的每个数据元素。

它给你加密优势:证明符合监管和行业要求、满足云中私有数据的合同义务、符合公司的加密策略。

对比 Classic Encryption 与 Shield Platform Encryption(Compare Classic vs Shield)

slide_13

Classic Encryption 只能保护一种专为此创建的特殊自定义文本字段。

Shield Platform Encryption:

  • 数据库加密——加密整个事务数据库(每个标准/自定义字段的每次变更都被加密);
  • 字段级加密——加密多种常用标准字段和部分自定义字段;
  • 支持个人账户、工单、搜索、审批流程、大文件、附件等;
  • 能加密 Salesforce 内更多存储区域的更多数据。

Shield Platform Encryption 的特性(Review the Features of Shield Platform Encryption)

slide_14

Shield Platform Encryption 汇集了多个特性:

  • 数据库加密——加密整个事务数据库;
  • 字段级加密——加密选定的标准和自定义字段;
  • 文件和附件——加密不存储在数据库中的大文件;
  • 搜索索引——加密搜索索引;
  • 事件总线——加密变更数据捕获和平台事件数据;
  • Data 360 平台加密——保护数据源。

为 Shield Platform Encryption 做好准备(Get Ready for Shield Platform Encryption)

slide_15

Shield Platform Encryption 无硬件要求,加密函数在 Salesforce 平台原生运行,无需自定义代码。

开始前:审查公司需求、行业法规和客户义务以决定加密什么;尽早规划密钥管理(轮换频率、备份位置、如何区分密钥)。生产中需要有效的 Shield 许可证(Developer Edition 组织可免费试用);要在 sandbox 用 Shield,生产组织必须先安装 Shield。

启用 Shield Platform Encryption:简版(Enable Shield: The Short Story)

slide_16

开启 Shield 只需三步:

  1. 配置许可证——联系 Salesforce 获取(Developer Edition 组织自动可用);
  2. 分配权限——给适当的管理员授予 Customize Application 和 Manage Encryption Keys 权限;
  3. 为组织启用特性——开启各个 Shield 特性,创建组织特定的租户密钥,自定义加密设置。

设置 Shield Platform Encryption 所需的权限(Learn the Permissions Required)

slide_17

启用 Shield 需要 Customize Application 和 Manage Encryption Keys 权限。不同任务对应不同组合:

  • 查看 Platform Encryption Setup 页面——Customize Application + View Setup and Configuration;
  • 编辑 Encryption Policy 页面——Manage Encryption Keys + Customize Application;
  • 生成/销毁/导出/导入租户密钥——Manage Encryption Keys;
  • 通过 API 查询 TenantSecret——Manage Encryption Keys;
  • BYOK 的 HSM 证书——Manage Encryption Keys + Customize Application + Manage Certificates;
  • 启用 Advanced Settings——两个权限都要。

不要人人都能管理加密密钥,按需分配。

Shield Platform Encryption 对用户体验的影响(Explore the Effects of the User Experience)

slide_18

用户如何体验加密数据:

  • 数据可见性——有权限的用户正常查看交互,无权限用户看到加密文本(一串随机字符);
  • 搜索与报表——加密字段仍可搜索和纳入报表,数据库加密不影响这些操作;字段级加密视设置可能轻微影响性能;
  • 合规与安全——静态数据用 AES-256 保护,用户更安心;
  • 界面——整体基本不变,访问或处理加密数据时可能有极轻微延迟。

Calvin 计划用 alpha 和 beta 测试组观察用户反应。

使用数据库加密与文件和附件加密(03 Use Database Encryption with Files and Attachments Encryption)

slide_19
slide_20

本单元动手实践——分配权限、启用数据库加密、用租户密钥加密文件和附件。

完成本单元后,你将能够:

  • 分配生成、轮换和归档组织密钥的权限;
  • 启用数据库加密;
  • 为文件、字段和附件启用加密。

推进 Shield Platform Encryption(Move Forward with Shield Platform Encryption)

slide_21

团队有信心 Shield 能覆盖安全审查里的所有问题,且不干扰用户体验。他们决定建一个 Developer Edition 组织试用:Calvin 创建组织并管理密钥生成,Ernesto 处理权限和密钥管理。计划分两组测试:

  1. 数据库加密 + 文件和附件;
  2. 字段级加密、搜索索引加密和事件总线数据加密。

动手实践 Shield Platform Encryption(Get Hands-On with Shield Platform Encryption)

slide_22

跟随 Calvin 和 Ernesto 走完整设置流程:创建 Developer Edition 组织、分配权限、启用数据库加密、生成租户密钥、启用文件和附件加密。下一单元再把配置扩展到字段级、事件总线和搜索加密。

分配权限(Assign Permissions)

slide_23

Ernesto 通过新的权限集授予所需权限:

  1. Setup → 搜索 Permission Sets → 选 Permission Sets → New;
  2. Label 填 Key Boss,点击 Save;
  3. System 区选 System Permissions → Edit,启用 Customize Application 和 Manage Encryption Keys,Save 并确认;
  4. Setup → 搜索 Users → 选 Users → 选你的名字;
  5. Permission Set Assignments → Edit Assignments → 把 Key Boss 加入 Enabled Permission Sets → Save。

Ernesto 把 Calvin 和自己的账号都加上,两人都能处理加密任务。

启用数据库加密(Enable Database Encryption)

slide_24

数据库加密是开始使用 Shield 最快的方式:一次选择就能开始加密每个数据字段、所有元数据和任何小到可存进数据库的文件,且不牺牲加密内容的过滤或排序。

启用步骤:Setup → 搜索 Platform Encryption → 选 Encryption Settings → 在 Encryption Policy 区点击 Encrypt the Transactional Database 开关。

注意:数据库加密的决定是永久性的——一旦开启就永久开启(仍可同时使用其它 Shield 特性)。开启后 Salesforce 自动创建第一个数据库加密租户密钥,所有新事务立即受保护。务必先在 sandbox 测试再上生产。

了解数据库加密的处理过程(Learn the Database Encryption Process)

slide_25

数据库加密的最小加密单元是数据库片段(fragment/page)。它安全管理大量可加密事务,直到能写出一个加密片段。这种基于片段的架构导致片段被持续重新加密,加密以有机方式逐渐扩散到整个事务数据库。因此启用数据库加密后,无需同步数据,同步也不可用。

了解数据库加密的密钥(Learn About Database Encryption Secrets)

slide_26

数据库加密管理和使用密钥的方式不同于其它特性:

  • 它用租户密钥、IV 和 KDF 派生 DEK,但把每个 DEK 限定到单个数据库片段,每次写入都生成片段特定的 IV,DEK 安全地永久存储在数据库中;
  • 因为这种片段式架构,数据库加密的租户密钥不能导出、导入或销毁,也不经 API 访问——Key Management 的 Database 标签下只有「生成新密钥」和「上传 BYOK」两个选项;
  • 其它特性最多 50 个活跃租户密钥,但数据库加密的密钥不计入此限制。

加密文件和附件(Encrypt Files and Attachments)

slide_27

搬迁会生成大量合同、清单和提单。小于几 KB 的文件存进数据库、由数据库加密保护;但更大的文件需要启用文件和附件加密。启用前必须先创建租户密钥——字段、文件和附件共用同一个租户密钥。

开启开关后,新增的文件和附件在添加时即被加密;已有内容可用 Encryption Statistics and Data Sync 页面加密。任何有 Customize Application 权限的人都能加密受支持的文件类型和附件。

生成你的租户密钥(Generate Your Tenant Secrets)

slide_28

租户密钥用于派生加密密钥,它与 Salesforce 生成的主密钥配合,但每个租户密钥都是组织特定的——每个组织的数据用该组织独有的密钥加密。

创建第一个密钥:Setup → 搜索 Platform Encryption → Encryption Settings → 启用 Generate Initial Probabilistic Tenant Secret 开关。

这一步会创建三个租户密钥:一个用于 Fields、一个用于 Files and Attachments、一个用于 Event Bus Data。

使用字段级、事件总线和搜索加密(04 Use Field-Level, Event Bus, and Search Encryption)

slide_29
slide_30

本单元把加密扩展到字段级数据、事件总线数据和搜索索引。

完成本单元后,你将能够:

  • 为标准字段启用加密;
  • 选择要加密的字段;
  • 为事件总线数据启用加密;
  • 为搜索启用加密。

深入 Shield Platform Encryption(Go Deeper with Shield Platform Encryption)

slide_31

事务数据库和大文件已加密。Ernesto 指出某些合规策略需要:特定敏感字段拥有自己的加密可追溯性,以及事件日志和搜索索引等其它敏感数据源也要受保护。他们决定启用这些特性并继续测试。

为标准字段启用加密并选择字段(Enable Encryption for Standard Fields and Select Fields)

slide_32

用租户密钥加密字段(Calvin 要加密 Description、Phone、Email 等标准字段):

  1. Encryption Settings → Advanced → 在 Encrypt Standard Fields 旁点击 Select Fields;
  1. 点击 Edit,在 Account 区选 Phone、Fax、Description 等字段,点击 Save。

自动验证会检查组织设置并邮件通知你;有阻断项会收到修复说明。概率式是默认,确定性可用于需要排序的热门字段。新数据自动加密,已有数据可用 Data Sync 加密。记住:加密不替代字段级访问控制——运行时加密数据对用户看起来和未加密一样。

加密事件总线数据(Encrypt Event Bus Data)

slide_33

事件流常包含黑客的「宝库」:数据集成、应用通信、审计跟踪产生的敏感数据——客户联系信息、财务细节、专有业务洞察。启用事件总线加密确保这些信息静态时受保护。

步骤:Encryption Settings → Encryption Policy 区启用 Encrypt Change Data Capture Events and Platform Events。事件的租户密钥在创建首批密钥时已生成,只需开启特性。新事件数据自动加密,已有数据可用 Data Sync 加密。

加密搜索索引(Encrypt Search Indexes)

slide_34

即使字段和文件加密得很好,搜索索引仍保存着便于快速搜索的数据摘要。如果不加密索引,敏感信息片段可能通过搜索结果暴露,甚至暴露给无权访问底层加密记录的用户。

类比:你可能锁了房门(加密字段和文件),但如果把曾祖母银器的易读笔记留在前院(未加密的搜索索引),你仍然脆弱。加密搜索索引能确保那些「笔记」也被打乱、对不该读的人不可读。

启用搜索索引加密(Enable Search Index Encryption)

slide_35

搜索加密与其它特性不同:它用根密钥而不是 KDF 派生 DEK。Salesforce 创建一个根密钥和一个 DEK,两者都在 Key Management 页面可见;根密钥在需要前包裹 DEK。

步骤:Encryption Settings → Encryption Policy 区启用 Encrypt Search Indexes。新的当前索引被加密,已有索引用 Data Sync 加密。

Zephyrus 的下一步(Next Steps for Zephyrus)

slide_36

团队轻松启用了各个 Shield 特性,将继续用更多人和内容测试。他们还需要学习:

  • 密钥轮换;
  • 外部密钥管理(EKM);
  • 自带密钥(BYOK)。

和任何影响整个公司的应用一样,他们需要一套把 Shield Platform Encryption 部署到生产组织的综合策略。


文章来源:Trailhead - Shield Platform Encryption