15.5. 为用户配置访问控制


授权 是检查用户是否允许执行操作的机制。授权点在某些需要授权检查的操作组中定义。

15.5.1. 关于访问控制

访问控制列表 (ACL)是指定服务器操作的授权的机制。对于进行授权检查的每个操作,存在 ACL。可以在 ACL 中添加其他操作。
ACL 包含特定于允许或拒绝操作的 访问控制指令 (ACI),如读取或修改。ACI 还包含 evaluator 表达式。ACL 的默认实现仅指定用户、组和 IP 地址,作为可能的等效类型。ACL 中的每个 ACI 指定是否允许或拒绝访问、允许或拒绝特定操作器,以及允许或拒绝哪些用户、组或 IP 地址才能执行操作。
通过更改与该用户所属的组关联的访问控制列表(ACL)或用户的 IP 地址来更改证书系统用户的权限。通过将该组添加到访问控制列表来分配新组。例如,只能查看日志的管理员的新组 LogAdmins 可以添加到与日志相关的 ACL 中,以允许读取或修改对此组的访问权限。如果此组没有添加到任何其他 ACL 中,则此组的成员只能访问日志。
通过编辑 ACL 中的 ACI 条目来更改用户、组或 IP 地址的访问权限。在 ACL 界面中,每个 ACI 都显示在自己的行中。在这个接口窗口中,ACI 使用以下语法:
allow|deny (operation) user|group|IP="name"
注意
IP 地址可以是 IPv4 或 IPv6 地址。IPv4 地址的格式必须是 n. n.n.n 或 n .n.n.n,m.m.m。例如:128 .21.39.40128.21.39.40,255.255.255.00。IPv6 地址使用 128 位命名空间,其 IPv6 地址用冒号和以句点分开的子网掩码分开。例如,0:0:0:0:0:0:13.1.68.3,FF01::43,0:0:0:0:0:0:13.1.68.3,FF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:255.255.255.0 , 和 FF01::43,FFFF:FFFF:FF:FF:FF:FF:FF:FFFF0000
例如,以下是允许管理员执行读取操作的 ACI:
allow (read) group="Administrators"
ACI 可以配置多个操作或操作。该操作以逗号分隔,在两端都没有空格。例如:
allow (read,modify) group="Administrators"
ACI 可以通过使用两个管道符号(||)分隔多个组、用户或 IP 地址,并在两端使用空格。例如:
allow (read) group="Administrators" || group="Auditors"
管理控制台可以创建或修改 ACI。接口设置是否在 Allow 和 Deny 字段中允许或拒绝操作,设置 Operations 字段中可以执行的操作,然后在 Syntax 字段中列出被授予或拒绝访问权限的组、用户或 IP 地址。
ACI 可以允许或拒绝指定组、用户 ID 或 IP 地址的操作。通常,不需要创建 ACI 来拒绝访问。如果没有允许包含用户 ID、组或 IP 地址的 ACI,则组、用户 ID 或 IP 地址将被拒绝访问。
注意
如果用户没有明确允许访问某一资源的任何操作,则此用户被视为被拒绝;不需要拒绝访问。
例如,user JohnB 是 Administrators 组的成员。如果 ACL 只有以下 ACL,则 JohnB 将被拒绝任何访问,因为他与任何 allow ACI 不匹配:
Allow (read,modify) group="Auditors" || user="BrianC"
通常不需要包含 deny 语句。然而,在某些情况下可能会出现,当指定情况时很有用。例如: JohnBAdministrators 组的成员,刚刚触发。如果用户无法立即删除,则可能需要拒绝对 JohnB 的访问。另一个情况是,一个用户是 192.168.1.0/24 C,但不应该更改某些资源。由于 Administrators 组必须访问此资源,因此可以通过创建拒绝此用户访问权限的 ACI 来专门拒绝访问。
允许的权限是 ACI 控制的操作,可以通过允许或拒绝权限来执行该操作。为 ACL 设置的操作因 ACL 和子系统而异。可以定义的两个通用操作是读取和修改的。
ACI 编辑器的语法字段为表达式设置 evaluator。evaluator 可以指定组、名称和 IP 地址(IPv4 和 IPv6 地址)。它们与实体名称一起指定为等号(=)或不相等(!=)。
ACL 中包含组的语法是 group="groupname"。排除组的语法为 group!="groupname",其允许除命名的组以外的任何组。例如:
group="Administrators" || group!="Auditors"
也可以使用正则表达式来指定组,例如使用通配符字符,如使用星号(DSL)。例如:
group="* Managers"
有关支持的正则表达式模式的更多信息,请参阅 https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html
ACL 中包括用户的语法是 user="userID"。排除用户的语法为 user!="userID",它允许除命名的用户 ID 之外的任何用户 ID。例如:
user="BobC" || user!="JaneK"
要指定所有用户,请提供 任何body 的值。例如:
user="anybody"
也可以使用正则表达式来指定用户名,如使用通配符字符,如使用星号(DSL)。例如:
user="*johnson"
有关支持的正则表达式模式的更多信息,请参阅 https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html
ACL 中包含 IP 地址的语法是 ipaddress="ipaddress"。从 ACL 中排除 ID 地址的语法是 ipaddress!="ipaddress"。IP 地址通过其数字值指定;不允许使用 DNS 值。例如:
ipaddress="12.33.45.99"
ipaddress!="23.99.09.88"
IP 地址可以是 IPv4 地址,如上所示。IPv4 地址的格式为 n.n. n.n 或 n.n. n.n,m.m.m,子网掩码为 n. n.n.n。IPv6 地址使用 128 位命名空间,其 IPv6 地址用冒号和以句点分开的子网掩码分开。例如:
ipaddress="0:0:0:0:0:0:13.1.68.3"
也可以使用正则表达式来指定 IP 地址,如使用通配符字符,如使用星号(DSL)。例如:
ipaddress="12.33.45.*"
有关支持的正则表达式模式的更多信息,请参阅 https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html
通过使用两个管道字符(||)分隔每个值,可以在两端使用空格来创建带有多个值的字符串。例如:
user="BobC" || group="Auditors" || group="Administrators"

15.5.2. 更改子系统的访问控制设置

有关如何通过编辑 CS.cfg 文件配置此功能的说明,请参阅 Red Hat Certificate System 规划、安装和部署指南中的 更改子系统的访问控制设置 部分。

15.5.3. 添加 ACL

ACL 存储在内部数据库中,且只能在管理控制台中进行修改。
添加新 ACL:
  1. 登录到管理控制台。
  2. 选择 Access Control List
  3. 单击 Add 以打开 Access Control Editor
  4. 填写 Resource nameAvailable rights 字段。
  5. 要添加访问控制指令(ACI),请单击 Add,并提供 ACI 信息。
    1. Access 字段中选择 allow 或 deny 单选按钮,以允许或拒绝指定组、用户或 IP 地址的操作。有关允许或拒绝访问的详情请参考 第 15.5.1 节 “关于访问控制”
    2. 设置权利。可用的选项有 读取 和修改。要同时选择,请在选择条目时保存 CtrlShift 按钮。
    3. 指定在 Syntax 字段中将被授予或拒绝访问权限的用户、组或 IP 地址。有关语法的详情,请查看 第 15.5.1 节 “关于访问控制”
  6. 单击 OK 以返回到 Access Control Editor 窗口。
  7. 单击 OK 以存储 ACI。

15.5.4. 编辑 ACL

ACL 存储在内部数据库中,且只能在管理控制台中进行修改。
编辑现有 ACL:
  1. 登录到管理控制台。
  2. 在左侧导航菜单中选择 Access Control List
  3. 从列表中选择要编辑的 ACL,然后单击 Edit
    ACL 在 Access Control Editor 窗口中打开。
  4. 要添加 ACI,请点 Add,并提供 ACI 信息。
    要编辑 ACI,请从 ACL Editor 窗口的 ACI 条目 文本区域中的列表中选择 ACI。点 Edit
    1. Access 字段中选择 allow 或 deny 单选按钮,以允许或拒绝指定组、用户或 IP 地址的操作。有关允许或拒绝访问的详情请参考 第 15.5.1 节 “关于访问控制”
    2. 设置访问控制的权利。选项为 读取 和修改。要设置两者,请使用 CtrlShift 按钮。
    3. 指定在 Syntax 字段中将被授予或拒绝访问权限的用户、组或 IP 地址。有关语法的详情,请查看 第 15.5.1 节 “关于访问控制”
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.