Was ist Ansible Vault?

Ansible Vault ist eine integrierte Funktion von Ansible, die sensible Daten wie Passwörter, API-Schlüssel und Zertifikate verschlüsselt, damit sie sicher neben Playbooks und Rollen in der Versionskontrolle gespeichert werden können. Es verwendet AES-256-Verschlüsselung mit symmetrischem Schlüssel und PBKDF2-Schlüsselableitung, was bedeutet, dass ein einzelnes Passwort sowohl für die Verschlüsselung als auch für die Entschlüsselung verwendet wird. Mit Vault verschlüsselte Inhalte werden durch den Header $ANSIBLE_VAULT;1.1;AES256 gefolgt von hexadezimal codiertem Chiffretext identifiziert.

Ansible Vault löst eine grundlegende DevOps-Herausforderung: Wie man Geheimnisse im selben Repository wie Infrastruktur-Code speichert, ohne sie preiszugeben. Anstatt separate Secret Stores zu verwalten oder sich auf Umgebungsvariablen zu verlassen, können Teams verschlüsselte Dateien direkt in Git committen und sie zur Laufzeit während der Playbook-Ausführung entschlüsseln.

Werkzeugbeschreibung

Dieses Werkzeug verschlüsselt und entschlüsselt Ansible Vault-Inhalte direkt im Browser. Geben Sie ein Vault-Passwort und Klartext ein, um einen vollständig kompatiblen verschlüsselten Vault-Blob zu erzeugen, oder fügen Sie einen vorhandenen Vault-Blob ein, um das ursprüngliche Geheimnis offenzulegen. Keine Daten verlassen den Browser — alle kryptographischen Operationen laufen clientseitig.

Beispiele

Klartext verschlüsseln:

Eingabe (Klartext):

db_password: s3cur3P@ss!

Ausgabe (verschlüsselter Vault):

$ANSIBLE_VAULT;1.1;AES256
33383239333036363833303565653032383832663162356533343630623030613133623032636566
6536303436646561356461623866386133623462383832620a646363626137626635353462386430
34333937313366383038346135656563316236313139333933383139376333353266666436316536
6335376265313432610a313537363637383264646261303637646631346137393964386432313633
3666

Vault-Inhalt entschlüsseln:

Fügen Sie den oben verschlüsselten Block mit dem richtigen Passwort ein, um den ursprünglichen Wert db_password: s3cur3P@ss! wiederherzustellen.

Funktionen

  • AES-256-Verschlüsselung vollständig kompatibel mit Ansible Vault 1.1-Format
  • Nur clientseitig — keine Daten werden an einen Server gesendet
  • Unterstützt sowohl Verschlüsselung als auch Entschlüsselung mit einem einzelnen Passwortfeld
  • Sofortige Konvertierung mit Live-Vorschau während der Eingabe
  • Funktioniert mit mehrzeiligen Geheimnissen, YAML-Fragmenten und beliebigem Text

Anwendungsfälle

  • Schnelle Verschlüsselung eines neuen Geheimnisses vor dem Commit in ein Git-Repository mit Ansible-Playbooks
  • Entschlüsselung und Überprüfung von Vault-Inhalten während des Debuggings ohne lokale Ansible-Installation
  • Freigabe verschlüsselter Geheimnisse für Teamkollegen, die sie im Browser mit einem gemeinsamen Vault-Passwort entschlüsseln können

Funktionsweise

Ansible Vault 1.1 verwendet den folgenden Prozess:

  1. Schlüsselableitung — PBKDF2-HMAC-SHA256 leitet einen 80-Byte-Schlüssel aus dem Passwort und einem zufälligen Salt ab (10.000 Iterationen). Der Schlüssel wird in einen 32-Byte-Verschlüsselungsschlüssel, einen 32-Byte-HMAC-Schlüssel und einen 16-Byte-IV aufgeteilt.
  2. Verschlüsselung — Der Klartext wird mit AES-256-CTR unter Verwendung des abgeleiteten Schlüssels und des IV verschlüsselt.
  3. Authentifizierung — Ein HMAC-SHA256 wird über dem Chiffretext berechnet, um die Integrität zu gewährleisten.
  4. Codierung — Der Salt, der HMAC-Digest und der Chiffretext werden hexadezimal codiert und unter dem Header $ANSIBLE_VAULT;1.1;AES256 kombiniert.

Die Entschlüsselung kehrt den Prozess um: Das Passwort leitet die gleichen Schlüssel erneut ab, überprüft das HMAC und entschlüsselt den Chiffretext.

Einschränkungen

  • Unterstützt nur das Ansible Vault 1.1-Format mit AES-256-Verschlüsselung
  • Unterstützt keine Vault-ID-Labels für Multi-Passwort-Setups
  • Große Dateien können kurze UI-Verzögerungen aufgrund des CPU-intensiven Schlüsselableitungsschritts verursachen