附录 D. ACL 参考
本节描述了每个资源控制的内容,列出可能的操作描述这些操作的结果,并为定义的每个 ACL 资源提供默认的 ACI。每个子系统仅包含与该子系统相关的 ACL。
D.1. 关于 ACL 配置文件
访问控制 是设置谁可以访问服务器部分以及用户可以执行的操作的方法。依赖于 LDAP 目录服务并使用 Java 控制台(CA、KRA、OCSP 和 TKS)的四个子系统都实施 LDAP 风格的访问控制来访问其资源。这些访问控制列表(ACL)位于 /var/lib/pki/instance_name/conf/subsystem/acl.ldif
文件中。
本节仅概述访问控制概念。Red Hat Directory Server Administration Guide 中的 Managing Access Control 章节包括了更详细的信息。
证书系统 ACL 文件是由内部数据库加载的 LDIF 文件。各个 ACL 定义为 资源ACLS
属性,它们标识受保护子系统的区域,然后是正在设置的所有特定访问控制的列表。
resourceACLS: class_name:all rights: allow|deny (rights) type=target description
允许或拒绝访问资源的每个规则都称为访问控制指令( ACI )。(资源的所有 ACI 的总和是访问控制列表。)在定义实际的 ACI 之前,ACL 属性首先应用到证书系统子系统使用的特定插件类。这会将每个 ACL 集中到子系统执行的特定功能,为实例提供更多安全性,并更好地控制应用 ACL。
例 D.1. 默认 ACL 来列出证书配置文件
resourceACLS: certServer.ca.profiles:list:allow (list) group="Certificate Manager Agents":Certificate Manager agents may list profiles
由于每个子系统(CA、KRA、OCSP 和 TKS)都有不同的资源用于其操作,因此每个子系统实例都有自己的 acl.ldif
文件及其自己定义的 ACL。
每个 ACI 定义可以进行哪些访问或行为( 右边)以及 ACI 应用到的人员( 目标)。ACI 的基本格式为:
allow|deny (rights) user|group
权限 是 ACI 允许用户执行的操作类型。对于 LDAP ACI,目录条目的权限相对有限,如搜索、读取、写入和删除。证书系统使用附加权限来涵盖常见的 PKI 任务,如撤销、提交和分配。
如果在 ACI 中明确允许某个操作,则会隐式拒绝它。如果一个 ACI 中明确拒绝某个操作,它会输出任何明确允许它的 ACI。拒绝规则始终是高级的,以允许规则提供额外的安全性。
每个 ACI 必须应用到特定的用户或组。这使用几个常见条件(通常是 user=
或 group=
)进行设置,但存在其他选项,如 ipaddress=
,它定义了基于客户端的访问,而不是基于条目的访问。如果有多个条件,可以使用双管道(||)运算符制作条件,表示逻辑分布("或"),以及双 符号(&&)运算符,表示逻辑组合("and")。例如,group="group1" || "group2
"。
resourceACLS
属性值的每一个区域在下表中定义。
value | 描述 |
---|---|
class_name | 将 ACI 应用到的插件类。 |
所有操作 |
ACI 定义中涵盖的每个操作的列表。单个 ACI 和 |
allow|deny | 是否对目标用户或组允许该操作,还是拒绝对目标用户或组。 |
(操作) | 允许或拒绝的操作。 |
type=target |
用于标识它应用到的目标。这通常是用户(如 |
description | ACL 执行的操作说明。 |