ansiblecookbook icon indicating copy to clipboard operation
ansiblecookbook copied to clipboard

Securely remove decrypted Vault password file?

Open kenny-evitt opened this issue 8 years ago • 0 comments

The "How do I store private data in git for Ansible?" section covers using GPG to encrypt a file with the Ansible Vault password and creating a shell alias to first decrypt the password file before calling ansible-playbook.

But the alias does nothing to securely remove the decrypted password file.

This blog post describes what seems like a better alternative:

A shell script (say open_the_vault.sh) is created to decrypt the encrypted password file:

#!/bin/sh
gpg --batch --use-agent --decrypt vault_passphrase.gpg

And that shell script is then set as the vault_password_file value in ansible.cfg:

[defaults]
vault_password_file = open_the_vault.sh

Using a script for that file is supported as-of version 1.7 of Ansible:

As of 1.7 this file can also be a script. If you are using a script instead of a flat file, ensure that it is marked as executable, and that the password is printed to standard output. If your script needs to prompt for data, prompts can be sent to standard error.

The benefit of this setup is that the Vault password won't be stored decrypted in the filesystem (or, at least, not as a regular file).

kenny-evitt avatar Jun 22 '16 19:06 kenny-evitt