16.5. 为用户配置访问控制


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

16.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 使用以下语法:

Copy to Clipboard Toggle word wrap
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:

Copy to Clipboard Toggle word wrap
allow (read) group="Administrators"

ACI 可以配置多个操作或操作。该操作以逗号分隔,在两端都没有空格。例如:

Copy to Clipboard Toggle word wrap
allow (read,modify) group="Administrators"

ACI 可以有多个组、用户或 IP 地址,用两个竖线符号(||)分隔它们,并具有两侧空格。例如:

Copy to Clipboard Toggle word wrap
allow (read) group="Administrators" || group="Auditors"

管理控制台可以创建或修改 ACI。接口设置在 Allow 和 Deny 字段中是否允许或拒绝操作,设置 Operations 字段中可能的操作,然后在 Syntax 字段中列出组、用户或 IP 地址的访问权限。

ACI 可以允许或拒绝指定组、用户 ID 或 IP 地址的操作。通常,不需要创建 ACI 来拒绝访问。如果没有允许包含用户 ID、组或 IP 地址的 ACI,则组、用户 ID 或 IP 地址将被拒绝访问。

注意

如果用户没有明确允许访问某一资源的任何操作,则此用户被视为被拒绝;不需要拒绝访问。

例如,用户 JohnB 是 Administrators 组的成员。如果 ACL 只有以下 ACL,则 JohnB 将被拒绝任何访问,因为他与任何 allow ACI 不匹配:

Copy to Clipboard Toggle word wrap
Allow (read,modify) group="Auditors" || user="BrianC"

通常不需要包含 deny 语句。然而,在某些情况下可能会出现,当指定情况时很有用。例如,JohnBAdministrators 组的成员,刚刚触发。如果无法立即删除用户,可能需要拒绝对 JohnB 的访问。另一个情况是用户ian C 是管理员,但他不应具有更改某些资源的能力。由于 Administrators 组必须访问此资源,因此 可通过创建一个拒绝此用户访问的 ACI 来明确拒绝访问。

允许的权限是 ACI 控制的操作,可以通过允许或拒绝权限来执行该操作。为 ACL 设置的操作因 ACL 和子系统而异。可以定义的两个通用操作是读取和修改的。

ACI 编辑器的语法字段为表达式设置 evaluator。evaluator 可以指定组、名称和 IP 地址(IPv4 和 IPv6 地址)。它们与作为等号(=)或不相等的实体名称(!=)指定。

在 ACL 中包含组的语法是 group="groupname"。排除组的语法为 group!="groupname",它允许除名为 的组之外的任何组。例如:

Copy to Clipboard Toggle word wrap
group="Administrators" || group!="Auditors"

也可以使用正则表达式来指定组,比如使用类似星号(*)的通配符字符。例如:

Copy to Clipboard Toggle word wrap
group="* Managers"

有关支持的正则表达式模式的详情,请参考 https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html

在 ACL 中包含用户的语法是 user="userID"。排除用户的语法为 user!="userID",它允许除用户 ID 之外的任何用户 ID。例如:

Copy to Clipboard Toggle word wrap
user="BobC" || user!="JaneK"

要指定所有用户,请提供值 anybody。例如:

Copy to Clipboard Toggle word wrap
user="anybody"

也可以使用正则表达式来指定用户名,例如使用类似星号(*)的通配符字符。例如:

Copy to Clipboard Toggle word wrap
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 值。例如:

Copy to Clipboard Toggle word wrap
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 地址用冒号和以句点分开的子网掩码分开。例如:

Copy to Clipboard Toggle word wrap
ipaddress="0:0:0:0:0:0:13.1.68.3"

也可以使用正则表达式来指定 IP 地址,例如使用类似星号(*)的通配符字符。例如:

Copy to Clipboard Toggle word wrap
ipaddress="12.33.45.*"

有关支持的正则表达式模式的详情,请参考 https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html

通过使用两个管道字符(||)分隔每个值,可以在两端使用空格来创建带有多个值的字符串。例如:

Copy to Clipboard Toggle word wrap
user="BobC" || group="Auditors" || group="Administrators"

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

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

16.5.3. 添加 ACL

ACL 存储在内部数据库中,且只能在管理控制台中进行修改。

添加新 ACL:

  1. 登录到管理控制台。

    注意

    pkiconsole 已被弃用。

  2. 选择 Access Control List

    acl
  3. 单击 Add 以打开 Access Control Editor
  4. 填写 Resource nameAvailable rights 字段。

    ACL 添加
  5. 要添加访问控制指令(ACI),点 Add 并提供 ACI 信息。

    acl2
    • Access 字段中选择 allow 或 deny 单选按钮,以允许或拒绝操作到指定的组、用户或 IP 地址。有关允许或拒绝访问的详情,请参考 第 16.5.1 节 “关于访问控制”
    • 设置权利。可用的选项有 读取 和修改。若要同时选择两者,可在选择条目时按 CtrlShift 按钮。
    • Syntax 字段中指定将授予或拒绝访问的用户、组或 IP 地址。有关语法的详情,请查看 第 16.5.1 节 “关于访问控制”
  6. OK 返回 Access Control Editor 窗口。
  7. OK 存储 ACI。

16.5.3.1. 编辑 ACL

ACL 存储在内部数据库中,且只能在管理控制台中进行修改。

编辑现有 ACL:

  1. 登录到管理控制台。

    注意

    pkiconsole 已被弃用。

  2. 在左侧导航菜单中选择 Access Control List

    acl
  3. 从列表中选择要编辑的 ACL,然后单击 Edit

    ACL 在 Access Control Editor 窗口中打开。

    acl1
  4. 要添加 ACI,点 Add 并提供 ACI 信息。

    要编辑 ACI,请从 ACL Editor 窗口的 ACI 条目 文本区中的列表中选择 ACI。点 Edit

    acl2
    1. Access 字段中选择 allow 或 deny 单选按钮,以允许或拒绝操作到指定的组、用户或 IP 地址。有关允许或拒绝访问的详情,请参考 第 16.5.1 节 “关于访问控制”
    2. 设置访问控制的权利。选项为 读取 和修改。若要同时设置两者,可使用 CtrlShift 按钮。
    3. Syntax 字段中指定将授予或拒绝访问的用户、组或 IP 地址。有关语法的详情,请查看 第 16.5.1 节 “关于访问控制”
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat, Inc.