Objectifs
- Expliquer ce que Vault chiffre et ce qu’il ne protège pas.
- Créer, chiffrer, afficher et déchiffrer un fichier d’exemple.
- Utiliser une invite, un password file ou un Vault ID.
- Éviter tout secret réel ou mot de passe Vault dans le dépôt.
Ansible Vault
Ansible Vault chiffre des variables ou des fichiers sensibles au repos. Les playbooks peuvent ensuite les utiliser lorsqu’une source de mot de passe autorisée est fournie.
Vault ne remplace pas une gestion complète des secrets : une fois déchiffrée en mémoire ou affichée par une tâche, la donnée doit encore être protégée. Utilisez notamment no_log avec discernement et évitez les sorties de debug sensibles.
Cycle de vie d’un fichier chiffré
Ces commandes ouvrent un éditeur ou demandent un mot de passe dans un terminal contrôlé. Utilisez uniquement des valeurs factices pendant l’apprentissage.
ansible-vault create group_vars/production/vault.ymlansible-vault encrypt group_vars/production/vault.ymlansible-vault view group_vars/production/vault.ymlansible-vault decrypt group_vars/production/vault.ymlLa commande decrypt remet le contenu en clair sur disque. Ne l’utilisez que si c’est nécessaire, dans un emplacement protégé, puis rechiffrez ou supprimez la copie claire de manière appropriée.
Fournir le mot de passe sans l’exposer
--ask-vault-pass demande le secret de façon interactive. Un password file permet l’automatisation, mais ce fichier devient lui-même un secret critique à protéger par des permissions strictes et à exclure du contrôle de version.
ansible-playbook -i inventory.ini site.yml --ask-vault-pass --limit web01ansible-playbook -i inventory.ini site.yml --vault-password-file .vault_pass --limit web01.vault_pass
*.vault-passwordNe committez jamais .vault_pass ni aucun mot de passe Vault. Protégez le fichier local avec des permissions minimales et préférez un gestionnaire de secrets adapté en production.
Distinguer plusieurs contextes avec Vault ID
Un Vault ID associe une étiquette à une source de mot de passe, par exemple dev ou production. L’étiquette n’est pas un secret ; la source qui permet de déchiffrer l’est.
- Ne placez aucun secret réel dans les exemples, logs ou captures.
- Évitez debug sur une variable sensible et utilisez no_log quand nécessaire.
- Restreignez l’accès aux sources de mots de passe et prévoyez leur rotation.
- Vault chiffre au repos ; il ne rend pas sûre une sortie qui révèle le secret.
ansible-vault create --vault-id dev@prompt group_vars/dev/vault.ymlansible-playbook -i inventory.ini site.yml --vault-id production@prompt --limit web01Avertissement critique : ne jamais committer le mot de passe Vault
Mini résumé
- Vault chiffre des fichiers et variables sensibles au repos.
- create, encrypt, view et decrypt couvrent le cycle de base.
- --ask-vault-pass, password file et Vault ID fournissent différentes sources de déchiffrement.
- Le mot de passe Vault ne doit jamais être committé ni affiché.
Outils associés
Construire une commande Ansible
Utilisez Ansible Command Builder pour composer une commande ad-hoc ou de diagnostic et comprendre ses options sans l’exécuter.
Ouvrir l’outilMini quiz
Trois questions pour vérifier les notions essentielles de la leçon.