Recherche de site Web

Comment utiliser Ansible Vault dans les Playbooks pour protéger les données sensibles - Partie 10


Au fur et à mesure que vous utilisez Ansible, vous devrez peut-être saisir certaines informations confidentielles ou secrètes dans les playbooks. Cela inclut les clés privées et publiques SSH, les mots de passe et les certificats SSL, pour n'en citer que quelques-uns. Comme nous le savons déjà, il est déconseillé de sauvegarder ces informations sensibles en texte brut pour des raisons évidentes. Ces informations doivent être conservées sous clé car nous ne pouvons qu'imaginer ce qui se passerait si des pirates informatiques ou des utilisateurs non autorisés s'en emparaient.

Heureusement, Ansible nous offre une fonctionnalité pratique appelée Ansible Vault. Comme son nom l'indique, Ansible Vault permet de sécuriser les informations secrètes vitales, comme nous l'avons évoqué précédemment. Ansible Vault peut chiffrer des variables, voire des fichiers entiers et des playbooks YAML, comme nous le démontrerons plus tard. C’est un outil très pratique et convivial qui nécessite le même mot de passe lors du cryptage et du déchiffrement des fichiers.

Passons maintenant à cela et ayons un aperçu des différentes opérations qui peuvent être effectuées à l'aide de Ansible Vault.

Comment créer un fichier crypté dans Ansible

Si vous souhaitez créer un fichier Playbook chiffré, utilisez simplement la commande ansible-vault create et fournissez le nom de fichier comme indiqué.

ansible-vault create filename

Par exemple, pour créer un fichier crypté mysecrets.yml, exécutez la commande.

ansible-vault create mysecrets.yml

Un mot de passe vous sera ensuite demandé, et après l'avoir confirmé, une nouvelle fenêtre s'ouvrira à l'aide de l'éditeur vi où vous pourrez commencer à écrire vos pièces.

Vous trouverez ci-dessous un échantillon de quelques informations. Une fois que vous avez terminé, enregistrez et quittez simplement le playbook. Et c’est à peu près tout lors de la création d’un fichier crypté.

Pour vérifier le cryptage du fichier, utilisez la commande cat comme indiqué.

cat mysecrets.yml

Comment afficher un fichier crypté dans Ansible

Si vous souhaitez afficher un fichier chiffré, passez simplement la commande ansible-vault view comme indiqué ci-dessous.

ansible-vault view mysecrets.yml

Encore une fois, un mot de passe vous sera demandé. Une fois de plus, vous aurez accès à vos informations.

Comment modifier un fichier crypté dans Ansible

Pour apporter des modifications à un fichier chiffré, utilisez la commande ansible-vault edit comme indiqué.

ansible-vault edit mysecrets.yml

Comme toujours, fournissez le mot de passe et procédez ensuite à la modification du fichier.

Une fois l'édition terminée, enregistrez et quittez l'éditeur vim.

Comment changer le mot de passe d'Ansible Vault

Si vous ressentez le besoin de modifier le mot de passe du coffre-fort Ansible, vous pouvez facilement le faire à l'aide de la commande ansible-vault rekey comme indiqué ci-dessous.

ansible-vault rekey mysecrets.yml

Cela vous demande le mot de passe du coffre-fort, puis vous demande de saisir le nouveau mot de passe et de le confirmer ultérieurement.

Comment chiffrer un fichier non chiffré dans Ansible

Supposons que vous souhaitiez chiffrer un fichier non chiffré, vous pouvez le faire en exécutant la commande ansible-vault encrypt comme indiqué.

ansible-vault encrypt classified.txt

Vous pourrez ultérieurement visualiser le fichier à l'aide de la commande cat comme indiqué ci-dessous.

Comment décrypter un fichier crypté

Pour afficher le contenu d'un fichier chiffré, déchiffrez simplement le fichier à l'aide de ansible-vault encrypt comme illustré dans l'exemple ci-dessous.

ansible-vault decrypt classified.txt

Comment chiffrer des variables spécifiques dans Ansible

De plus, Ansible Vault vous offre la possibilité de chiffrer certaines variables. Cela se fait à l'aide de la commande ansible-vault encrypt_string comme indiqué.

ansible-vault encrypt_string 

Ansible Vault vous demandera le mot de passe et vous demandera plus tard de le confirmer. Ensuite, saisissez la valeur de chaîne que vous souhaitez chiffrer. Enfin, appuyez sur ctrl+d. Par la suite, vous pouvez commencer à attribuer la valeur chiffrée dans un playbook.

Ceci peut être réalisé en une seule ligne, comme indiqué ci-dessous.

ansible-vault encrypt_string 'string' --name 'variable_name'

Comment décrypter un fichier Playbook pendant l'exécution

Si vous disposez d'un fichier playbook et que vous souhaitez le déchiffrer pendant l'exécution, utilisez l'option --ask-vault-pass comme illustré.

ansible-playbook deploy.yml --ask-vault-pass

Cela décrypte tous les fichiers utilisés dans le playbook à condition qu'ils aient été chiffrés à l'aide du même mot de passe.

Les invites de mot de passe peuvent parfois être ennuyeuses. Ces invites rendent l’automatisation intenable, surtout lorsque l’automatisation est la clé. Pour rationaliser le processus de déchiffrement des playbooks pendant l'exécution, il est recommandé de disposer d'un fichier de mot de passe distinct contenant le mot de passe du coffre-fort Ansible. Ce fichier peut ensuite être transmis pendant l'exécution, comme indiqué.

ansible-playbook deploy.yml --vault-password-file  /home/tecmint/vault_pass.txt

Cela nous amène à la conclusion de ce sujet et de la série sur l'automatisation Ansible. Nous espérons que les didacticiels vous ont apporté des connaissances utiles sur la façon dont vous pouvez automatiser des tâches sur plusieurs serveurs à partir d'un système central.