在生产环境中保护密码

sou*_*ica 6 java linux security

我们有一个在JBoss和Linux上运行的Java Web应用程序.生产环境数据库连接参数来自仅存在于生产环境应用程序服务器上的配置文件.该配置文件只能由运行应用程序的用户ID读取(让我们称之为用户appuser),只有那些可以登录到生产环境服务器并且sudo到appuser的人才是我们运营团队的成员.生产环境本身可以防御所有其他环境.

我们想让这更安全.具体来说,我们希望阻止操作团队读取数据库连接密码和当前配置文件中的其他密钥.

另外要记住的一个因素是运营团队负责构建和部署应用程序.

我们有什么选择?该解决方案需要支持手动重新启动应用程序,以及在操作系统重新启动时自动启动应用程序.

更新

我正在调查的解决方案(向Adamski提示他的建议,大致转化为第1步):

  1. 编写一个包装器可执行文件,setuid用于启动/停止应用程序并拥有配置文件和JBoss目录树中的所有内容的用户.

  2. 用于jarsigner在构建WAR后对其进行签名.WAR的构建将通过开发完成.该setuid包装将验证签名,验证了战争没有被篡改.

  3. 将部署过程更改为仅部署已签名的WAR.该setuid包装也可以移动WAR到位在JBoss deploy目录.

Ada*_*ski 3

为什么不为运营团队创建第二个用户来执行 sudo,与应用程序的用户 ID 相比,该用户仅具有文件权限的子集?

无需更改代码;又好又简单。