GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So verwenden Sie Ansible Vault zum Sichern sensibler Daten

Ansible ist ein fantastisches Automatisierungs- und Orchestrierungstool, das aufgrund seiner Einfachheit und Benutzerfreundlichkeit bei vielen Entwicklern beliebt ist. Eines der wichtigsten Features von Ansible ist Ansible Vault. Wie Sie es inzwischen erraten haben, Ansible Vault ist eine Sicherheitsfunktion, die zum Verschlüsseln oder Sichern vertraulicher Informationen in Playbooks oder Dateien verwendet wird, anstatt sie im Klartext zu haben, was im Falle eines Verstoßes eine erhebliche Bedrohung darstellen würde. Zu diesen Daten gehören Passwörter , API-Token und SSL-Zertifikate um nur einige zu nennen. Sie können das gesamte Playbook YAML verschlüsseln Dateien einer Zeichenfolge innerhalb des Playbooks mit sensiblen Informationen wie einem Passwort.

In diesem Leitfaden sehen wir uns verschiedene Möglichkeiten an, wie Ansible Vault Ihnen helfen kann, Ihre sensiblen oder vertraulichen Informationen zu sperren und Schnüffler in Schach zu halten.

Erstellen Sie eine verschlüsselte Datei mit Ansible Vault

Ansible Vault verwendet das Befehlszeilendienstprogramm Ansible-Vault zum Verschlüsseln vertraulicher Informationen mit dem AES256-Algorithmus. Dies bietet eine symmetrische Verschlüsselung, die in ein definiertes Passwort eingebettet ist. Ein Benutzer kann dasselbe Passwort verwenden, um Dateien zu verschlüsseln oder zu entschlüsseln, um auf Inhalte zuzugreifen.

Um eine verschlüsselte Datei zu erstellen, verwenden Sie das Dienstprogramm ansible-vault wie gezeigt

$ ansible-vault create file.yml

Um beispielsweise eine Datei zu erstellen, nennen Sie sie secret_file.yml , führen Sie den Befehl

aus
$ ansible-vault create secret_file.yml

Sie werden aufgefordert, ein neues Tresorkennwort anzugeben. Geben Sie Ihr bevorzugtes Passwort ein und bestätigen Sie es. Sobald Sie das Passwort bestätigt haben, wird der vim-Editor gestartet.

Geben Sie danach den Dateiinhalt ein, den Sie mit Ansible Vault verschlüsseln möchten, und speichern Sie die Datei. Unten ist ein Beispieltext.

Hello, this is my secret file

Wenn Sie die Datei anzeigen, werden Sie feststellen, dass sie bereits mit dem AES256-Algorithmus wie gezeigt verschlüsselt wurde.

$ vim secret_file.yml

Bearbeiten einer verschlüsselten Datei mit Ansible Vault

Um Änderungen an einer bereits vorhandenen verschlüsselten Datei vorzunehmen, verwenden Sie die Syntax:

$ ansible-vault edit file.yml

Aus unserer Beispieldatei, die wir zuvor erstellt haben, wäre der Befehl zum Bearbeiten der Datei:

$ ansible-vault edit secret_file.yml

Sie werden erneut nach dem Tresorpasswort gefragt, und nachdem Sie es eingegeben haben, erhalten Sie Zugriff auf die Datei, um Änderungen vorzunehmen.

Eine verschlüsselte Datei anzeigen

Um einen Blick auf eine verschlüsselte Datei zu werfen, verwenden Sie die Syntax:

$ ansible-vault view file.yml

Bei Verwendung unserer Datei lautet der Befehl daher

$ ansible-vault view secret_file.yml

Verschlüsseln Sie eine vorhandene Datei mit Ansible Vault

Angenommen, Sie möchten eine bereits vorhandene Datei verschlüsseln, die unverschlüsselt ist, beispielsweise eine Inventardatei. Wie würden Sie vorgehen? Verwenden Sie dazu die Syntax:

$ ansible-vault verschlüsseln file.yml

Um beispielsweise eine Datei file1.yml zu verschlüsseln, führen Sie den folgenden Befehl aus:

$ ansible-vault encrypt file1.yml

Geben Sie das Tresorpasswort an und bestätigen Sie es, um die Datei zu verschlüsseln.

Entschlüsseln Sie eine Datei mit Ansible Vault

Führen Sie den folgenden Befehl aus, um eine Datei zu entschlüsseln und zum Klartext zurückzukehren:

$ ansible-vault decrypt file1.yml

Wenn alles gut gegangen ist, erhalten Sie die Meldung „Entschlüsselung erfolgreich“. Sie können jetzt den cat-Befehl verwenden, um den Inhalt der Datei anzuzeigen.

Ansible Vault-Passwort zurücksetzen

Außerdem können Sie das Passwort des Tresors zurücksetzen oder ändern. Dies geschieht mit dem rekey Option im Ansible Vault-Befehl wie gezeigt:

$ ansible-vault rekey secret_file.yml

Geben Sie zuerst das aktuelle Tresorpasswort an und erstellen Sie später ein neues Passwort und bestätigen Sie es.

Entschlüsseln von Inhalten zur Laufzeit in Ansible Playbook

Vor Ansible 2.4 erforderte das Entschlüsseln von Dateien während der Laufzeit die Verwendung von –ask-vault-pass Parameter wie gezeigt mit entweder ansible oder ansible-playbook Befehle:

$ ansible-playbook playbook_example.yml --ask-vault-pass

Sie werden dann zur Eingabe eines Vault-Passworts aufgefordert und die Entschlüsselung beginnt zur Laufzeit.

Dies wurde jedoch abgelehnt. Seit Ansible 2.4 besteht die Standardmethode zur Eingabe eines Passworts darin, die –vault-id zu verwenden Option wie gezeigt.

$ ansible-playbook playbook_example.yml --vault-id @prompt

Die @Eingabeaufforderung wird nach dem Passwort fragen

Ein einfacher Trick, um zu vermeiden, dass Sie jedes Mal, wenn Sie Dateien während der Laufzeit entschlüsseln, zur Eingabe eines Passworts aufgefordert werden, besteht darin, das Tresorpasswort in einer Datei zu speichern.

Vor Ansible 2.4 wurde dies durch die Verwendung der –vault-password-file erreicht Parameter, um den Pfad zu der Datei anzugeben, die das gespeicherte Passwort enthält.

In der folgenden Demonstration befindet sich die Kennwortdatei beispielsweise in der Datei /etc/ansible/vault_pass.txt.

$ ansible-playbook playbook_example.yml --vault-password-file /etc/ansible/vault_pass.txt

Allerdings genauso wie der –ask-vault-pass Option, die Option –vault-password-file wurde verworfen, um den Weg für die –vault-id zu ebnen Möglichkeit. Der Befehl sieht also so aus:

$ ansible-playbook playbook_example.yml --vault-id /etc/ansible/vault_pass.txt

Variable in Ansible Playbook verschlüsseln

Abgesehen von der Verschlüsselung eines ganzen Playbooks, ansible-vault gibt Ihnen auch die Möglichkeit, nur Variablen zu verschlüsseln. In den meisten Fällen handelt es sich dabei um Variablen, die streng vertrauliche und sensible Informationen wie Passwörter und API-Schlüssel enthalten.

Das folgende Playbook soll den Wert der Variable my_secret ausgeben, die ein Passwort enthält, das als [email protected] definiert ist.

Im Allgemeinen ist es eine schlechte Idee, Kennwörter im Klartext zu speichern, da Ihre Sicherheit gefährdet sein kann, wenn jemand an die Playbook-Datei gelangt.

Sie haben daher 2 Möglichkeiten:die gesamte Datei zu verschlüsseln oder den Wert der Variablen zu verschlüsseln.

Um eine Variable zu verschlüsseln, verwenden Sie den encrypt_string Option wie gezeigt.

$ ansible-vault encrypt_string ‚string‘ –name ‚variable_name‘

Um den Wert der Variable my_secret zu verschlüsseln Im Playbook-Beispiel lautet der Befehl:

$ ansible-vault encrypt_string '[email protected]' --name 'my_secret'

Die obige Ausgabe zeigt an, dass das Passwort mit AES 256-Verschlüsselung verschlüsselt wurde . Kopieren Sie von hier aus den gesamten verschlüsselten Code aus !vault | . Gehen Sie zur Playbook-Datei, löschen Sie den Klartext-Passwortwert und fügen Sie den verschlüsselten Wert wie gezeigt ein.

Speichern und beenden Sie die Datei. Führen Sie nun das Playbook aus und überprüfen Sie, ob es immer noch den Wert des in my_secret gespeicherten Passworts anzeigt Variable.

Die obige Ausgabe zeigt, dass das Playbook die gewünschten Ergebnisse liefert, was bedeutet, dass wir die Variable erfolgreich verschlüsselt haben.

Damit ist dieses Tutorial zu Ansible Vault abgeschlossen. Sie können jetzt Ihre Dateien sichern und Ihre vertraulichen Informationen vor neugierigen Blicken schützen.


Linux
  1. So verwenden Sie den SFTP-Befehl für die sichere Dateiübertragung

  2. Wie verwende ich den Dateityp in Vim?

  3. So schützen Sie sensible Daten mit Docker Compose Secrets

  4. Wie verwende ich chmod, um die Dateiberechtigung zu ändern?

  5. Wie funktioniert Rm? Was macht Rm?

So verwenden Sie den Truncate-Befehl unter Linux

Wie man Ansible verwendet, um Vim zu konfigurieren

Eine kurze Einführung in Ansible Vault

So verwenden Sie den Befehl lsof unter Linux

Wie verwende ich gzip unter Linux?

So verwenden Sie den Linux-Befehl shred