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