域 RBAC 概述
域是一个球体或边界,您可以围绕它与系统进行交互。Junos Space 网络管理平台域包含所有 Junos Space 对象;它实施访问、控制可见性并提供网络对象的管理。通过创建域,您可以创建一个用于与系统交互的容器。设备是域中的关键元素。您可以使用域和这些域中的设备来配置设备管理分区方案,从而实现基于角色的访问控制 (RBAC)。
通过域,您可以从管理角度控制和划分网络。您可以根据特定条件创建网络,同时为用户提供对其设备的管理访问权限。同时,域允许共享对象和某些配置实施。如果启用了视图父级,则子域只能以只读模式访问全局域中的对象。不允许跨对等域进行访问。托管安全服务提供商 (MSSP) 和企业客户都需要这种网络分区。网络管理平台使用户能够在聚合视图中管理来自所有允许域的对象。但是,Security Director 不支持此功能。从 Security Director 15.2 开始,RBAC 可在左侧导航窗格的“用户和角色”部分下的“管理”选项卡上使用。
以下部分介绍了域 RBAC 对 Security Director 对象和服务的影响。
关于域
默认情况下,Junos Space 和 Security Director 仅定义了全局域。可以将新域创建为全局域的子域。创建域时,您将使用角色和用户。 图 1 显示了一个简单的域方案,将在整个文档中用作参考。有关创建域的详细信息,请参阅 在 Security Director 中创建域。
使用角色
角色用于对访问权限进行分组,以便更轻松地分配给用户。例如,超级管理员角色可以分配对 Junos Space、Security Director 及其内部所有功能的读写访问权限。另一方面,域管理员对某些函数具有读写访问权限,对其他函数具有只读访问权限,并且对某些其他函数没有访问权限。Security Director 附带多个无法更改的预定义角色,包括超级管理员和域管理员。可以通过克隆然后编辑预定义角色或从头开始创建新角色来创建用户定义的角色。在创建帐户期间或在创建后编辑用户帐户,为用户分配角色。
用户可以被分配到多个角色。如果将用户分配给具有冲突权限的多个角色,则将限制最少的权限应用于该用户帐户。例如,假设“管理审核员”角色将用户限制为仅查看报告定义,而“报告定义管理员”角色允许用户修改报告定义。如果将用户分配到这两个角色,则该用户将能够修改报表定义。 图 2 说明了这一原理。
与用户合作
用户帐户可以被视为 RBAC 策略的接收者。在 Security Director 中,系统会将用户分配到特定域和特定角色。对域的访问定义了用户可以使用哪些设备和对象,并将用户分配给角色定义用户可以对他们有权访问的对象执行哪些功能。有关使用用户的详细信息,请参阅 在 Security Director 中创建用户。
图 3 显示了 Junos Space 用户列表的全局域视图。请注意用绿色轮廓显示的“已分配的域”列。
关于对象或服务
在域 RBAC 之前,域只需要写入权限即可在其中创建对象或服务。现在,使用域 RBAC,您还需要访问域才能在该域中创建对象或服务。例如,假设您有域 D1、D2 和 Global。要在 D1 中创建对象,必须先切换到 D1 域,然后才能在该域中创建对象。
当您在另一个域中时,无法在一个域中创建对象或服务。
在 Security Director 13.2 版及更高版本中,无法使用 REST API 在子域中创建对象,即使与 API 一起使用的用户帐户具有对子域的写入权限也是如此。通过 REST API 创建的所有对象都将在全局域中创建。
作为操作的一部分在内部创建的所有对象都是触发操作的域的一部分。例如,在触发操作的域中创建操作的所有审核日志。
读取或查看对象或服务
您可以查看您有权访问的域中的所有对象。在 Security Director 中,您必须将视图切换到 D1 域才能查看该域中的对象。如果对 D1 和 D2 域都具有读取访问权限,则无法从 D1 域视图中看到 D2 域对象,反之亦然。如果 D1 域具有查看父级权限,则可以从 D1 域查看全局域中的对象。您无法看到全局域中的 D1 或 D2 对象。
在任何给定域中读取或写入对象的能力取决于从“域”菜单将视图切换到该特定域。但是,如果启用了“查看父”设置,则 Security Director 还允许您以只读身份查看父域中的对象。例如,给定 图 1 所示的域结构,域 D1 和 D2 中共享地址对象的结果视图分别如 图 4 和 图 5 所示。
在“D1 域”视图中,可以看到来自“系统”、“全局”和“D1 域”的地址对象。这些地址对象可与 D1 域中的设备和策略配合使用。
由于视图父设置在 D2 中处于禁用状态,因此 D2 域中唯一可见的地址是系统域中存在的地址。稍后在 D2 域中创建的任何地址也将显示在此视图中。
更新或修改对象或服务
要通过 Security Director 修改域对象,您必须切换到该域。您无法切换到您无权访问的域。如果您位于不同的域中,则无法修改一个域中的对象。
通过 REST 修改对象是基于 ID 的。要修改域中的对象,您必须具有对该域的写入权限,并且您的用户角色必须包括相关对象类型的修改权限。系统域中的对象处于只读模式,因此您无法修改它们。
删除对象或服务
要通过 Security Director 删除域对象,必须切换到该域。如果您位于另一个域中,则无法删除一个域中的对象。
通过 REST 删除对象是基于 ID 的。要删除域中的对象,您必须具有对该域的写入权限,并且您的用户角色必须包括相关对象类型的删除权限。系统域中的对象处于只读模式,因此您无法将其删除。
引用对象
一个对象始终可以引用同一域中的另一个对象,没有任何限制。D1 域中的对象可以引用 D1 域中的其他对象。对于引用不同域中的对象,规则更为复杂。例如,D1 域对象可以引用 D1 域或其父域(全局域)中的对象。但是,D1 对象不能引用 D2 对象。“全局”域中的对象不能引用子域 D1 和 D2 中的对象。见 图 6。
在引用设备时,此规则有一个例外。D1 域中的对象可以引用同一域中的设备,也可以引用 D2 域中的设备。但相反,情况并非如此;也就是说,D1 域中的对象不能引用全局域中的设备。
即使在同一域中,服务也不能引用其他服务。
跨域移动对象
通常,可以将对象从一个域移动到另一个域。例如,您可以将对象从 D1 域移动到全局域,然后从全局域移回 D1 域。将执行验证以检查移动是否有效。不允许无效移动。如果移动对象被另一个对象引用,则移动该对象会变得复杂。如果 D1 域中的对象被 D1 域或全局域中的另一个对象引用,则可以向上移动到全局域。但是,如果对象被全局域中的另一个对象引用,则不允许将对象从全局域移动到 D1 域。
在域之间移动设备对象的规则不同。如果设备由全局域或 D1 域中的对象使用,则可以将设备从全局域移动到 D1 域。但是,如果 D1 域中的对象正在使用该设备,则不允许将设备从 D1 域移动到全局域。
要移动属于群集的设备,必须移动该群集的两个成员。您不能仅移动主设备或仅移动辅助设备。只有当您具有对全局域的写入访问权限并在 D1 域中启用了查看父访问权限时,才能将对象从 D1 域移动到全局域。
命名域中的对象
对象的名称在域层次结构中必须是唯一的。不能在 D1 和全局域中创建具有相同名称的对象。域层次结构包括当前域、其父域和子域。
所有名称验证都将域视为约束条件之一。
对象名称必须是以数字或字母开头的字符串,由字母数字字符、冒号、句点、斜杠、破折号和下划线组成。对象名称不得包含特殊字符,例如 &、<、> 和 \n。
关于预定义对象
所有 Security Director 预定义对象都在系统域中。预定义的服务、地址、签名等在只读模式下从所有域中可见。
所有特定于设备的预定义对象也都在系统域中。在设备发现过程中发现新的预定义对象时,该对象也会被放置在系统域中。“所有设备”策略放置在“全局”域中,您可以修改该策略。