32.3. Utiliser Ansible pour s'assurer qu'un privilège IdM RBAC n'inclut pas une permission
En tant qu'administrateur système de la gestion des identités (IdM), vous pouvez personnaliser le contrôle d'accès basé sur les rôles de l'IdM.
La procédure suivante décrit comment utiliser un livre de jeu Ansible pour supprimer une autorisation d'un privilège. L'exemple décrit comment supprimer l'autorisation Request Certificates ignoring CA ACLs
du privilège par défaut Certificate Administrators
parce que, par exemple, l'administrateur considère qu'il s'agit d'un risque de sécurité.
Conditions préalables
- Vous connaissez le mot de passe de l'administrateur IdM.
Vous avez configuré votre nœud de contrôle Ansible pour qu'il réponde aux exigences suivantes :
- Vous utilisez la version 2.8 ou ultérieure d'Ansible.
-
Vous avez installé le paquetage
ansible-freeipa
sur le contrôleur Ansible. - L'exemple suppose que dans le répertoire ~/MyPlaybooks/ vous avez créé un fichier d'inventaire Ansible avec le nom de domaine complet (FQDN) du serveur IdM.
-
L'exemple suppose que le coffre-fort secret.yml Ansible stocke votre
ipaadmin_password
.
Procédure
Naviguez jusqu'au répertoire ~/MyPlaybooks/ répertoire :
$ cd ~/MyPlaybooks/
Faites une copie du fichier
privilege-member-present.yml
situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/privilege/
:$ cp /usr/share/doc/ansible-freeipa/playbooks/privilege/privilege-member-absent.yml privilege-member-absent-copy.yml
-
Ouvrez le fichier
privilege-member-absent-copy.yml
Ansible playbook pour l'éditer. Adaptez le fichier en définissant les variables suivantes dans la section
ipaprivilege
task :-
Adaptez le site
name
de la tâche pour qu'il corresponde à votre cas d'utilisation. -
Définissez la variable
ipaadmin_password
avec le mot de passe de l'administrateur IdM. -
Attribuez à la variable
name
le nom du privilège. -
Définissez la liste
permission
sur les noms des autorisations que vous souhaitez supprimer du privilège. -
Assurez-vous que la variable
action
est fixée àmember
. -
Assurez-vous que la variable
state
est fixée àabsent
.
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Privilege absent example hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure that the "Request Certificate ignoring CA ACLs" permission is absent from the "Certificate Administrators" privilege ipaprivilege: ipaadmin_password: "{{ ipaadmin_password }}" name: Certificate Administrators permission: - "Request Certificate ignoring CA ACLs" action: member state: absent
-
Adaptez le site
- Enregistrer le fichier.
Exécutez le playbook Ansible. Spécifiez le fichier du livre de jeu, le fichier contenant le mot de passe protégeant le fichier secret.yml et le fichier d'inventaire :
$ ansible-playbook --vault-password-file=password_file -v -i inventory privilege-member-absent-copy.yml