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