32.2. Utiliser Ansible pour s'assurer que les permissions des membres sont présentes dans un privilège IdM RBAC personnalisé
Pour disposer d'un privilège personnalisé pleinement fonctionnel dans le contrôle d'accès basé sur les rôles (RBAC) de la gestion des identités (IdM), vous devez procéder par étapes :
- Créer un privilège sans aucune autorisation.
- Ajoutez les autorisations de votre choix au privilège.
La procédure suivante explique comment utiliser un cahier de jeu Ansible pour ajouter des autorisations à un privilège créé à l'étape précédente. L'exemple décrit comment ajouter toutes les autorisations IdM liées à l'administration des hôtes à un privilège nommé full_host_administration. Par défaut, les autorisations sont réparties entre les privilèges Host Enrollment
, Host Administrators
et Host Group Administrator
.
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
.
- Le privilège full_host_administration existe. Pour plus d'informations sur la création d'un privilège à l'aide d'Ansible, voir Utilisation d'Ansible pour garantir la présence d'un privilège IdM RBAC personnalisé.
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-present.yml privilege-member-present-copy.yml
-
Ouvrez le fichier
privilege-member-present-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
avec les noms des autorisations que vous souhaitez inclure dans le privilège. -
Assurez-vous que la variable
action
est fixée àmember
.
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Privilege member present example hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure that permissions are present for the "full_host_administration" privilege ipaprivilege: ipaadmin_password: "{{ ipaadmin_password }}" name: full_host_administration permission: - "System: Add krbPrincipalName to a Host" - "System: Enroll a Host" - "System: Manage Host Certificates" - "System: Manage Host Enrollment Password" - "System: Manage Host Keytab" - "System: Manage Host Principals" - "Retrieve Certificates from the CA" - "Revoke Certificate" - "System: Add Hosts" - "System: Add krbPrincipalName to a Host" - "System: Enroll a Host" - "System: Manage Host Certificates" - "System: Manage Host Enrollment Password" - "System: Manage Host Keytab" - "System: Manage Host Keytab Permissions" - "System: Manage Host Principals" - "System: Manage Host SSH Public Keys" - "System: Manage Service Keytab" - "System: Manage Service Keytab Permissions" - "System: Modify Hosts" - "System: Remove Hosts" - "System: Add Hostgroups" - "System: Modify Hostgroup Membership" - "System: Modify Hostgroups" - "System: Remove Hostgroups"
-
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-present-copy.yml