
Ich habe ein Ansible-Playbook erhalten, das eine Zip-Datei mit einem Passwort schützen soll. (Ein Teil) des Playbooks sieht folgendermaßen aus:
- name: Create and encrypt zipfile
vars:
zipPW: !vault |
$ANSIBLE_VAULT;1.1;AES256
64656637643264313764633665363234393239346230643936393864313337313030613461326639
3538303634303365373637633761306133333266393331630a336436383534323264376537653564
32393162353730373335303733663463333764616438643762653330616431353162326238663564
3163306336313931660a313530343935643366663433346231386638353932313936366538643664
shell: "zip -jr /tmp/pit/{{hostvars[inventory_hostname]['gzipoutfile']['stdout']}}.zip /tmp/pit/{{hostvars[inventory_hostname]['gzipoutfile']['stdout']}} -P {{zipPW}}"
register: zipped
- debug:
msg: "{{zipped}}
Sie versuchen also, das Tresorkennwort für die Option -P an den Zip-Befehl zu übergeben.
Das scheint nicht zu funktionieren. Beim Ausführen des Playbooks erhalte ich:
"Attempting to decrypt but no vault secrets found"}
Soweit ich Ansible Vault verstehe, bedeutet dies, dass ich ein Passwort angeben muss, um das Tresorpasswort verwenden zu können, aber ich könnte mich irren. Die Angabe eines Passworts scheint nutzlos, wenn Sie Dinge automatisieren möchten. Wenn ich das Passwort in eine Datei eintrage, bin ich genauso gefährdet, als wenn ich die Zip-Datei nicht mit einem Passwort verschlüsseln würde.
Ist es überhaupt möglich, auf diese Weise zu versuchen, ein Tresorkennwort zu verwenden?
Antwort1
Ansible hatverschiedene Wegeum das Tresorkennwort anzugeben.
- Dateien - können durch Dateisystemberechtigungen geschützt werden
- Skripte - können auf andere Tresore zugreifen und das anderswo gespeicherte Tresorkennwort dekodieren/entschlüsseln
Aber alle laufen auf dasselbe Problem hinaus: Irgendwann müssen Sie etwas bereitstellen, um das Passwort zu entschlüsseln, was Automatisierungsprozesse erschwert. Es liegt an Ihnen, zu entscheiden, wo Sie ein Klartextgeheimnis zum Entschlüsseln der Tresorpasswörter speichern möchten.