7.7. 细粒度权限过滤
如 第 7.5.3 节 “为角色添加权限” 所述,Red Hat Satellite 提供了将配置的用户权限限制为资源类型的选定实例的能力。这些细致的过滤器是对 Satellite 数据库的查询,受到大多数资源类型的支持。
7.7.1. 创建 Granular Permission Filter
使用此流程创建精细的过滤器。要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
Satellite 不应用搜索条件来创建操作。例如,在搜索字段中使用 name = "Default Location" 表达式限制 create_locations 操作不会阻止用户为新建的位置分配自定义名称。
流程
在 Edit Filter 页面上的 Search 字段中指定一个查询。取消选择 字段 的无限复选框,使其处于活跃状态。查询有以下形式:
field_name operator value
- field_name 标记要查询的字段。可用字段名称的范围取决于资源类型。例如,Partition Table 资源类型提供 系列、布局和 名称作为 查询参数。
- Operator 指定 field_name 和 值 之间的比较类型。如需了解适用的操作符的概述信息,请参阅 第 7.7.3 节 “Granular Search 支持的 Operator”。
- value 是用于过滤的值。这可以是机构的名称。支持两种通配符字符:下划线(_)提供单字符替换,而百分比符号(%)替换零个或更多字符。
对于大多数资源类型,Search 字段提供建议可用参数的下拉列表。此列表显示在搜索字段中。对于很多资源类型,您可以使用逻辑运算符(如 and ,not 和has)来组合查询。
CLI 过程
要创建细致的过滤器,使用
--search
选项输入hammer 过滤器 create
命令来限制权限过滤器,例如:# hammer filter create \ --permission-ids 91 \ --search "name ~ ccv*" \ --role qa-user
此命令添加到 qa-user 角色中具有查看、创建、编辑和销毁内容视图的权限,它们仅应用于以 ccv
开始的名称的 Content Views。
7.7.2. 使用 Granular Permission Filters 的示例
作为管理员,您可以允许所选用户对环境路径的某些部分进行更改。通过以下过滤器,您可以在应用程序生命周期的开发阶段处理内容,但内容一旦推送到生产环境后便无法访问。
7.7.2.1. 为主机资源类型应用权限
以下查询将为 Host 资源类型指定的任何权限应用到名为 host-editors 的组中主机。
hostgroup = host-editors
以下查询会返回记录,其中 name 与 XXXX、Yyyyy 或 zzzz 示例字符串匹配:
name ^ (XXXX, Yyyy, zzzz)
您还可以限制所选环境的权限。要做到这一点,在 Search 字段中指定环境名称,例如:
Dev
您可以使用 Search 字段中的粒度权限过滤器将用户权限限制为特定的机构或位置。但是,有些资源类型提供了 GUI 替代方案,一个提供了 Locations 和 Organizations 选项卡的 Override 复选框。在这些标签页中,您可以从可用的机构和位置列表中选择。更多信息请参阅 第 7.7.2.2 节 “创建机构特定管理器角色”。
7.7.2.2. 创建机构特定管理器角色
使用卫星 Web UI 创建仅限于名为 org-1 的单一组织的管理角色。
流程
- 在 Satellite Web UI 中,导航到 Administer > Roles。
- 克隆现有的 机构管理员 角色。从 过滤器 按钮旁边的下拉列表中选择 Clone。然后会提示您输入克隆角色的名称,如 org-1 admin。
- 单击所需的位置和组织,将它们与角色相关联。
- 单击 Submit 以创建角色。
- 单击 org-1 admin,然后单击 Filters 以查看所有关联的过滤器。对于大多数用例,默认过滤器都可以正常工作。但是,您可以选择点击 Edit 来更改每个过滤器的属性。对于某些过滤器,如果您希望该角色能够访问附加位置和机构中的资源,则可以启用 Override 选项。例如,通过选择 Domain 资源类型、Override 选项,然后使用 Locations 和 Organizations 选项卡的其他位置和机构访问额外位置和没有与此角色关联的机构中的域。您还可以单击 New filter,将新过滤器与此角色相关联。
7.7.3. Granular Search 支持的 Operator
Operator | 描述 |
和 | 组合搜索条件。 |
not | negates 表达式。 |
具有 | 对象必须具有指定的属性。 |
Operator | 描述 |
= | 等于。对文本字段区分大小写的相等性比较。 |
!= | 不等于。= 运算符的 inversion。 |
~ | 比如。搜索文本字段不区分大小写。 |
!~ | 不喜欢。~ 运算符的 inversion。 |
^ | 在 中。对文本字段区分大小写的搜索的等性比较。这会生成不同的 SQL 查询,与比较 相等,并对多个值比较效率更高。 |
!^ | 不在 中。^ 运算符的 inversion。 |
>, >= | 大于,大于或等于。仅支持数字字段。 |
<, ⇐ | 小于,小于或等于。仅支持数字字段。 |