Parfois, je voudrais utiliser Ansible lineinfile
ou des blockinfile
modules pour écrire un mot de passe dans un fichier de configuration. Si je le fais, toute la ligne ou le bloc, mot de passe inclus, se retrouve dans mon syslog
.
Comme je ne considère syslog
pas être un endroit sûr pour stocker mes mots de passe, comment puis-je dire à Ansible de ne pas divulguer mon mot de passe syslog
? J'espère qu'il existe un moyen de le faire, sinon je considérerais cela comme un gros problème de sécurité dans Ansible.
Vous pouvez le reproduire par exemple avec cette commande ad-hoc:
ansible localhost -m blockinfile -a 'dest=/tmp/ansible_password_leak create=yes block="Password = {{password}}"' -e 'password=secret'
Voici ce qui finit par syslog
:
ansible-blockinfile: Invoked with directory_mode=None force=None remote_src=None insertafter=None owner=None follow=False marker=# {mark} ANSIBLE MANAGED BLOCK group=None insertbefore=None create=True setype=None content=None serole=None state=present dest=/tmp/ansible_password_leak selevel=None regexp=None validate=None src=None seuser=None delimiter=None mode=None backup=False block=Password = secret
Pour l'exemple, j'ai utilisé Ansible 2.0.0.2 du PPA officiel d'Ansible Ubuntu sur un système Debian "Jessie" 8.
syslog
mais désactive la sortie de journalisation dans la sortie de la console en même temps. Y a-t-il un moyen de changer cela?password = XXX
.J'ai développé un plugin de rappel pour cacher les mots de passe pour les sorties par défaut, il analyse le dictionnaire de sortie pour la clé qui contient le mot de passe , pour chacun d'eux, il remplace la valeur par ********.
Créez un fichier nommé
protect_data.py
dans le dossier ./plugins/callback add ajoutez ce code:Dans le fichier ansible.cfg :
stdout_callback
et définir ce nom de plugin une valeur (stdout_callback=protect_data
)callback_plugins
et définir la valeur./plugins/callback
la source
ansible-playbook --diff
(modifications des différences de fichier)?On pourrait suggérer que l'utilisation de Vault à la place permettrait d'éviter le problème.
la source