一、Transaction Security 入门
本单元理解 Transaction Security 是什么、其事件/策略/动作/通知的构成,以及它解决的真实安全用例。
学完本单元,你将能够:描述 Transaction Security 的好处、解释策略/动作/通知是什么、说明 Transaction Security 的用例。
警告——先读这个
Transaction Security 很强大,请小心使用。一个错误的 Login Event 策略若用 Block 作为实时动作,会把你锁在 org 之外。为防止这种情况,请为本模块新建一个 Trailhead Playground,绝不在生产 org 上测试 Block 策略,先用"Do Nothing"动作测试。这个警告贯穿整个模块——请认真对待,从锁死中恢复并不容易。
什么是 Transaction Security
作为 Salesforce 管理员,你忙于用户、应用、对象、报告等一切事务。现在经理让你阻止不受支持的浏览器、IT 让你防止用户导出超过 1000 条记录的报告、安全官让你在有人运行含敏感数据的报告时收到告警——你怎么兼顾这一切?Transaction Security 替你完成。它是一个实时监控 Salesforce 事件、根据你创建的规则发现潜在问题的功能。构成:事件(Event)——Salesforce 中发生的任何事(点击、记录变更、测量值),不可变且带时间戳;策略(Policy)——选择要监视的事件 + 事件发生时触发的动作;动作(Action)——Block、Require MFA 或 Notify;通知(Notification)——邮件、应用内或两者。
上图是一个已创建若干策略的 Transaction Security 主页,最重要的列是 Status——它指示策略是否启用,让你一眼看出哪些在运行。使用 Transaction Security 需先购买 Salesforce Shield 或 Shield Event Monitoring 附加订阅。
事件类型与动作
可用的事件类型:API Event——监控并保护所有 API 查询,防止未授权的数据导出;List View Event——跟踪对列表视图的访问(含 UI 与 API 查询);Login Event——监控登录详情,阻止来自不受信任位置、不受支持浏览器或特定设备的登录;Report Event——监控报告查看与导出,阻止或要求对敏感信息访问做多因素认证,或在报告运行/导出时通知。策略被触发时可选的动作:Block(最强强制)、Require MFA(更高保证)、Do Nothing(测试用)、Notify(邮件/应用内/两者)。
用例——防止大数据导出
本模块聚焦一个关键安全场景:防止从报告导出大数据。为什么重要:员工把 1000+ 条记录导出到桌面 Excel,Salesforce 就无法再保护这些数据,文件可被同步、邮件发送、存到 U 盘——敏感、竞争或专有数据就此暴露。创建策略有两种方式:Condition Builder(点击、无代码)——简单条件如"Rows Processed >= 1000 AND Operation = ReportExported",Block + Notify;Apex Class(代码、进阶)——复杂逻辑如分支、查询、循环、排除(例如阻止导出 >10 行但排除 Data Steward 配置文件的用户)。两种方式分别在 Unit 2 与 Unit 3 讲解。
二、创建 Transaction Security 策略
本单元动手实践:启用 Transaction Security、用 Condition Builder 创建阻止大数据导出的策略、编辑条件、在 org 中启用策略。
学完本单元,你将能够:启用 Transaction Security、用 Condition Builder 定义/编辑/启用/禁用策略。
启用 Transaction Security
第一步:在 org 中开启 Transaction Security。Setup → Quick Find 输入 Transaction Security → 点击 Transaction Security Policies,若首次访问,点击 Get Started With Transaction Security 旁的 Enable。
启用后即可创建策略。Transaction Security Policies 页面成为所有策略管理的指挥中心。再次提醒:使用 Trailhead Playground,而非生产 org。
用 Condition Builder 创建策略
用点击创建阻止大数据导出的策略:Transaction Security Policies → New → Condition Builder → Next。
上图是新建策略页,可选择 Condition Builder 或 Apex。点击 Next 进入定义策略条件的页面:
条件设置:Event 选 Report Event,Condition Logic 选 All Conditions Are Met,第一个条件 Condition 选 Rows Processed、Operator 选 Greater than or equal、Value 填 10;点 Add Condition 加第二个条件,Condition 选 Operation、Operator 选 Equals、Value 选 ReportExported:
点 Next 后设置动作:Real-time Action 选 Block(阻止下载过多记录的用户),Block Message 保持默认,选 Email notification 并选接收人,命名 Block Large Report Downloads Policy,先不启用,点 Finish。策略已加入可用策略列表。
编辑策略
策略创建后可完全编辑——条件、动作、通知都可改。例如 IT 要求把阈值从 10 改成 1000 行:从 Block Large Report Downloads Policy 旁的下拉菜单选 Edit,导航到 Rows Processed 条件,把 Value 改为 1000。
编辑能力包括:改条件值(阈值/运算符/字段)、增删条件、切换动作(Block → Notify)、更新通知接收人、重命名策略。无需重建——随需求演进逐步迭代。安全策略天然会演化:先保守、观察、再调优。
启用策略
创建策略后要启用它才能生效。从策略下拉菜单选 Edit → Actions 标签,把 Status 开关切到 Enabled(也可直接从下拉菜单启用)。启用后策略就上线了——任何尝试导出 1000+ 行报告的用户都会被阻止,你会收到邮件通知。创建策略时设置的 Block 动作与邮件通知如下:
在 Actions 标签底部点击 Status 开关即可启用:
主策略页的 Status 列让你一眼看出哪些策略正在运行。专业提示:从下拉菜单直接启用可快速切换,无需打开完整编辑页。
三、在策略中使用 Apex
本单元超越 Condition Builder,创建基于 Apex 的策略处理复杂用例(如排除特定用户配置文件的导出阻止),用分支逻辑、SOQL 查询与自定义条件。
学完本单元,你将能够:解释如何创建使用 Apex 的 Transaction Security 策略、描述实现策略的 Apex 类的基本元素。
创建使用 Apex 的策略
Condition Builder 处理简单用例,复杂逻辑(分支、查询、循环、排除)则用 Apex。用例:阻止导出 >10 行,但排除 Data Steward 配置文件的用户。步骤:Transaction Security Policies → New → Apex → Next。
Event 选 Report Event,Apex Class 选 New Empty Apex Class:
Next 后设置 Action 选 Block、Notifications 选 Email 与 In-App 并选接收人,命名 Prevent Large Data Export,先不启用(完成 Apex 代码后再启用),点 Finish:
返回主页面后,自动生成的类名由策略名(去掉空格)加 EventCondition 后缀组成:PreventLargeDataExportEventCondition,列在 Apex Condition 列:
现在策略还没实际作用,因为 Apex 类还没有必需代码,下一步添加。
编辑 Apex 类
从主页面点击 Apex Condition 列的 PreventLargeDataExportEventCondition,进入编辑 Apex 类的 Setup 页:
点 Edit,用实现用例的代码替换模板。Apex 类的关键元素:接口——实现 TxnSecurity.EventCondition(所有基于 Apex 的策略都必需);evaluate 方法——public boolean evaluate(SObject event),主入口,用 switch 语句处理多种事件类型,返回 true=触发策略、false=不触发;helper 方法——private boolean evaluate(ReportEvent reportEvent),用 SOQL 查询获取触发用户的 Profile,检查 Profile 名不含 'Data Steward' 且 RowsProcessed > 10,两个条件都满足才返回 true。Save 后策略即可启用。
理解 Apex 代码如何工作
用大白话追溯策略逻辑:用户导出报告 → ReportEvent 触发 → Transaction Security 发现匹配的策略 → 调用 PreventLargeDataExportEventCondition 的 evaluate 方法 → switch 语句识别为 ReportEvent → 传给 evaluate(ReportEvent) helper → helper 执行 SOQL 查询(按事件的 UserId 查 Profile),检查两个条件:Profile 名不含 'Data Steward' 且 RowsProcessed > 10?两个都真 → 返回 true(触发 Block);任一为假 → 返回 false(允许导出)。若为 true,Transaction Security 阻止导出并发送邮件 + 应用内通知。整个检查过程只需几分之一秒——实时安全、无用户可见延迟。
关键要点
实时监控:事件自动触发,无需轮询或计划任务,策略在毫秒内评估。两种构建方式:Condition Builder(点击、无代码、简单条件)与 Apex(完整程序化控制、复杂分支逻辑、配置排除、数据查询、多事件处理)。三种动作级别:Block(最强强制)、Require MFA(额外验证)、Notify(不阻止的感知)。关键安全规则:绝不在生产 org 上测试 Block 策略、先用 Do Nothing 测试、Login Event + Block 可能导致锁死。Transaction Security = 你 24/7 的自动安全看门狗。

















