如何在setenv.sh中安全地保存敏感信息

时间:2017-01-05 12:50:18

标签: java tomcat environment-variables

我的Java Web应用程序需要访问某些密码。我已将应用程序配置为从环境变量中读取这些密码。当我将应用程序部署到tomcat时,这些环境变量存储在setenv.sh文件中,如此

export SOME_PWD="somvalue"

有没有更好的方法来做到这一点,以便它们不以明文形式存储?我想在我的git存储库中维护setenv.sh以跟踪更改并轻松地进行CI部署,并且不愿在我的存储库中保留明文密码。

1 个答案:

答案 0 :(得分:1)

如果您使用的是Linux并且环境变量包含机密,那么您已经在尝试使用用于启动JVM进程的shell脚本中保护它们而打错了。

Linux通常有一个/proc文件系统,每个进程都有一个虚拟目录,每个进程目录都有一个environ文件,系统中的任何用户都可以转储该进程的环境。 / p>

因此,您需要保护的不仅仅是包含环境变量export行的文件。我认为标准的UNIX文件权限可以充分保护shell脚本。如果您不信任您的管理员,您的系统永远不会被视为安全。

您应该考虑更改应用程序以从可以受到类似保护的文件(文件权限)加载这些配置参数,而不是使用进程的环境"为此目的。