23.3. Récupérer un secret à partir d'un coffre-fort d'utilisateur standard dans IdM en utilisant Ansible
Cette section montre comment un utilisateur de la gestion des identités (IdM) peut utiliser un playbook Ansible pour récupérer un secret dans le coffre-fort personnel de l'utilisateur. Dans l'exemple utilisé dans la procédure ci-dessous, l'utilisateur idm_user récupère un fichier contenant des données sensibles à partir d'un coffre-fort de type standard nommé my_vault sur un client IdM nommé host01. idm_user n'a pas besoin de s'authentifier pour accéder au fichier. idm_user peut utiliser Ansible pour récupérer le fichier à partir de n'importe quel client IdM sur lequel Ansible est installé.
Conditions préalables
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
.
- Vous connaissez le mot de passe de idm_user.
- idm_user est le propriétaire de my_vault.
- idm_user a stocké un secret dans my_vault.
- Ansible peut écrire dans le répertoire de l'hôte IdM dans lequel vous souhaitez récupérer le secret.
- idm_user peut lire le répertoire de l'hôte IdM dans lequel vous souhaitez récupérer le secret.
Procédure
Naviguez jusqu'au répertoire
/usr/share/doc/ansible-freeipa/playbooks/vault
:$ cd /usr/share/doc/ansible-freeipa/playbooks/vault
Ouvrez votre fichier d'inventaire et mentionnez, dans une section clairement définie, le client IdM sur lequel vous souhaitez récupérer le secret. Par exemple, pour demander à Ansible de récupérer le secret sur host01.idm.example.com, entrez :
[ipahost] host01.idm.example.com
Effectuez une copie du fichier retrive-data-symmetric-vault.yml Ansible playbook. Remplacez "symétrique" par "standard". Par exemple :
$ cp retrive-data-symmetric-vault.yml retrieve-data-standard-vault.yml-copy.yml
- Ouvrez le fichier retrieve-data-standard-vault.yml-copy.yml pour le modifier.
-
Adapter le fichier en fixant la variable
hosts
à ipahost. Adaptez le fichier en définissant les variables suivantes dans la section
ipavault
task :-
Fixer la variable
ipaadmin_principal
à idm_user. -
Définissez la variable
ipaadmin_password
avec le mot de passe de idm_user. -
Fixer la variable
user
à idm_user. -
Fixer la variable
name
à my_vault. -
Définissez la variable
out
avec le chemin complet du fichier dans lequel vous souhaitez exporter le secret. Fixer la variable
state
à retrieved.Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Tests hosts: ipahost gather_facts: false vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - ipavault: ipaadmin_principal: idm_user ipaadmin_password: idm_user_password user: idm_user name: my_vault out: /tmp/password_exported.txt state: retrieved
-
Fixer la variable
- Enregistrer le fichier.
Exécutez le manuel de jeu :
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file retrieve-data-standard-vault.yml-copy.yml
Verification steps
SSH
à host01 comme user01:$ ssh user01@host01.idm.example.com
Afficher le fichier spécifié par la variable
out
dans le fichier playbook Ansible :$ vim /tmp/password_exported.txt
Vous pouvez maintenant voir le secret exporté.
-
Pour plus d'informations sur l'utilisation d'Ansible pour gérer les coffres-forts IdM et les secrets d'utilisateur, ainsi que sur les variables des playbooks, consultez le fichier README-vault.md Markdown disponible dans le répertoire
/usr/share/doc/ansible-freeipa/
et les exemples de playbooks disponibles dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/vault/
.