此文本使用 Salesforce 的自动翻译系统翻译。参加我们的调查,提供有关此内容的反馈,并告诉我们您接下来想要查看的内容。
在这里阅读我们的更新计划。
安全的系统保护组织的利益相关者和数据。安全架构验证用户身份,将数据访问限制为仅必要的信息,并防止数据泄露。
Salesforce 优先考虑 Customer Trust 和数据安全。Salesforce 平台确保隐私和安全。Salesforce Trust提供实时系统性能和安全信息。
保护您的组织和客户数据是构建安全的 Salesforce 解决方案的基础。作为 Salesforce 架构师,您有责任通过利用 Salesforce 的内置安全功能来保护您的组织和客户数据。在做出这些决策时,请考虑地理分布、行业、公司操作程序和客户数据类型。
您可以通过关注三个方面来使您的解决方案更安全:组织安全性、会话安全性和数据安全。
通过确保只有经过验证的授权用户可以访问系统,并且只有必要的功能和数据,组织安全保护系统免受未经授权的访问。
组织安全性存在问题的迹象包括:
- 启用或禁用用户的临时进程
- 更新用户或系统角色更改授权的步骤不明确
- 正确用户安全分配对个人机构 Knowledge 的依赖
- 不符合既定安全框架或行业最佳实践
- 缺乏结构化的数据治理框架和支持政策
通过关注身份验证和授权,您可以为 Salesforce 组织构建更好的组织安全控制。
身份验证对于安全性和访问权限管理至关重要,可以验证尝试访问系统的用户的身份。这适用于人工用户(员工、客户)和自动化用户(外部系统、集成),每种用户类型都需要特定的身份验证方案。要确保贵组织中的所有 Salesforce 入口点的安全访问,您需要设置各种身份验证方法。
要在 Salesforce 中创建安全身份验证流:
- 根据个人而不是角色创建 Salesforce 用户当每个用户帐户对应于访问平台的单个个人时,Salesforce 的内置审计功能最有效。使用共享用户帐户会损害这些审计的有效性,引入额外的安全漏洞,加剧帐户泄露的潜在影响,并使您创建有效授权方案的能力复杂化。这包括集成用户的用户帐户。
- 基于 UI 的安全访问场景。对于 Salesforce 组织,大多数人类用户需要某种基于 UI 的访问权限(通常称为登录访问权限)。Salesforce 为这些登录场景提供了几层保护,包括:
- **密码策略。**网络罪犯通常以用户名和密码为目标,以获取对应用程序的未授权访问。虽然配置密码策略是保护登录访问权限的基本步骤,但重要的是要注意,仅此还不够,因为 Salesforce 允许每个用户覆盖这些策略。
- 多重身份验证 (MFA)。Salesforce 对所有基于 UI 的用户登录要求 MFA。MFA 通过要求用户在成功输入用户名和密码后提供额外的身份识别形式或因素,提供了抵御凭据泄露和暴力攻击的基本防御手段。这种附加因素通常采取物理形式,例如移动设备、安全密钥或生物识别标记。
- 单点登录 (SSO)。在 SSO 场景中,用户仅在组织的应用程序之间使用一组凭据。从中心位置配置和管理对系统的访问,从而提高了安全性。Salesforce 可以在 SSO 场景中充当服务提供商或身份提供商。请确保允许一些或所有管理员直接登录 Salesforce,以便他们可以解决您的 SSO 实施的中断或问题。
- **登录后的步骤。**对于一些用例,您可能需要用户在访问您的系统之前完成额外的步骤。可以实施自定义登录流来指导用户完成这些额外的过程步骤。示例包括:
- 接受条款和条件
- 完成登录发现和无密码登录场景
- 限制每个用户同时进行 Salesforce 会话的数量,以减少基于会话的攻击的可能性(请参阅会话安全性)。
- 连接到地理围栏服务
- 基于安全 API 的访问场景。任何用户都可以为 Salesforce 组织请求基于 API 的访问权限。Salesforce 为基于 API 的场景提供了几层保护,包括:
- API 访问控制。如果没有 API 访问控制,任何拥有有效凭据集的人都可以利用任何应用程序与您的组织连接,即使连接的应用程序没有部署在组织中。数据访问控制仍将强制执行,但用户可能会以不受控制的方式访问信息。例如,应用程序可用于下载大量数据,甚至上载损坏的信息,而无需系统管理员批准。
- 仅限 API 权限。您可以在 Salesforce 中配置仅 API 用户权限。将其作为权限集的一部分分配给任何自动化或集成用户角色,以完全阻止基于 UI 的访问。
- 证书和密钥。证书和密钥使 Salesforce 能够验证请求是否来自授权企业或公司。如果您想要将 SSO 与 Salesforce 一起使用,您将需要配置证书和密钥。
- 连接的应用程序。在 Salesforce 中配置连接的应用程序使您能够控制外部系统对 Salesforce 的访问,包括在单个定义中所需的身份验证协议、授权范围和会话行为。
- 命名凭据。命名凭据使您能够在 Salesforce 的单个定义中控制外部接入点和身份验证协议。使用它们安全地定义和管理来自 Apex、外部服务和 Salesforce Connect 数据源的标注的身份验证。
- Agentforce Agent 用户身份验证。基于 Salesforce 构建的 Agentforce 客服人员使用具有可管理权限的客服人员-用户对象,如同真实用户。在设置客服人员时,请谨慎调整访问权限与客服人员扮演的角色,将数据访问权限限制为仅为最终用户提供服务所需的权限。同样重要的是,客服人员可以配置公用和专用操作。对于专用操作,验证和验证最终用户,并将其映射到客服人员上下文。这允许客服人员在最终用户的访问控制中模拟和操作,维护安全性和 Trust。
以下模式和反模式列表显示了 Salesforce 组织中正确(和差)身份验证架构的外观。在构建之前,使用这些来验证您的设计,或者确定进一步改进的机会。
要了解有关 Salesforce 提供的身份验证工具的更多信息,请参阅工具相关安全。
授权定义了用户可以访问哪些特性、功能和数据,以及他们可以在经过身份验证后对这些资源执行的操作。授权控制不仅仅针对人类用户,它们还需要针对 Agentforce 客服人员用户进行定制,特别是向未经身份验证的最终用户提供服务的客服人员。
虽然限制谁可以验证您的组织是至关重要的第一步,但同样重要的是将强身份验证与强大的授权配对。如果没有适当的授权控制,用户可能会以对您的业务和相关方有害的方式创建、编辑和删除记录或访问系统功能。授权控制不足也会使系统更难使用。通过控制用户可在系统中执行的操作,您可以培养更高的 Trust 级别,从而保护您的系统和用户。
要为 Salesforce 构建安全授权方案:
- 遵循最小特权原则。通过只为用户分配他们的任务所需的权限来接受最小权限 (PoLP) 的原则。要遵循这一原则,请设计粒度和模块化权限集。这允许通过权限集小组进行复杂的访问控制,实现权限的精确管理,包括静音、设置到期日期等。将您的系统功能单元与业务功能结合起来,定义精细的权限和有效的权限集组。请记住,权限适用于 Salesforce 中的元数据访问。有关为 Salesforce 数据访问配置 PoLP 的详细信息,请参阅共享和可见性。
- **从角色而不是个人的角度考虑用户访问。**从单个用户的角度考虑授权(或总体安全性)不会将您的系统设置为可以扩展和发展。相反,设计和管理代表用户小组的角色。安全 Salesforce 解决方案使用个人进行身份验证,并使用角色进行授权。通过为不同的角色定义安全配置,您可以获得对安全模型中访问权限和权限的精细控制,从而最大限度地减少了长期的重构需求。包括您在设计标准和文档中定义的安全人员。
- **使用权限集和权限集组控制用户对元数据的访问。**权限集和权限集组控制用户可以访问哪些元数据,以及他们可以对该元数据执行哪些操作。要了解有关 Salesforce 元数据的更多信息,请参见元数据与数据。通过权限集和权限集组配置应用程序分配、功能许可证激活、受管软件包访问权限、系统权限、CRUD 访问权限和字段级访问权限。将此访问权限包含在设计标准和文档中。
- 使用组织范围的默认值 (OWD) 和共享来控制用户的数据访问权限。数据和元数据是 Salesforce 中不同的实体,需要分别进行访问控制。使用 OWD 和内置共享工具来配置对 Salesforce 数据(单个记录、文件和文档)的访问权限。有关更多详细信息,请查看数据安全性。
- **使用 OAuth 范围来控制对连接的应用程序的访问权限。**配置连接的应用程序时,您可以定义应用程序用户对 Salesforce 资源拥有的范围或访问权限。有关管理 OAuth 令牌的更多信息,请查看会话管理。
- **为每个集成创建一个 Salesforce 用户。**要遵守最低权限原则,请为每个集成创建唯一的 Salesforce 集成用户。这允许您分配特定的数据访问权限,改善对操作的控制,确保事务的可追溯性,并最大限度地减少潜在安全漏洞的影响。
- **通过 PoLP 为所有客服人员用户实施唯一客户。**每个 Agentforce 客服人员用户应该是唯一的,并且不能在多个客服人员之间重复使用。这些客户的权限必须严格遵守最低权限原则。请谨记,客服人员用户执行的操作可能在 Salesforce 内部或针对不尊重 Salesforce 访问控制的外部系统的提升安全上下文中操作。这可能会导致操作访问敏感信息或向用户泄露敏感信息。
- 最大限度地减少简档的使用,并将任何访问控制从简档中迁移出去简档提供了限制访问登录 IP 范围、登录时间和特定于传统 Salesforce Classic 用户界面的功能(特别是默认记录类型和页面布局分配)的能力。简档中当前的任何其他功能应迁移到权限集和权限集组中的等效功能。您的简档中与 Salesforce Classic UI 功能相关的功能应作为补救的目标。
以下模式和反模式列表显示了 Salesforce 组织中正确(和差)的授权实践。在构建之前,使用这些来验证您的设计,或者确定进一步改进的机会。
要了解有关 Salesforce 提供的授权工具的更多信息,请参阅工具相关安全。
此表显示了在您的组织中要查找(或构建)的模式的选择,以及要避免或针对补救的反模式。
✨ 在模式和反模式浏览器中,发现组织安全的更多模式。
| 模式 | 反模式 | |
|---|---|---|
| 身份验证 | 在设计标准和文档中:
- 明确定义并列出批准的安全角色 - 安全矩阵中存在安全角色和允许的身份验证方案(UI、API)之间的映射 |
如果存在设计标准和文档,它们:
- 不包括安全角色 - 请勿包含具有安全角色和允许身份验证方案明确映射的安全矩阵 |
| 在您的组织中:
- 登录配置符合 Salesforce MFA 检查 - 登录 Salesforce 的用户和实体之间的关系是 1:1(没有共享用户) - API 访问控制阻止用户通过未经授权的连接的应用程序进行身份验证 - 如果启用了 SSO,批准的管理员用户具有直接登录访问权限 |
在您的组织中:
- 登录配置与 Salesforce MFA 检查不一致 - 登录 Salesforce 的用户和实体之间的关系不是 1:1(存在共享用户帐户) - 如果用户从防火墙后访问 Salesforce,防火墙会使用硬编码的 IP 地址来保护进出 Salesforce 的通信 - 未启用 API 访问控制 - 如果启用了 SSO,则没有批准的管理员用户拥有直接登录访问权限 |
|
| 在LWC, Apex, Aura中:
- 执行身份验证的方法使用命名凭据来处理用户名/密码流 - 用户名或密码不会以可读的格式显示在代码中(没有硬编码的值或字符串) - 如果存在自定义登录流,所有相关自定义代码会使用适当的 SessionManagement 方法 |
在LWC, Apex, Aura中:
- 身份验证是临时处理的 - 用户名和密码显示在代码中 |
|
| 授权 | 在设计标准和文档中:
- 有权访问 Salesforce 的每个用户和系统都映射到安全矩阵中的一个或多个角色 - 安全矩阵明确列出元数据权限和分配的用户角色 - 明确列出了授予提升权限的用例,包括: -- 修改所有数据权限 -- 查看所有数据权限 |
如果存在设计标准和文档,它们:
- 不包括安全矩阵 - 未明确列出权限 - 未明确列出授予提升权限的用例 |
| 在您的组织中:
- 权限集和权限集组用于控制对元数据的访问 - 权限集和权限集组与业务功能保持一致 - 分配给用户的权限遵循安全矩阵定义 - 简档仅用于控制登录 IP 范围和登录时间 - 为每个集成配置唯一的仅 API 集成用户 |
在您的组织中:
- 权限集小组未配置为允许基于业务功能的访问权限 - 权限集是临时配置的 - 权限集是冗余的或大量重复;难以理解清晰的功能逻辑和集之间的差异 - 分配给用户的权限不遵循安全矩阵定义 - 简档包含元数据的访问控制 - 仅 API 用户未配置或在多个集成中共享 |
|
| 在 Apex 中:
- 数据库操作适当地执行字段和对象级访问权限检查,包括: -- DML 和数据库 DML 语句声明数据操作的用户或系统模式和/或 -- DML 和数据库 DML 语句在数据操作之前使用 stripInaccessible 方法
-- SOQL 和 SOSL 语句 与 USER_MODE 和 System_MODE 关键字 AND/OR 一起使用
-- stripInaccessible 方法用于筛选查询和子查询结果
-- sObject 描述结果方法(即 isAccessible、isCreateable、isUpdateable 和/或 isDeletable)被谨慎使用 |
在 Apex 中:
- DML、数据库类方法、SOQL 和 SOSL 在默认系统模式下运行 - 数据库操作未正确执行访问权限检查,包括: -- DML 或数据库类方法仅使用 isAccessible、isCreateable、isUpdateable 和/或 isDeletable 检查进行 sObject 和字段级访问
-- SOQL 查询仅使用 with SECURITY_ENFORCED 关键字进行访问限制 |
|
| 在流中(流设计安全注意事项):
- 流使用最严格的执行上下文,理想情况下是用户模式 - 子流执行安全敏感或特权数据访问,以最小化执行上下文 - 在记录触发的流中执行的限制逻辑 - 验证流输入,以确保仅将允许的负载作为输入传递 |
在流中:
- 流以系统模式或不带共享的系统模式运行,无论流执行什么操作 - 所有流逻辑都在单个大型流中执行 - 流输入未经验证,未经验证就传递给消费者 |
会话是一段时间内与用户相关联的一系列请求和响应。当用户成功验证 Salesforce 时,将启动会话。会话安全是通过阻止会话干扰或劫持来配置您的系统以防止未经授权的访问和数据泄露的实践。
系统中的所有用户活动都在会话上下文中发生,因此重要的是考虑会话的启动方式、会话期间可能发生的情况、用户将(和应该)使用哪些设备,以及如何检测和响应可疑或异常会话行为。
您可以通过关注三个关键来构建 Salesforce 中的会话安全性:会话管理、设备访问以及威胁检测和响应。
会话将在用户成功验证并访问 Salesforce 时启动。这些会话使平台能够将特定请求和响应与该特定用户相关联。
HTTPS 协议促进了前端客户端和 Salesforce 平台之间的通信。客户端可以包括浏览器、移动应用程序、本地应用程序等。HTTPS 是一种无状态协议,这意味着每个通信都是离散的,与任何以前或未来的通信都是无关的。
这种无状态的方法加速了网络通信,并消除了由于数据包之间的链路断开而造成的错误。但是,Web 应用程序仍然需要一种在多个请求和响应交互中跟踪每个用户的身份和其他相关信息的方式。与大多数 Web 应用程序一样,Salesforce 使用会话和令牌来实现这一点。
- 会话使 Salesforce 能够将请求和响应与用户相关联。用户经过身份验证后,平台会将会话 ID 发送回客户端应用程序,其中包含该 ID 以及任何用户请求(例如导航、搜索和提交数据)。
- 令牌使用户和连接的应用程序能够验证他们的身份一次,并从那时起使用唯一的访问令牌。令牌具有有限的生命周期,并且只提供对特定资源的访问权限(有关配置访问权限级别的更多信息,请参见授权)。令牌允许访问授权资源,而无需用户登录。
如果会话和令牌未正确保护,不良行为者可能会干扰它们,并冒充用户或在系统中执行恶意代码。
要为 Salesforce 构建安全会话管理:
- 了解 Salesforce 如何分类会话类型识别批准的会话类型并将其映射到安全用户角色,并在文档中记录这些角色。
- **控制会话的发起方式以及会话流量的去向。**在您确定了允许各种用户角色启动的会话类型后,配置控制,以阻止来自未批准的源或上下文的会话。Salesforce 提供了几种控制会话来源和流量的方法,包括:
- 内置会话保护。Salesforce 会自动为基于会话的恶意活动启用组织范围保护,包括跨站点脚本、跨站点请求伪造、内容嗅探、点击劫持等。这些保护不应被禁用;一些保护不能被禁用。
- 域和 IP 范围。默认情况下,所有 Salesforce 组织都启用 My Domain,这将为 Salesforce 访问权限创建特定于公司的子域。您可以通过 My Domain 自定义或更改与组织关联的名称。此外,Salesforce 支持 Experience Cloud 站点和其他应用程序页面的其他域配置。注意:如果用户需要在公司防火墙后访问 Salesforce,请将所需域添加到防火墙允许列表中。您可以设置登录 IP 范围和受信 IP 范围,以控制对 Salesforce 的入站登录和会话请求。
- 登录时间。如果某些用户角色设置了工作时间,您可以限制他们在定义的登录时间之外访问 Salesforce 的能力。
- **控制需要添加会话级安全性的活动。**默认情况下,会话可以有两种安全级别:标准和高保证。使用这些安全级别来控制用户如何执行和不能执行活动,例如访问报表和仪表板,或管理 Salesforce 组织中的安全配置。会话级安全策略可以要求用户建立高保证会话来执行操作,或者完全阻止用户执行任何敏感操作。
- **控制需要添加基于会话的权限的活动。**Salesforce 支持基于会话的权限激活,以临时允许用户在特定会话期间提升授权或访问权限。您可以通过流或 Salesforce API 激活和取消激活基于会话的权限。
- 通过超时管理非活动用户会话结束非活动会话是管理会话安全性的关键部分。例如,当用户在浏览器选项卡中保持 Salesforce 会话打开,但在另一个应用程序中处于活动状态时,或者当用户的移动设备登录 Salesforce,但无人参与时,这将有助于保护您的系统。Salesforce 默认会话不活动超时为 2 小时。您可以增加或减少会话不活动超时级别,但增加超时必须有一个令人信服和有充分记录的理由。
- **通过令牌配置管理连接的应用程序会话。**在配置连接的应用程序时,您还可以定义将授予通过连接的应用程序访问 Salesforce 的用户的授权范围或级别。此范围通过 OAuth 令牌在会话级别强制执行,这些令牌是在连接的应用程序的用户成功验证后颁发的。您可以通过令牌刷新策略控制令牌的持续时间。如果需要,组织管理员可以按用户和组织手动撤销令牌。
下面的模式和反模式列表显示了 Salesforce 组织中正确(和差)的会话管理。在构建之前,使用这些来验证您的设计,或者确定进一步改进的机会。
要了解有关 Salesforce 提供的会话管理工具的更多信息,请参阅工具相关安全。
在当前上下文中,设备是个人用于访问 Salesforce 的任何电子设备,例如台式工作站、笔记本电脑、平板电脑或手机。
便携式设备为用户提供了从任何位置访问 Salesforce 的灵活性。但是,这种便利性可能会为恶意行为者引入额外的攻击向量。这些威胁媒介多种多样,从简单的策略(例如在公共场所肩膀冲浪以窃取凭据),到更复杂的方法(例如在设备上安装恶意软件或创建虚假的公共 Wi-Fi 网络以拦截数据传输)。因此,保护设备(特别是便携式设备)对整体系统安全性至关重要。
保护 Salesforce 的设备访问权限:
- **使用 Salesforce 提供的移动应用程序解决方案。**让移动设备上需要访问 Salesforce 的用户使用适用于 iOS 和 Android 的官方 Salesforce 应用程序。如果业务需求需要自定义移动解决方案,应使用 Salesforce Mobile SDK,它提供安全身份验证和授权的方法。
- **将移动设备使用情况设计到您的会话管理中。**会话安全级别、会话超时和其他会话上下文控制应考虑用户在移动设备上的任何预期访问权限。考虑哪些设备应该和不应该被允许访问 Salesforce,以及哪些类型的用户应该有权访问移动会话。在安全角色文档中包括移动访问标准。有关此主题的更多信息,请查看会话管理。
- **使用移动设备管理 (MDM) 技术补充设备级安全性。**适用于 iOS 和 Android 的 Salesforce 应用程序兼容许多流行的 MDM 套件。您可以通过首选 MDM 解决方案为用户设备上的 Salesforce 应用程序配置其他访问控制。
- **通过移动应用程序管理 (MAM) 技术,补充应用程序级安全性。**MAM 技术支持移动设备上的应用程序级控制。Salesforce 为 Salesforce 移动应用程序提供付费 MAM 加载项。
以下模式和反模式列表显示了 Salesforce 组织中正确(和糟糕)的设备管理。在构建之前,使用这些来验证您的设计,或者确定进一步改进的机会。
要了解有关 Salesforce 提供的设备管理工具的更多信息,请参阅工具相关安全。
威胁检测是识别系统中可能指示恶意活动的行为模式的过程。这可能包括下载的数据量大于平均水平,或者用户在比平均水平更短的时间内修改了若干记录上包含敏感数据的字段。对威胁的响应可以包括自动会话到期、警报和其他通知。
威胁检测的目标是尽快识别和响应潜在问题。基于实时威胁检测采取行动可以阻止跟踪中的恶意行为。Salesforce 作为加载项或 Salesforce Shield 的一部分提供实时事件监测。如果您有高度敏感的应用程序或需要强大的实时威胁检测和响应功能,请使用以下解决方案之一。
要为您的 Salesforce 解决方案建立有效的威胁检测和响应策略:
- 使用内置审计功能。Salesforce 提供各种内置工具,以帮助跟踪和审核对贵组织的更改。例如,设置审计跟踪允许您查看管理操作的审计历史记录。默认情况下,Salesforce 会在有限的时间内跟踪字段级更改,但您可以激活字段历史跟踪,以在 UI 中显示最多 18 个月的字段更改,并通过 API 显示最多 24 个月的字段更改。此外,您可以激活字段审计跟踪,以无限期保留字段级更改的审计历史记录(直到您手动删除数据)。
- 建立定期审核。审计对于识别实时威胁检测可能错过的异常更改至关重要。考虑这样一个场景,一个具有合法访问权限的用户在很长时期内每天一致地删除少量记录。由于此用户拥有有效的登录凭据、删除记录的正确授权,并且不是一次删除大量记录,因此该活动不太可能被检测为实时威胁。但审核用户活动报表的审计团队将明确识别单个用户随着时间的推移过度删除记录的趋势,使其更易于应对。作为治理策略的一部分,建立定期间隔,以审计登录历史、用户会话活动和连接的应用程序使用情况。
- **制定威胁响应策略,并将其包含在安全策略中。**创建威胁响应策略,涵盖:
Event Monitoring 通过启用实时威胁检测和响应,提供了实施这一原则所需的数据。事务安全性应用贵公司的策略驱动操作,事件类型支持随时间监控用户和应用程序访问权限。
Salesforce 的本地威胁检测服务使用统计和机器学习模型来识别可疑行为。此服务生成特定事件,防止网络攻击和可疑数据访问。
事务安全性更进一步,因为它提供了一个框架来拦截在贵组织中发生的关键事件,并应用贵公司的策略驱动的操作。这将 Event Monitoring 从日志记录工具转变为自动安全防御的重要组成部分。
以下模式和反模式列表显示了 Salesforce 组织中正确(和差)的威胁检测和响应。在构建之前,使用这些来验证您的设计,或者确定进一步改进的机会。
要了解有关 Salesforce 提供的威胁检测、警报和响应自动化工具的更多信息,请参阅工具相关安全。
此表显示了在您的组织中要查找(或构建)的模式的选择,以及要避免或针对补救的反模式。
✨ 在模式和反模式浏览器中,发现会话安全的更多模式。
| 模式 | 反模式 | |
|---|---|---|
| 会话管理 | 在设计标准和文档中:
- 安全角色清楚地列出每个角色批准的会话类型和超时/持续时间设置 - 已指定登录时间(或标识为不需要) - 需要提升会话级安全性或权限的操作清晰可查 - 连接的应用程序范围和令牌管理策略清晰可查 |
在设计标准和文档中:
- 安全角色不存在或缺少有关会话类型和超时/持续时间设置的信息 - 安全策略不包含有关连接的应用程序范围或令牌管理的信息 |
| 在您的组织中:
- 会话审计显示用户仅通过预期的会话类型访问 Salesforce - 对于“仅 API 用户”访问权限,有一个清晰有效的权限集(“仅 API”权限集设置为真),并且所有集成和自动化用户都被分配 - 如果用户从防火墙后访问 Salesforce,防火墙会使用必填域的允许列表,而不是 IP 地址来保护与 Salesforce 的通信 - 非活动会话超时间隔不超过默认值(2 小时) - 启用以下所有设置: -- 设置页面的点击劫持保护 -- 非设置 Salesforce 页面的点击劫持保护 -- 跨站点请求伪造 (CSRF) 保护 -- 跨站点脚本 (XSS) 保护 -- 启用内容嗅探保护 -- 推荐人 URL 保护 -- 在用户重定向到 Salesforce 外部之前警告他们 |
在您的组织中:
- 没有定期会话审计 - 没有定义用户应该拥有哪些会话类型 - 集成和自动化用户中的“仅限 API”权限不明确或缺失 - 如果用户从防火墙后访问 Salesforce,防火墙会使用硬编码的 IP 地址来保护进出 Salesforce 的通信 - 非活动会话超时间隔超过默认值(2 小时) - 禁用以下任何设置: -- 设置页面的点击劫持保护 -- 非设置 Salesforce 页面的点击劫持保护 -- 跨站点请求伪造 (CSRF) 保护 -- 跨站点脚本 (XSS) 保护 -- 启用内容嗅探保护 -- 推荐人 URL 保护 -- 在用户重定向到 Salesforce 外部之前警告他们 |
|
| 在LWC, Apex, Aura中:
- 如果存在自定义登录流,所有相关自定义代码会使用适当的 SessionManagement 方法来分配会话级安全性 |
在LWC, Apex, Aura中:
- 如果存在自定义登录流,没有分配会话级安全性的逻辑 |
|
| 设备访问权限 | 在设计标准和文档中:
- 设备策略清晰可发现 - 安全角色明确映射到适当的设备使用情况和策略 |
在设计标准和文档中:
- 安全策略不存在或不包含有关设备访问权限的信息 |
| 在您的组织中:
- Salesforce 移动连接的应用程序配置需要在不活动后解锁 PIN/密码 - 如果业务需求需要严格控制可以访问 Salesforce Mobile 的用户,将启用 API 访问控制,并将权限集分配给 Salesforce 移动应用程序的所有用户 |
在您的组织中:
- Salesforce 移动连接的应用程序未配置为需要 PIN/密码解锁才能不活动 – 业务需求需要严格控制可以访问 Salesforce Mobile 的用户,但未启用 API 访问控制,或权限集未用于控制对 Salesforce 移动应用程序的访问 |
|
| 威胁检测和响应 | 在设计标准和文档中:
- 安全策略包含应触发响应的事件列表以及适当的响应类型 - 已为数据模型中的所有对象指定审计级别 - 记录查看 Salesforce 中可用日志的步骤 - 所有自动回复都有清晰的记录 |
在设计标准和文档中:
- 安全策略不存在或不包含有关威胁检测和警报的信息 - 自动回复的文档不存在或不清楚 |
| 在贵公司内:
- 审计数据在业务利益相关者可以理解和访问的报表中可用 - 定期审查审计历史和报告 |
在贵公司内:
- 审计数据只能通过需要主题专业知识才能访问和解释的日志文件获得 - 没有审核审计信息的流程 |
|
| 在您的组织中:
- 如果检测到异常使用,自动化可通过停用用户帐户或阻止访问资源来响应威胁 - 通知和警报被配置为通知适当的用户异常活动 - 对包含专用或敏感数据的所有字段启用字段历史跟踪 |
在您的组织中:
- 没有自动化来应对威胁 - 通知和警报未配置为通知适当用户异常活动,或存在一些与异常活动相关的通知和警报,但它们是临时的 - 未始终为包含专用或敏感数据的字段启用字段历史跟踪 |
数据安全是保护您的数据免受未经授权的访问、损坏或意外删除的实践。数据安全包括保护传输中和静态的数据。
强大的数据安全性最大限度地减少了未经授权访问您的系统的风险和潜在损害。数据安全性不足会使系统容易受到数据泄露的攻击,这会严重影响客户和贵公司。因此,保护您的数据是构建安全架构的基础。
提高数据安全性首先要清楚地了解在 Salesforce 中什么被认为是数据,以及它的分类。存储在 Salesforce 组织中的单个记录、文件和文档是它的数据。有关元数据和数据之间区别的更多信息,请参阅Salesforce 架构基础。
通过关注共享和可见性以及加密的使用,您可以在 Salesforce 解决方案中建立更强的数据安全性。
根据敏感程度(例如,公共、内部、机密、受限),识别并分类存储在 Salesforce 平台中的所有数据。定义清晰的数据分类策略,概述如何处理和保护每种数据类型。实施适当的安全控制,例如字段级安全性、加密和数据屏蔽,以强制执行策略并保护敏感数据免受未经授权的访问或泄露。定期审查和审核这些分类和控制,以确保它们与业务和合规要求保持一致。
共享和可见性涉及配置您的系统,以控制用户如何访问 Salesforce 中的数据。重要的是要注意到,共享和可见性控制用户可以访问哪些单个记录,但这些设置本身并不能最终控制用户可以对特定记录执行的操作,或该记录中的哪些特定字段可见。执行数据操作的权限(例如 CRUD)通过元数据访问控制分配给用户,元数据访问控制可以在单个对象和字段级别为用户配置。有关更多信息,请参阅授权。
Agentforce 操作会将数据暴露给通常缺乏直接访问的经过身份验证的用户和匿名用户。在构建 Agentforce 客服人员时,请仔细考虑并记录分配给客服人员的所有操作。对于每个操作,您必须了解:
- 操作可以访问哪些数据。
- 操作在什么安全上下文中运行。
- 操作是否具有 Knowledge 检索或其他功能,可以将敏感或受限数据合并到客服人员会话中。
要在 Salesforce 中配置有效共享和可见性:
- 围绕有意义的工作职能设计访问权限创建安全矩阵,将用户角色映射到要执行的业务功能。使用此模板作为基础来设计您的共享和可见性。有关识别有意义的业务功能的更多信息,请参见功能单位。
- 选择应用最小特权原则的最简单路径。当您在设计共享和可见性方案时应用最小权限原则时,请以最直接的方式执行此操作。避免过度设计的数据限制和共享方案,这可能会导致系统可维护性、可扩展性和适应性的下游问题。相反,利用 Salesforce 中灵活的分层数据共享,在数据级别为用户访问权限配置细粒度规则。
- **将内部组织范围的默认值 (OWD) 设置为公用只读,除非您的业务涉及敏感数据,否则使用专用。**OWD 控制用户在数据级别将拥有的“最低”权限级别。您不能将访问权限限制在 OWD 级别以下。虽然专用 OWD 似乎在每个用例中都是理想的选择,但整个企业中的用户最终常常会通过复杂的共享方案无意中复制一个更宽松的 OWD。此外,专用 OWD 会使用户创建重复数据。共享计算(和重新计算)可能需要大量时间才能完成,这取决于数据量和父-子或所有权倾斜 — 专用 OWD 加剧了这种情况。请注意,OWD 无法控制 CRUD 权限和字段级可见性。只有在业务需求证明合理时,才选择专用 OWD — 通常,此类证明与合规性相关。
- 将外部组织范围的默认值 (OWD) 设置为专用,除非您有令人信服的业务理由允许更大的访问权限。外部 OWD 适用于从 Experience Cloud 站点、入口网站等访问 Salesforce 数据的用户。这允许您为内部和外部用户配置单独的 OWD 基准,以允许不同类型的“最小”权限。始终将外部用户的 OWD 设置为专用 — 对于更开放的级别,例外情况必须由业务需求明确证明。
以下模式和反模式列表显示了 Salesforce 组织中正确(和差)共享和可见性的外观。在构建之前,使用这些来验证您的设计,或者确定进一步改进的机会。
要了解有关 Salesforce 共享和可见性工具的更多信息,请参阅工具相关安全。
加密将可读数据转换为无法解码的编码格式。加密数据可以通过密钥解密或翻译回其原始形式。因此,加密是保护静态和传输数据的最有效方法之一,可确保即使未经授权的方访问数据,也无法读取。
要在 Salesforce 解决方案中设计正确使用加密:
- 始终充分加密传输中的数据。Salesforce 为在 Salesforce 支持浏览器中发生的所有会话使用传输层安全 (TLS),并要求使用 HTTPS 的出站呼叫满足特定的安全标准。平台 API 也默认使用 HTTPS。此外,在 Salesforce Experience Cloud 站点或入口网站及其相关 Salesforce 组织之间发送的数据默认在传输过程中加密。如果您使用 Salesforce 的电子邮件服务,Salesforce 用于发送和尝试发送电子邮件的传输层安全性 (TLS) 有默认级别。您至少应确保组织设置不低于默认设置,除非您有明确的业务理由。根据数据的分类和敏感性,考虑通过 AWS Direct Connect 或 Salesforce Private Connect 利用与 Salesforce 的专用网络连接。这可以确保您的数据不会通过公共互联网,而是通过专用网络连接安全地流动,以便用户访问和集成。
- **如果业务需要,加密静态数据。**Salesforce 提供了不同的方法来加密静态数据。
- Hyperforce数据在使用 Hyperforce 的组织中静态加密。加密由 Salesforce 为您的组织管理。您无法创建(或销毁)自己的加密密钥。
- Salesforce ShieldSalesforce Shield 使您能够加密 Salesforce 组织中其他各层的静态数据,包括应用程序层和数据库层。通过 Shield,您拥有租户加密密钥的完整管理功能,包括强大的“自带密钥”(BYOK)选项。您也可以加密非结构化数据(包括文件、附件、搜索索引和事件)。基于 Hyperforce 的实例提供了使用外部密钥管理器的选项,允许您自带 AWS KMS。借助此功能,您可以完全控制 KMS 中用于加密和解密存储在 Salesforce 中的数据的加密密钥,从而加强安全性并符合贵组织的合规要求。
下面的模式和反模式列表显示了加密在 Salesforce 组织中的正确(和糟糕)使用。在构建之前,使用这些来验证您的设计,或者确定进一步改进的机会。
要了解有关 Salesforce 提供的加密工具的更多信息,请参阅工具相关安全。
此表显示了在您的组织中要查找(或构建)的模式的选择,以及要避免或针对补救的反模式。
✨ 在模式和反模式浏览器中,发现更多数据安全模式。
| 模式 | 反模式 | |
|---|---|---|
| 共享和可见性 | 在设计标准和文档中:
- 安全矩阵概述每个用户角色有权访问的数据 - 对外部用户和内部用户使用不同的数据访问标准(如果适用) |
在设计标准和文档中:
- 设计标准和文档不存在或不包含安全矩阵 - 如果存在安全矩阵,则不会概述用户角色的数据访问权限 |
| 在您的组织中:
- 由于合规性要求,内部用户的组织范围默认设置 (OWD) 是公用读取,或内部用户的 OWD 是专用 - 外部用户的 OWD 是专用的 - 生成式 AI 仅在用户模式下操作,或选择用于系统访问的用途具有明确的业务理由 |
在您的组织中:
- 内部用户的 OWD 设置为专用,没有业务理由,或者内部用户的 OWD 设置为公用读/写 - 外部用户的 OWD 设置为专用以外的任何内容,而没有业务理由 - 生成式 AI 在无业务理由的系统模式下运行 |
|
| 在 Apex 中:
- 访问数据 (SOQL/SOSL) 或执行数据操作 (DML/Database Class 方法) 的所有代码 与共享关键字一起使用 |
在 Apex 中:
- 共享关键字的使用不一致 |
|
| 使用加密 | 在设计标准和文档中:
- 传输中和(如果需要)静态数据加密的用例清晰易懂 - 明确列出批准的加密协议 - 代码文档明确指出加密的使用位置和使用的协议 |
在设计标准和文档中:
- 批准的加密协议不明确或未列出 - 代码没有文档记录,或者文档记录不清楚在代码中使用加密的位置和方式 |
| 在您的组织中:
- 如果发现安全风险需要更大的静态数据保护,Hyperforce 或 Salesforce Shield 会提供静态加密 |
在您的组织中:
- 业务需求需要更大的静态数据保护,但未使用 Hyperforce 或 Salesforce Shield |
|
| 在 Apex 中:
- 如果业务需求需要在传输过程中加强数据保护,集成涉及的所有代码都会使用加密类方法执行逻辑,以在传输前加密数据或在接收时解密数据 |
在 Apex 中:
- 业务需求要求在传输过程中加强数据保护,但集成涉及的代码在传输前或接收时执行逻辑而不加密数据,或者临时使用加密类方法 |
| 工具 | 描述 | 组织安全性 | 会话安全性 | 数据安全 |
|---|---|---|---|---|
| Apex 加密类 | 在 Apex 中加密和解密数据 | X | ||
| API 访问控制 | 管理对 Salesforce API 和连接的应用程序的访问权限 | X | X | X |
| API 异常事件 | 跟踪用户如何进行 API 调用的异常 | X | ||
| 浏览器安全设置 | 保护敏感数据并监控 SSL 证书 | X | ||
| 基于证书的身份验证 | 使用唯一数字证书验证个人 | X | X | |
| 证书和密钥 | 验证来自 Salesforce 的外部网站请求 | X | X | |
| 代码扫描仪 | 扫描 Apex 代码以了解安全漏洞 | X | X | |
| 连接的应用程序 | 通过 API 和标准协议集成 | X | X | |
| 凭据填充事件 | 跟踪使用被盗用户凭据的尝试登录 | X | ||
| CSP 受信站点 | 防止代码注入攻击(即跨站点脚本) | X | ||
| 自定义登录流 | 控制用户的登录业务流程 | X | ||
| 客户身份 | 控制网站和应用程序登录和验证 | X | ||
| Data Mask | 自动屏蔽 Sandbox 中的敏感数据 | X | ||
| 调试日志 | 跟踪贵组织发生的事件 | X | ||
| 委派管理 | 将有限的管理员权限分配给非管理员用户 | X | X | |
| 设备激活 | 验证从不可信浏览器、设备或 IP 范围登录 | X | ||
| 增强事务安全性 | 拦截事件,监视和控制用户活动 | X | ||
| 字段访问权限 | 控制字段级的数据访问权限 | X | ||
| 字段审计跟踪 | 定义策略以保留归档的字段历史数据 | X | ||
| 字段历史跟踪 | 跟踪和显示字段历史 | X | ||
| Frontdoor.jsp | 允许使用现有会话 ID 和服务器 URL 进行访问 | X | ||
| Heroku Connect | Heroku 和 Salesforce 之间的双向同步 | X | ||
| Heroku Shield | 构建 HIPAA 或 PCI 兼容应用程序 | X | ||
| 高保证会话安全性 | 敏感操作需要额外安全性 | X | ||
| Identity Connect | 将用户记录映射到 Active Directory 帐户 | X | ||
| 身份验证历史 | 审计用户身份验证尝试 | X | ||
| 集成用户许可证 | 仅通过 API 授予对数据和功能的访问权限。 | X | X | |
| Lightning Login | 防止弱或忘记密码和锁定帐户 | X | ||
| 登录访问权限 | 允许支持用户以其他用户身份登录 | X | ||
| 登录取证 | 识别可能表明身份欺诈的行为 | X | ||
| 登录历史 | 监视组织和 Experience Cloud 站点登录尝试 | X | ||
| 移动设备跟踪 | 跟踪和监控移动设备对贵组织的访问权限 | X | ||
| 移动 SDK | 在独立移动应用程序中连接到 Salesforce 平台 | X | X | X |
| 监控用户权限 (Shield) | 权限集和权限集组更改 | X | X | |
| 多重身份验证 | 登录需要两种或更多验证方法 | X | X | |
| 相互身份验证 | 强制执行 SSL 或 TLS 相互身份验证 | |||
| My Domain | 配置登录页面和策略、SSO 和社交登录 | X | ||
| 命名凭据 | 指定端点 URL 和身份验证参数 | X | ||
| OAuth 授权 | 通过令牌交换授权客户端应用程序访问权限 | X | ||
| 密码策略 | 设置密码历史、长度和复杂性 | X | ||
| 权限集分配到期 | 设置权限集和权限集组分配的到期时间 | X | X | |
| 权限集事件 | 监视对权限集和权限集小组所做的更改 | X | X | |
| 权限集小组 | 支持复杂访问权限要求的捆绑权限集 | X | ||
| 权限集 | 控制用户访问元数据、功能和应用程序的方式 | X | ||
| 专用连接 | Salesforce 和 Amazon Web Services 之间的安全集成 | X | ||
| 简档 | 控制登录 IP 范围和登录时间 | X | ||
| 实时 Event Monitoring | 在 Salesforce 中监视和检测标准事件 | X | ||
| 远程站点设置 | 为 Apex 或 JavaScript 调用注册外部站点 | X | ||
| 报告异常事件 | 跟踪用户运行或导出报表方式的异常 | X | ||
| 限制规则 | 防止用户访问不必要的记录 | X | ||
| Salesforce 代码分析器 | 通过 IDE、CLI 或 CI/CD 扫描代码,以确保符合最佳实践 | X | X | |
| 范围规则 | 控制用户可以看到的默认记录 | X | ||
| 安全中心 | 查看所有组织的安全设置,并配置状态变化的警报 | X | X | |
| 安全健康检查 | 识别安全设置中的漏洞 | X | ||
| 会话劫持事件 | 通过被盗会话标识符识别未经授权的访问 | X | ||
| 会话管理类 | 自定义活动会话的安全设置 | X | ||
| 会话安全设置 | 配置会话以防范恶意攻击 | X | ||
| 设置审计跟踪 | 跟踪管理员最近的设置更改 | X | ||
| 共享设置 | 在记录级别控制数据访问权限 | X | ||
| Shield Platform Encryption | 加密静态和传输中的敏感数据 | X | ||
| 单点登录 | 通过单点登录提供对多个应用程序的访问权限 | X | X | |
| 跨域身份管理系统 (SCIM) | 通过 REST API 跨系统管理身份 | X | ||
| 威胁检测 | 使用统计信息和机器学习来检测威胁 | X | ||
| 受信 IP 范围 | 定义不需要额外验证的 IP 地址 | X | ||
| 用户访问报表 | 获取用户对象、记录和权限访问权限的统一视图 | X | X |
| 资源 | 描述 | 组织安全性 | 会话安全性 | 数据安全 |
|---|---|---|---|---|
| 共享架构指南 | 了解有关访问工具、共享模型和用例的更多信息 | X | ||
| 设计标准模板 | 为您的组织创建设计标准 | X | X | X |
| 如何构建用户安全模型 | 更好地了解用户安全模型 | X | X | |
| 如何在 Salesforce 中实施最小权限原则 | 了解在 Salesforce 中应用 PoLP 数据访问控制 | X | X | |
| 监控用户会话 | 查看有效会话并结束可疑会话 | X | ||
| 多重身份验证 | 从 Salesforce 访问官方 MFA 资源 | X | ||
| 权限集小组 (Trailhead) | 开始使用权限集小组 | X | X | |
| REST API 架构 | 了解 REST API 术语和概念 | X | X | X |
| 安全性和 SOAP API | 了解 SOAP API 术语和概念 | X | X | X |
| API 和内部系统用户的安全最佳实践 | API 用户和安全内部系统用户对 Salesforce 的安全访问 | X | ||
| 安全实施指南 | 全面了解 Salesforce 安全性 | X | X | X |
| 安全策略模板 | 为您的组织设置安全策略 | X | X | X |
| 会话类型 | 确定用于访问贵组织的会话类型 | X | ||
| 威胁建模基础知识 (Trailhead) | 了解安全威胁以及如何预防它们。 | X |
帮助我们保持 Salesforce 良好的架构与您相关;参加我们的调查,以提供有关此内容的反馈,并告诉我们您接下来想要看到的内容。