iToverDose/Software· 4 JUNI 2026 · 16:03

Ansible Vault: So schützen Sie sensible Daten in Playbooks und AWX

Geheimnisse wie Passwörter oder API-Tokens gehören nicht in Klartext in Versionskontrollsysteme. Erfahren Sie, wie Ansible Vault sensible Daten verschlüsselt und in AWX automatisiert einsetzt.

DEV Community4 min0 Kommentare

Die Verwaltung von sensible Daten in Automatisierungs-Workflows stellt viele DevOps-Teams vor Herausforderungen. Besonders kritisch wird es, wenn Playbooks oder Variablendateien in Git-Repositories landen – denn dann sind Passwörter, API-Schlüssel und Tokens für jeden mit Repository-Zugriff sichtbar. Genau dieses Problem hatte auch Sireesha zu Beginn ihrer Ansible-Reise. Statt jedoch Kompromisse bei der Sicherheit einzugehen, lernte sie Ansible Vault kennen – ein eingebautes Tool, das sensible Daten verschlüsselt und so die sichere Nutzung von Playbooks und Variablen in Umgebungen wie AWX ermöglicht.

Warum Ansible Vault unverzichtbar ist für sichere Automatisierung

Ansible Vault ist kein separates Tool, sondern eine integrierte Funktion innerhalb des Ansible-Ökosystems. Mit ihr lassen sich vertrauliche Informationen – etwa Datenbankpasswörter, sudo-Passwörter oder Authentifizierungstokens – verschlüsseln, ohne die Struktur der Playbooks zu verändern. Die verschlüsselten Daten werden direkt in YAML-Dateien eingebettet und bleiben so für menschliche Leser unlesbar. Gleichzeitig ermöglicht Ansible Vault die automatische Entschlüsselung während der Ausführung von Playbooks, sobald der richtige Schlüssel bereitgestellt wird.

Der größte Vorteil: Sensible Daten müssen nie unverschlüsselt in Repositories oder auf Servern gespeichert werden. Selbst wenn ein Playbook oder eine Variablendatei versehentlich in ein öffentliches Repository hochgeladen wird, bleiben die Inhalte geschützt. Ansible Vault nutzt dabei die AES-256-Verschlüsselung – einen Industriestandard, der als hochsicher gilt. Die einzige Schwachstelle liegt in der Verwaltung des Vault-Passworts, das zur Entschlüsselung benötigt wird.

So verschlüsseln Sie sensible Variablen – Schritt für Schritt

Bevor Sireesha Ansible Vault einsetzte, speicherte sie Passwörter und Tokens direkt in Klartext in Variablendateien:

# vars/main.yml (unverschlüsselt)
ubuntu_sudo_password: MeinPasswort123
db_password: SuperGeheim456
api_token: abcd1234efgh5678

Diese Datei wurde ohne weitere Schutzmaßnahmen in GitLab gepusht – ein klares Sicherheitsrisiko. Mit Ansible Vault lässt sich dieses Problem elegant lösen. Eine der einfachsten Methoden ist die Verschlüsselung einzelner Variablen mit dem Befehl:

ansible-vault encrypt_string 'MeinPasswort123' --name 'ubuntu_sudo_password'

Nach der Eingabe eines Master-Passworts (das zur späteren Entschlüsselung benötigt wird) generiert das Tool einen verschlüsselten String:

ubuntu_sudo_password: !vault | $ANSIBLE_VAULT;1.1;AES256
  6638643965323633646262656665333738623539613862393436316162336466
  3834623437333132386566396634343732623537396131643562336566386661

Dieser Block wird einfach in die bestehende Variablendatei kopiert. Das Ergebnis:

# vars/main.yml (verschlüsselt)
ubuntu_sudo_password: !vault | $ANSIBLE_VAULT;1.1;AES256
  6638643965323633646262656665333738623539613862393436316162336466
  db_password: !vault | $ANSIBLE_VAULT;1.1;AES256
  ...

Die Datei kann nun problemlos in Git-Repositories gepusht werden – ohne dass sensible Daten preisgegeben werden.

Falls viele Variablen verschlüsselt werden müssen, bietet Ansible Vault auch die Verschlüsselung ganzer Dateien an:

ansible-vault encrypt vars/secrets.yml

Zum Bearbeiten der Datei nutzen Sie:

ansible-vault edit vars/secrets.yml

Achtung: Eine dauerhafte Entschlüsselung sollte nur in Ausnahmefällen erfolgen:

ansible-vault decrypt vars/secrets.yml

Automatisierte Ausführung: Ansible Vault in AWX integrieren

Die manuelle Eingabe des Vault-Passworts bei jedem Playbook-Start ist für lokale Tests akzeptabel – doch in automatisierten Umgebungen wie AWX stößt dieses Vorgehen an Grenzen. AWX führt Playbooks nach Zeitplänen oder als Teil von Workflows aus, ohne manuelle Eingriffe zuzulassen. Hier scheitert die klassische Methode mit --ask-vault-pass:

ansible-playbook patch.yml -i inventory/hosts.yml --ask-vault-pass

Stattdessen muss das Vault-Passwort als AWX-Credential hinterlegt werden. So funktioniert die Integration:

  1. Vault-Credential in AWX anlegen
  • Navigieren Sie zu Credentials → Add in der AWX-Oberfläche.
  • Wählen Sie als Credential-Typ die Option „Ansible Vault“.
  • Geben Sie das Vault-Passwort ein und speichern Sie die Credential.
  1. Vault-Credential mit Job-Templates verknüpfen
  • Öffnen Sie das gewünschte Job-Template in AWX.
  • Fügen Sie unter Credentials sowohl die Machine-Credential (für SSH-Zugriff) als auch die Vault-Credential hinzu.
  • Speichern Sie die Änderungen.

Ab diesem Zeitpunkt kann AWX Playbooks automatisch ausführen, ohne dass jemand manuell das Vault-Passwort eingeben muss. Die Entschlüsselung erfolgt im Hintergrund – ein entscheidender Schritt für CI/CD-Pipelines, geplante Jobs oder komplexe Workflows.

Ein praktisches Beispiel: Patch-Workflow mit verschlüsselten Daten

Stellen Sie sich einen typischen Patch-Workflow vor, der wöchentlich Server aktualisiert. Ein Playbook wie pre_patch_check.yml benötigt Zugriff auf sensible Daten:

# vars/secrets.yml (verschlüsselt mit Ansible Vault)
ubuntu_sudo_password: !vault | $ANSIBLE_VAULT;1.1;AES256
  ...
db_connection_string: !vault | $ANSIBLE_VAULT;1.1;AES256

Das Playbook prüft den Systemstatus, bevor Patches angewendet werden:

---
- name: Pre-Patch-Prüfungen
  hosts: all
  vars_files:
    - vars/secrets.yml
  tasks:
    - name: Anwendungsstatus abfragen
      ansible.builtin.uri:
        url: " inventory_hostname }}/health"
        headers:
          Authorization: "Bearer {{ api_token }}"
      register: health_check

Lokal wird das Playbook mit dem Vault-Passwort gestartet:

ansible-playbook pre_patch_check.yml -i inventory/hosts.yml --ask-vault-pass

In AWX hingegen läuft der gesamte Prozess vollständig automatisiert, sobald die Vault-Credential mit dem Job-Template verknüpft ist. Selbst wenn der Job um 2 Uhr nachts geplant ist, erfolgt die Entschlüsselung nahtlos – ohne manuelle Eingriffe oder Sicherheitslücken.

Fazit: Ansible Vault als Grundpfeiler moderner DevOps-Sicherheit

Geheimnisse wie Passwörter oder API-Tokens gehören nicht in Klartext in Automatisierungstools oder Versionskontrollsysteme. Mit Ansible Vault lassen sich diese Daten verschlüsseln, ohne die Funktionalität von Playbooks einzuschränken. Die Integration in AWX oder ähnliche Automatisierungsplattformen stellt sicher, dass sensible Informationen auch in komplexen Workflows geschützt bleiben.

Wer Ansible Vault von Anfang an einsetzt, spart sich nicht nur Sicherheitsrisiken, sondern auch den Aufwand nachträglicher Nachbesserungen. Die Lernkurve ist gering, der Nutzen jedoch enorm – besonders in Umgebungen, in denen Automatisierung und Sicherheit Hand in Hand gehen müssen. Für DevOps-Teams, die ihre Playbooks professionell und sicher gestalten möchten, ist Ansible Vault ein Must-Have-Tool.

KI-Zusammenfassung

Learn to encrypt sensitive data in Ansible with Vault. Discover how to integrate AWX for automated secrets management without manual password entry.

Kommentare

00
KOMMENTAR SCHREIBEN
ID #NZGDUH

0 / 1200 ZEICHEN

Menschen-Check

6 + 6 = ?

Erscheint nach redaktioneller Prüfung

Moderation · Spam-Schutz aktiv

Noch keine Kommentare. Sei der erste.