Red Hat Training

A Red Hat training course is available for RHEL 8

28.5. 使用 Ansible 确保缺少 IdM RBAC 特权

作为身份管理系统管理员(IdM),您可以自定义 IdM 基于角色的访问控制。以下流程描述了如何使用 Ansible playbook 来确保缺少 RBAC 特权。这个示例描述了如何确保缺少 CA 管理员特权。因此,管理员 成为在 IdM 中管理证书颁发机构的唯一用户。

先决条件

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

流程

  1. 进入 ~/MyPlaybooks/ 目录:

    $ cd ~/MyPlaybooks/
  2. 制作位于 /usr/share/doc/ansible -freeipa/playbooks/privilege/ 目录中的 privilege- absent.yml 文件副本:

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

    • ipaadmin_password 变量设置为 IdM 管理员的密码。
    • name 变量设置为您要删除的特权的名称。
    • 确保 state 变量设置为 absent
  5. 在 playbook 中重命名任务,例如:

    [...]
    tasks:
    - name: Ensure privilege "CA administrator" is absent
      ipaprivilege:
      [...]

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

    ---
    - name: Privilege absent example
      hosts: ipaserver
      become: true
    
      tasks:
      - name: Ensure privilege "CA administrator" is absent
        ipaprivilege:
          ipaadmin_password: Secret123
          name: CA administrator
          state: absent
  6. 保存该文件。
  7. 运行指定 playbook 文件和清单文件的 Ansible playbook:

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

其它资源

  • 有关 IdM RBAC 中权限概念的更多信息,请参阅 IdM 中的特权
  • 有关 IdM RBAC 中权限概念的更多信息,请参阅 IdM 中的权限
  • 有关使用 ipaprivilege 模块的更多 Ansible playbook 示例,请参阅 /usr/share/doc/ansible -freeipa/ 目录中的README- privilege 文件。该文件还包含 ipaprivilege 变量的定义。
  • 有关使用 ipaprivilege 模块的更多 Ansible playbook 示例,请参阅 /usr/share/doc/ansible-freeipa/playbooks/ipaprivilege 目录。