GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser Ansible Vault pour sécuriser les données sensibles

Ansible est un fantastique outil d'automatisation et d'orchestration populaire parmi de nombreux développeurs en raison de sa simplicité et de sa facilité d'utilisation. L'une des fonctionnalités les plus importantes fournies avec Ansible est le coffre-fort Ansible. Comme vous le devinez maintenant, Ansible Vault est une fonction de sécurité utilisée pour chiffrer ou sécuriser des informations sensibles dans des playbooks ou des fichiers au lieu de les avoir en texte brut, ce qui constituerait une menace importante en cas de violation. Ces données incluent les mots de passe , jetons d'API et certificats SSL pour n'en citer que quelques-uns. Vous pouvez chiffrer l'intégralité du playbook YAML fichiers d'une chaîne dans le playbook avec des informations sensibles telles qu'un mot de passe.

Dans ce guide, nous examinons les différentes manières dont Ansible Vault peut vous aider à verrouiller vos informations sensibles ou confidentielles et à tenir les fouineurs à distance.

Créer un fichier chiffré à l'aide d'Ansible Vault

Ansible Vault utilise l'utilitaire de ligne de commande ansible-vault pour chiffrer les informations sensibles à l'aide de l'algorithme AES256. Cela fournit un cryptage symétrique qui est intégré à un mot de passe défini. Un utilisateur peut utiliser le même mot de passe pour chiffrer ou déchiffrer des fichiers afin d'accéder au contenu.

Pour créer un fichier crypté, utilisez l'outil utilitaire ansible-vault comme indiqué

$ ansible-vault crée un fichier.yml

Par exemple, pour créer un fichier, appelez-le secret_file.yml , exécutez la commande

$ ansible-vault create secret_file.yml

Vous serez invité à fournir un nouveau mot de passe de coffre-fort. Entrez votre mot de passe préféré et confirmez. Une fois que vous avez confirmé le mot de passe, l'éditeur vim sera lancé.

Ensuite, tapez le contenu du fichier que vous souhaitez chiffrer par le coffre-fort Ansible et enregistrez le fichier. Vous trouverez ci-dessous un exemple de texte.

Hello, this is my secret file

Lorsque vous affichez le fichier, vous découvrirez qu'il a déjà été crypté à l'aide de l'algorithme AES256, comme indiqué.

$ vim secret_file.yml

Modifier un fichier chiffré avec Ansible Vault

Pour apporter des modifications à un fichier déjà existant qui est chiffré, utilisez la syntaxe :

$ ansible-vault modifier le fichier.yml

À partir de notre exemple de fichier que nous avons créé précédemment, la commande pour modifier le fichier serait :

$ ansible-vault edit secret_file.yml

Encore une fois, vous serez invité à entrer le mot de passe du coffre-fort, et après l'avoir fourni, vous aurez accès au fichier pour apporter des modifications.

Afficher un fichier crypté

Pour avoir un aperçu d'un fichier chiffré, utilisez la syntaxe :

$ ansible-vault vue fichier.yml

A l'aide de notre fichier, la commande sera donc

$ ansible-vault view secret_file.yml

Chiffrer un fichier existant à l'aide d'Ansible Vault

Supposons que vous souhaitiez chiffrer un fichier déjà existant qui n'est pas chiffré, par exemple un fichier d'inventaire. Comment procéderiez-vous ? Pour ce faire, utilisez la syntaxe :

$ ansible-vault encrypt file.yml

Par exemple, pour chiffrer un fichier file1.yml, exécutez la commande :

$ ansible-vault encrypt file1.yml

Spécifiez le mot de passe du coffre-fort et confirmez-le pour chiffrer le fichier.

Décrypter un fichier à l'aide d'Ansible Vault

Pour déchiffrer un fichier et revenir au texte brut, exécutez la commande :

$ ansible-vault decrypt file1.yml

Si tout s'est bien passé, vous recevrez un message "Décryptage réussi". Vous pouvez maintenant utiliser la commande cat pour afficher le contenu du fichier.

Réinitialiser le mot de passe du coffre Ansible

Vous pouvez également réinitialiser ou modifier le mot de passe du coffre-fort. Ceci est fait en utilisant le rekey option dans la commande ansible vault comme indiqué :

$ ansible-vault rekey secret_file.yml

Spécifiez d'abord le mot de passe actuel du coffre-fort, puis créez un nouveau mot de passe et confirmez-le.

Décryptage du contenu au moment de l'exécution dans Ansible Playbook

Avant Ansible 2.4, le décryptage des fichiers pendant l'exécution nécessitait l'utilisation du –ask-vault-pass paramètre comme indiqué avec ansible ou ansible-playbook commandes :

$ ansible-playbook playbook_example.yml --ask-vault-pass

Vous serez alors invité à entrer un mot de passe Vault et le déchiffrement commencera au moment de l'exécution.

Cependant, cela a été déprécié. Depuis Ansible 2.4, la méthode standard pour demander un mot de passe consiste à utiliser le –vault-id comme indiqué.

$ ansible-playbook playbook_example.yml --vault-id @prompt

L'@invite demandera le mot de passe

Une astuce simple pour éviter d'être invité à entrer un mot de passe chaque fois que vous déchiffrez des fichiers pendant l'exécution consiste à stocker le mot de passe du coffre-fort dans un fichier.

Avant Ansible 2.4, le moyen d'y parvenir était d'utiliser le fichier –vault-password-file paramètre pour spécifier le chemin d'accès au fichier contenant le mot de passe stocké.

Par exemple, dans la démonstration ci-dessous, le fichier de mot de passe se trouve dans le fichier /etc/ansible/vault_pass.txt.

$ ansible-playbook playbook_example.yml --vault-password-file /etc/ansible/vault_pass.txt

Cependant, tout comme le –ask-vault-pass option, l'option –vault-password-file a été déprécié pour ouvrir la voie à –vault-id option. La commande ressemble donc à ceci :

$ ansible-playbook playbook_example.yml --vault-id /etc/ansible/vault_pass.txt

Chiffrer une variable dans Ansible Playbook

En plus de chiffrer un playbook entier, ansible-vault vous donne également la possibilité de chiffrer uniquement les variables. Dans la plupart des cas, il s'agit de variables contenant des informations hautement confidentielles et sensibles telles que des mots de passe et des clés API.

Le playbook ci-dessous est destiné à imprimer la valeur de la variable my_secret qui contient un mot de passe défini comme [email protected].

Généralement, c'est une mauvaise idée de stocker les mots de passe en texte brut, car si quelqu'un met la main sur le fichier playbook, votre sécurité peut être compromise.

Vous avez donc 2 options :chiffrer l'intégralité du fichier ou chiffrer la valeur de la variable.

Pour chiffrer une variable, utilisez la encrypt_string comme indiqué.

$ ansible-vault encrypt_string 'chaîne' -name 'nom_variable'

Pour chiffrer la valeur de la variable my_secret sur l'exemple de playbook, la commande sera :

$ ansible-vault encrypt_string '[email protected]' --name 'my_secret'

La sortie ci-dessus indique que le mot de passe a été crypté avec le cryptage AES 256 . À partir de là, copiez l'intégralité du code crypté de !vault | . Dirigez-vous vers le fichier playbook et supprimez la valeur du mot de passe en clair et collez la valeur cryptée comme indiqué.

Enregistrez et quittez le fichier. Exécutez maintenant le playbook et vérifiez s'il affichera toujours la valeur du mot de passe stocké dans my_secret variables.

La sortie ci-dessus montre que le playbook donne les résultats souhaités, ce qui implique que nous avons réussi à chiffrer la variable.

Ceci conclut ce tutoriel sur Ansible Vault. Vous pouvez désormais sécuriser vos fichiers et garder vos informations confidentielles à l'abri des regards indiscrets.


Linux
  1. Comment utiliser la commande SFTP pour le transfert de fichiers sécurisé

  2. Comment utiliser le type de fichier dans Vim ?

  3. Comment sécuriser les données sensibles avec Docker Compose Secrets

  4. Comment utiliser chmod pour modifier l'autorisation d'un fichier ?

  5. Comment ça marche ? Que fait rm ?

Comment utiliser la commande Truncate sous Linux

Comment utiliser Ansible pour configurer Vim

Une brève introduction à Ansible Vault

Comment utiliser la commande lsof sous Linux

Comment utiliser gzip sous Linux ?

Comment utiliser la commande shred Linux