2017-01-05 6 views
0

Meine Java-Webanwendung benötigt Zugriff auf bestimmte Kennwörter. Ich habe die App so konfiguriert, dass sie diese Passwörter von Umgebungsvariablen liest. Wenn ich die app bereitstellen, um tomcat werden diese Umgebungsvariablen in setenv.sh Datei wie diese So speichern Sie vertrauliche Informationen in setenv.sh

gespeichert
export SOME_PWD="somvalue" 

Gibt es einen besseren Weg, dies zu tun, so dass sie im Klartext gespeichert sind? Ich möchte setenv.sh in meinem git-Repository beibehalten, um Änderungen zu verfolgen und leicht CI-Bereitstellung durchzuführen, und würde es hassen, Klartextpasswörter in meinem Repository zu behalten.

+0

vielleicht das? http://StackOverflow.com/Questions/2161054/where-to-place-and-how-to-read-configuration-resource-files-in-servlet-based-app – Rjiuk

+0

Schauen Sie sich [Vault] (http: // docs.ansible.com/ansible/playbooks_vault.html) Funktion von Ansible. Es ist möglich, Sensitivitätsdaten in einem verschlüsselten Format im Repository zu speichern und sie während der Bereitstellung zu entschlüsseln, wenn Sie einen entsprechenden Schlüssel dafür haben. In diesem Fall sollten Sie Ansible für die Bereitstellung verwenden. –

+0

Auch wenn es um Python geht, finden Sie eine interessante Diskussion [in diesem anderen Beitrag] (http://stackoverflow.com/questions/11575398/how-can-i-save-my-secret-keys-and-password) -Sicheres-in-meiner-Versionskontrollsystem) –

Antwort

0

Wenn Sie unter Linux arbeiten und Umgebungsvariablen Geheimnisse enthalten, dann bekämpfen Sie bereits die falsche Schlacht, indem Sie versuchen, sie in den Shell-Skripten zu schützen, die zum Starten Ihres JVM-Prozesses verwendet werden.

Linux hat normalerweise ein /proc Dateisystem, das ein virtuelles Verzeichnis für jeden Prozess hat, und jedes Prozessverzeichnis hat eine environ Datei, in der jeder Benutzer auf dem System die Umgebung des Prozesses ausgeben kann.

Sie müssen also mehr als nur die Datei schützen, die die Umgebungsvariable export Zeilen enthält. Ich würde argumentieren, dass Standard-UNIX-Dateiberechtigungen das Shell-Skript ausreichend schützen können. Wenn Sie Ihren Administratoren nicht vertrauen, kann Ihr System niemals als sicher angesehen werden.

Sie sollten in Erwägung ziehen, Ihre Anwendung zu ändern, um diese Konfigurationsparameter aus einer Datei zu laden, die in ähnlicher Weise geschützt werden kann (Dateiberechtigungen), anstatt die "Umgebung" des Prozesses zu diesem Zweck zu verwenden.

Verwandte Themen