Aller au contenu

GUIDE TECHNIQUE · ANSIBLE

Sécuriser les variables avec Ansible Vault

Chiffrer un fichier de variables de laboratoire avec Ansible Vault, le charger dans un playbook et contrôler que le journal d'exécution ne révèle pas la valeur déchiffrée.

Niveau Intermédiaire5 min de lecture— vuesAnsible

L’ESSENTIEL EN BREF

Comment procéder ?

Chiffrer un fichier de variables de laboratoire avec Ansible Vault, le charger dans un playbook et contrôler que le journal d'exécution ne révèle pas la valeur déchiffrée.

Résultat à atteindre : secrets.yml est bien chiffré et aucun mot de passe Vault n'est commité.

Avant de commencer : ansible-vault, ansible-playbook et un éditeur local fonctionnels.

01 · CADRAGE

Ce que vous allez mettre en place

Chiffrer un fichier de variables de laboratoire avec Ansible Vault, le charger dans un playbook et contrôler que le journal d'exécution ne révèle pas la valeur déchiffrée.

Pour qui : Administrateurs, ingénieurs DevOps, SRE et équipes de recette

Environnement et versions

ansible-core récent ; mot de passe Vault fourni via saisie interactive --ask-vault-pass. Démonstration sans vrai secret client ni stockage du mot de passe dans le dépôt.

Vérifiez la compatibilité avec votre environnement réel. Les versions ne sont jamais présumées identiques d’un tenant à l’autre.

02 · AVANT DE COMMENCER

Prérequis et points de contrôle

  • ansible-vault, ansible-playbook et un éditeur local fonctionnels.
  • Un dossier de laboratoire privé avec chmod approprié, aucun secret réel.
  • Une phrase Vault de démonstration distincte de tout mot de passe professionnel.
  • Connaître la différence : Vault protège le stockage, pas toutes les sorties après déchiffrement.

03 · VUE D’ENSEMBLE

Comprendre l’architecture et les flux

ARCHITECTURE TECHNIQUEComprendre la chaîne de bout en bout
01Inventaire
02Playbook
03Modules
04État cible
05Contrôle
Le plan de contrôle Ansible applique les modules depuis le poste de pilotage ; check, diff et seconde passe permettent d'évaluer les modifications.

04 · TUTORIEL

Procédure complète, étape par étape

Chaque étape explique l’action, sa raison, le contrôle attendu et les erreurs habituelles. Adaptez les exemples aux paramètres de votre propre environnement.

01

ÉTAPE 1 / 5

Créer un fichier de recette non sensible

Vault protège les fichiers au repos, mais le mot de passe Vault lui-même doit rester hors du dépôt Git.

  1. Créer un dossier de recette avec accès limité.
  2. Vérifier la disponibilité de Vault.
  3. Ne jamais mettre le mot de passe de Vault dans l'historique shell ou un dépôt.
Exemple techniqueÀ adapter à votre environnement
mkdir -p ansible-vault-lab && cd ansible-vault-lab
chmod 700 .
ansible-vault --version
Ce qui se passe à cette étape
1Inventaire
2Créer un fichier de recette non sensible
3Contrôle

À vérifier : Ansible Vault est disponible et les fichiers de recette peuvent rester privés.

Point de vigilance ADN : L'exemple ne protège pas un disque compromis ou les valeurs déchiffrées en mémoire.

02

ÉTAPE 2 / 5

Chiffrer le fichier avec Vault

L'éditeur interactif évite d'écrire même un secret fictif sur la ligne de commande.

  1. Créer secrets.yml à l'aide de ansible-vault create.
  2. Saisir un mot de passe Vault de laboratoire au prompt puis la clé demo_token: EXEMPLE-NE-PAS-UTILISER dans l'éditeur.
  3. Fermer l'éditeur pour laisser Vault écrire le fichier chiffré.
Exemple techniqueÀ adapter à votre environnement
ansible-vault create secrets.yml
# Dans l'éditeur ouvert après le prompt :
# demo_token: EXEMPLE-NE-PAS-UTILISER
Ce qui se passe à cette étape
1Playbook
2Chiffrer le fichier avec Vault
3Contrôle

À vérifier : secrets.yml commence par l'en-tête $ANSIBLE_VAULT et ne contient pas de YAML clair lisible sans déchiffrement.

Point de vigilance ADN : Ne mettez aucun vrai token dans la démonstration ; évitez les copies, sauvegardes d'éditeur et journaux non maîtrisés.

03

ÉTAPE 3 / 5

Vérifier qu'il n'est plus en clair

Une vérification de l'en-tête et un view interactif montrent que le déchiffrement est bien conditionné au mot de passe.

  1. Inspecter seulement la première ligne du fichier chiffré.
  2. Exécuter ansible-vault view à un terminal privé.
  3. Ne pas copier la sortie déchiffrée dans une capture ou un ticket.
Exemple techniqueÀ adapter à votre environnement
head -n 1 secrets.yml
ansible-vault view secrets.yml
Ce qui se passe à cette étape
1Modules
2Vérifier qu'il n'est plus en clair
3Contrôle

À vérifier : L'en-tête Vault est présent et un mot de passe correct permet de consulter le fichier.

Point de vigilance ADN : La commande view affiche le contenu en clair : ne l'exécuter que sur un poste de recette sûr.

04

ÉTAPE 4 / 5

Déchiffrer en mémoire pour une recette contrôlée

Le rôle du fichier chiffré n'est démontré que lorsqu'un playbook le consomme sans exposer sa valeur.

  1. Créer play.yml qui charge secrets.yml via vars_files.
  2. Ajouter une tâche assert avec no_log: true pour éviter de diffuser la valeur.
  3. Lancer le playbook avec --ask-vault-pass, puis vérifier le succès sans sortie de demo_token.
Exemple techniqueÀ adapter à votre environnement
cat > play.yml <<'EOF'
- name: Lire Vault sans fuite
  hosts: localhost
  connection: local
  gather_facts: false
  vars_files:
    - secrets.yml
  tasks:
    - name: Verifier la valeur chiffrée
      ansible.builtin.assert:
        that:
          - demo_token == 'EXEMPLE-NE-PAS-UTILISER'
      no_log: true
EOF
ansible-playbook -i localhost, -c local play.yml --ask-vault-pass
Ce qui se passe à cette étape
1État cible
2Déchiffrer en mémoire pour une recette contrôlée
3Contrôle

À vérifier : Le playbook réussit, mais la sortie de la tâche assert masque ses arguments et son résultat.

Point de vigilance ADN : no_log limite les journaux Ansible de cette tâche ; examiner aussi les callbacks, modules et outils externes qui manipuleraient des secrets.

05

ÉTAPE 5 / 5

Faire tourner le secret et vérifier la politique

La rotation de la phrase Vault est une opération distincte du changement des secrets contenus.

  1. Exécuter rekey et utiliser deux mots de passe de laboratoire distincts.
  2. Répéter ansible-playbook --ask-vault-pass avec le nouveau mot de passe.
  3. Supprimer le dossier de test après confirmation, sans réutiliser les secrets de recette.
Exemple techniqueÀ adapter à votre environnement
ansible-vault rekey secrets.yml
ansible-playbook -i localhost, -c local play.yml --ask-vault-pass
Ce qui se passe à cette étape
1Contrôle
2Faire tourner le secret et vérifier la politique
3Contrôle

À vérifier : Le mot de passe renouvelé déchiffre le fichier et le playbook reste fonctionnel.

Point de vigilance ADN : Ansible Vault n'est pas un gestionnaire de rotation des secrets applicatifs ; adapter la procédure aux politiques de coffre et d'audit.

SOURCES ET FIABILITÉ

Statut de validation du guide

Rédaction : ADN Consulting. Statut : procédure documentée, exécution en laboratoire non attestée.

Les exemples et versions indiqués doivent être vérifiés sur un environnement autorisé. Aucune validation individuelle par un consultant n’est revendiquée sans preuve.

Documentation officielle de référence

05 · RECETTE

Comment vérifier que tout fonctionne ?

Résultat attenduContrôles avant de considérer la procédure terminée
01

secrets.yml est bien chiffré et aucun mot de passe Vault n'est commité.

02

play.yml charge vars_files et protège les tâches de traitement via no_log.

03

Le secret fictif n'apparaît pas dans la sortie du playbook.

04

La rotation du mot de passe Vault est testée.

05

Aucune vraie donnée client utilisée.

06 · DIAGNOSTIC

Problèmes fréquents et résolution

Échec de syntaxe

Cause probable : Format du fichier ou option incompatible

Que faire : Vérifier indentation YAML, version et documentation officielle.

Accès refusé

Cause probable : Droits ou contexte de connexion incorrects

Que faire : Contrôler l'utilisateur, le namespace et les permissions.

État non conforme

Cause probable : Configuration non appliquée ou ressource différente

Que faire : Relire les sorties détaillées, événements et paramètres effectifs.

Le conseil de l’expert ADN

Avant de généraliser cette configuration, validez-la sur un périmètre représentatif, documentez les critères de réussite et conservez une procédure de retour arrière. Une automatisation fiable se juge sur l’état final observé, les permissions maîtrisées et un retour arrière testé.

07 · QUESTIONS PRATIQUES

Questions fréquentes

Vault protège-t-il les logs de playbooks ?

Non. Les valeurs sont déchiffrées durant l'exécution ; no_log et la revue des modules/callbacks restent nécessaires.

Faut-il commiter le mot de passe Vault ?

Jamais. Utiliser la saisie interactive ou un fournisseur de mots de passe géré de façon sécurisée.

AUTRES TECHNOLOGIES

Guides complémentaires

Ce tutoriel s’inscrit dans une chaîne technique plus large. Retrouvez les méthodes associées aux technologies voisines.

Tous les guides Ansible

Pour aller plus loin