访问管理(Access management)可以说是 Salesforce 一线安全中最重要的组成部分之一——但它远不止于密码策略。如果你想真正做好访问管理,就需要理解角色、配置文件和权限集。若无法充分看清这些控制是如何运作的——以及它们如何影响用户在平台上可以看到和可以做的事情——你可能会面临各类安全与合规风险。
配置文件、权限集和角色之间有什么区别?
在 Salesforce 中,配置文件(profiles)和权限集(permission sets)定义用户可以做什么。另一方面,角色(Roles)定义用户可以看到什么。观看这个讲解片段,快速了解 Salesforce 的访问方式。
在继续之前,我们先把这点再稍微拆解一下。
配置文件(Profiles) 和 权限集(permission sets) 都会控制对对象(Objects)、字段(fields)、用户设置(user settings)、选项卡设置(tab settings)、应用设置(app settings)、Apex 类访问(Apex class access)、Visualforce 页面访问(Visualforce page access)、页面布局(page layouts)、记录类型(record types)、登录时段(login hours)以及登录 IP 范围(login IP ranges)等的 CRED(创建 Create、读取 Read、编辑 Edit、删除 Delete)权限。每个用户在平台上创建时都必须被分配一个 配置文件(profile)——而且每个用户只能有一个配置文件。简单来说,用户的配置文件就是其对组织(Org)访问权限的基础授权。
权限集(Permission sets)顾名思义,权限集是一组可应用到不同配置文件的额外 CRED 权限。通常它们是按任务(task-based)划分的,并与不同的对象(Objects)和托管软件包(managed packages)相关联。例如,销售(Sales)用户可能会被分配一个权限集,使其能够访问用于生成报价(quotes)的 CPQ 应用。
用户可能会被分配多个权限集(permission sets),也可能一个都没有——这使得权限集比配置文件(profiles)拥有更动态、更灵活的权限模型。权限集的引入初衷就是可以灵活组合,并根据工作角色(job role)将不同权限集提供给不同用户。把它想象成一栋房子:权限集就像是分给同一个客人的、不同房间的钥匙。
最后但同样重要的是 Salesforce 角色。角色和共享设置通过管理对记录和文件夹的访问权限,来控制用户可以看到什么。与配置文件不同,角色是基于所需数据访问级别进行分层的。例如,从显而易见的原因来看,CEO 或部门负责人很可能需要看到比处于助理/一般员工级别的人更多的内容。
构建分层角色结构的主要好处在于:随着组织规模扩大,它能够实现可扩展性。通过对特定敏感数据实行分级访问,即使在增加人员或进行内部晋升的同时,也能继续严格控制“谁能看到什么”。
Netwrix Strongpoint for Salesforce
自动记录并监控您的 SF 访问控制
Salesforce 配置文件(Profiles)的问题
虽然配置文件是用户访问权限的基础,但它们可能会变得相当复杂。正如我们上面提到的,用户只能被分配到且仅能分配一个配置文件——但随着工作职责的时间变化,往往会通过克隆(clone)并编辑(edit)配置文件来反映组织不断演变的访问需求。
其结果是:在成熟的组织中,配置文件(profiles)往往过于频繁地由员工需求驱动,而不是由严格的安全设计来决定。用户的配置文件中保留着他们已不再需要的旧权限并不少见——随着员工在不同岗位之间流动,旧的配置文件可能会长期闲置,导致需要清理的工作量变得难以管理,并带来潜在的未授权访问风险,而这本身就可能是固有的安全风险。
从 Profiles 迁移到 Permission Sets
那么,如何管理“profiles 混乱(profile chaos)”这个问题呢?我们推荐的最佳实践——同样也是 Salesforce 的建议。——是尽可能保持 profiles 简单且严格受限,并使用 Permission Sets 来管理不同岗位职能所需访问权限的细微差别。从“profiles 混乱”的状态走向理想状态,需要一个四步流程:
- 确定系统中每个 profiles 的作用
- 比较配置文件,并提取它们之间的差异
- 将这些差异归类到权限集(permission sets)中
- 整合配置文件,并停用任何冗余项
这可能是一个难度较高的项目,尤其是在拥有大量配置文件、运行时间较长的组织(Org)中。幸运的是,确实有一些可用的免费工具可以帮助实现自动化。
最小特权原则
最小特权原则是维护组织安全的最佳方法之一——principle of least privilege 它基于这样的理念:只向个人提供完成特定工作或任务所必需的最低访问权限,而不授予更多。限制特权用户的数量是 five best practices 中的一个,这些做法由美国计算机紧急响应小组(US-CERT)下属的国家网络安全与通信集成中心(NCCIC)作为每个组织网络安全战略的一部分所推荐。
好消息是:一旦你清理了用户资料,并迁移到使用权限集,维持 principle of least privilege 就容易得多。 GearSet 建议 为几乎所有非管理员用户使用“minimum access”配置文件。
使用 Netwrix Strongpoint 实现更好的可视性
Netwrix Strongpoint 会自动记录并监控你的访问控制——同时为你提供工具,用于绘制角色、配置文件、权限集、对象(Objects)以及字段之间的关联。借助它,你可以调查谁拥有对关键对象(Objects)和字段的访问权限,开展清理(cleanup)项目,并持续跟踪用户访问的变更情况。
分享到
了解更多
关于作者
Paul Staz
销售与业务发展副总裁
作为销售与业务发展副总裁(VP),Paul 负责推动 Netwrix 旗下基础设施与应用产品的增长。他的主要关注领域是 NetSuite、Salesforce 以及网络基础设施的安全与合规。他热衷于 Go To Market Strategies,并致力于为客户带来积极的成果。此前,在 Netwrix 收购 Strongpoint 之前,Paul 曾担任 Strongpoint 的销售与市场副总裁(VP),负责运营 Go To Market 相关职能。Paul 拥有麦克马斯特大学(McMaster University,位于加拿大安大略省汉密尔顿)的文科学士学位,以及工商管理硕士学位(MBA)。