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.40 或 128.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 语句。然而,在某些情况下可能会出现,当指定情况时很有用。例如: JohnB 是 Administrators 组的成员,刚刚触发。如果用户无法立即删除,则可能需要拒绝对 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:
- 登录到管理控制台。
- 选择 Access Control List。
- 单击 Access Control Editor。以打开
- 填写
Resource name
和Available rights
字段。 - 要添加访问控制指令(ACI),请单击,并提供 ACI 信息。
- 从 Access 字段中选择 allow 或 deny 单选按钮,以允许或拒绝指定组、用户或 IP 地址的操作。有关允许或拒绝访问的详情请参考 第 15.5.1 节 “关于访问控制”。
- 设置权利。可用的选项有 读取 和修改。要同时选择,请在选择条目时保存 或 按钮。
- 指定在 Syntax 字段中将被授予或拒绝访问权限的用户、组或 IP 地址。有关语法的详情,请查看 第 15.5.1 节 “关于访问控制”。
- 单击 Access Control Editor 窗口。以返回到
- 单击以存储 ACI。
15.5.4. 编辑 ACL
ACL 存储在内部数据库中,且只能在管理控制台中进行修改。
编辑现有 ACL:
- 登录到管理控制台。
- 在左侧导航菜单中选择 Access Control List。
- 从列表中选择要编辑的 ACL,然后单击。ACL 在 Access Control Editor 窗口中打开。
- 要添加 ACI,请点,并提供 ACI 信息。要编辑 ACI,请从 ACL Editor 窗口的 ACI 条目 文本区域中的列表中选择 ACI。点 。
- 从 Access 字段中选择 allow 或 deny 单选按钮,以允许或拒绝指定组、用户或 IP 地址的操作。有关允许或拒绝访问的详情请参考 第 15.5.1 节 “关于访问控制”。
- 设置访问控制的权利。选项为 读取 和修改。要设置两者,请使用 或 按钮。
- 指定在 Syntax 字段中将被授予或拒绝访问权限的用户、组或 IP 地址。有关语法的详情,请查看 第 15.5.1 节 “关于访问控制”。