Hintergrund
- Wir verwenden Ansible, um die Azure-Infrastruktur bereitzustellen und zu verwalten. Im Moment führen wir Ansible "manuell" aus, dh wir führen Playbooks für verschiedene automatisierte Aufgaben manuell aus . Keine CI-Infrastruktur.
- Wahrscheinlich nicht relevant, aber wir verwalten unser Inventar mithilfe eines dynamischen Skripts
azure_rm.py
. - Wir werden ermutigt, so sicher wie möglich zu sein, dh
- Speichern Sie Vault-Passwörter nicht in
~/.vault_pass
oder in einer lokalen Datei - Speichern Sie keine Azure-Geheimnisse in
~/.azure/credentials
- Bewahren Sie nichts Sicheres auf
.bashrc
.
- Speichern Sie Vault-Passwörter nicht in
In einem solchen Szenario habe ich Probleme, eine kohärente Strategie zu entwickeln, um sicherzustellen, dass meine Playbooks auf Azure-Geheimnisse zugreifen können, während ich die oben genannten Richtlinien befolge.
Frage
Wie kann ich vermeiden, Ansible Vault- und Azure-Anmeldeinformationen in Dateien zu speichern und gleichzeitig sicherzustellen, dass meine Playbooks darauf zugreifen können?
Was ich versucht habe
Bisher habe ich mir ein Wrapper-Skript ausgedacht
- fragt den Benutzer nach dem Tresorkennwort
- Verwendet dies zum Entschlüsseln eines Vaulted Shell-Skripts
- Wertet das Skript aus, das Azure-Umgebungsvariablen in die Umgebung lädt.
- Führt das Playbook in der so eingestellten Umgebung aus.
Gibt es bessere (elegantere, weniger komplizierte, "ansible") Lösungen?