Red Hat Training

A Red Hat training course is available for RHEL 8

28.3. 使用 Ansible 确保 IdM RBAC 特权不包括权限

作为身份管理系统管理员(IdM),您可以自定义 IdM 基于角色的访问控制。

以下流程描述了如何使用 Ansible playbook 从特权中删除权限。示例描述了如何从默认 证书 管理员权限中删除请求证书 忽略 CA ACL 权限,例如,管理员认为它存在安全风险。

先决条件

  • 您知道 IdM 管理员密码。
  • 您已在 Ansible 控制节点上安装了 ansible-freeipa 软件包。
  • 您已创建了一个 Ansible 清单文件,其中包含要在其上配置 IdM 服务器的完全限定域名(FQDN)。
  • 您的 Ansible 清单文件位于 ~/MyPlaybooks/ 目录中。

流程

  1. 进入 ~/MyPlaybooks/ 目录:

    $ cd ~/MyPlaybooks/
  2. 创建位于 /usr/share/doc/ansible -freeipa/playbooks/privilege/ 目录中的 privilege- member-present.yml 文件的副本:

    $ cp /usr/share/doc/ansible-freeipa/playbooks/privilege/privilege-member-absent.yml privilege-member-absent-copy.yml
  3. 打开 privilege-member-absent-copy.yml Ansible playbook 文件以进行编辑。
  4. 通过在 ipaprivilege 任务部分设置以下变量来调整文件:

    • 调整任务 的名称,使其与您的用例对应。
    • ipaadmin_password 变量设置为 IdM 管理员的密码。
    • name 变量设置为特权的名称。
    • 权限 列表设置为您要从特权中删除的权限名称。
    • 确保 action 变量设置为 member
    • 确保 state 变量设置为 absent

    这是当前示例修改的 Ansible playbook 文件:

    ---
    - name: Privilege absent example
      hosts: ipaserver
      become: true
    
      tasks:
      - name: Ensure that the "Request Certificate ignoring CA ACLs" permission is absent from the "Certificate Administrators" privilege
        ipaprivilege:
          ipaadmin_password: Secret123
          name: Certificate Administrators
          permission:
          - "Request Certificate ignoring CA ACLs"
          action: member
          state: absent
  5. 保存该文件。
  6. 运行指定 playbook 文件和清单文件的 Ansible playbook:

    $ ansible-playbook -v -i inventory privilege-member-absent-copy.yml