20.2. 使用 ACL 设置本地权限

您可以使用 pcs acl 命令,为本地用户设置权限,以允许使用访问控制列表(ACL)对集群配置进行只读或读写访问。

默认情况下不启用 ACL。如果没有启用 ACLS,则作为所有节点上的 haclient 组成员的任何用户都具有对集群配置的完整本地读/写访问权限,而不属于 haclient 成员的用户则没有访问权限。当启用 ACL 时,即使属于 haclient 组成员的用户也只能访问 ACL 为该用户授予的内容。root 和 hacluster 用户帐户始终对集群配置有完全访问权限,即使启用了 ACL。

为本地用户设置权限分为两个步骤:

  1. 执行 pcs acl role create…​ 创建一个 role 来定义该角色的权限。
  2. 使用 pcs acl user create 命令将您创建的角色分配给用户。如果为同一用户分配多个角色,则任何 deny 权限优先于 write,然后 read

步骤

以下示例流程为名为 rouser 的本地用户提供了对集群配置的只读权限。请注意,也可能限制对配置某些部分的访问。

警告

以根用户身份执行这个步骤或者保存所有配置更新到工作文件是很重要的,然后在完成后将其推送到活跃 CIB。否则,您可以锁定自己以阻止做任何进一步的更改。有关保存对工作文件的配置更新的详情,请参考为可工作的文件保存配置更改

  1. 此流程要求本地系统上 rouser 用户存在,并且 rouser 是组 haclient 的成员。

    # adduser rouser
    # usermod -a -G haclient rouser
  2. 使用 pcs acl enable 命令启用 Pacemaker ACL。

    # pcs acl enable
  3. 为 cib 创建名为 read-only 且具有只读权限的角色。

    # pcs acl role create read-only description="Read access to cluster" read xpath /cib
  4. 在 pcs ACL 系统中创建用户 rouser,并为该用户分配 read-only 角色。

    # pcs acl user create rouser read-only
  5. 查看当前的 ACL。

    # pcs acl
    User: rouser
      Roles: read-only
    Role: read-only
      Description: Read access to cluster
      Permission: read xpath /cib (read-only-read)
  6. 在每个 rouser 将运行 pcs 命令的节点上,以 rouser 用户身份登录并进行本地 pcsd 服务身份验证。这是为了以 ACL 用户身份运行特定的 pcs 命令(如 pcs status )。

    [rouser ~]$ pcs client local-auth