【发布时间】:2017-10-16 20:58:42
【问题描述】:
我在 AWS Elastic beanstalk 上有一个 tomcat 应用程序,正如 here 建议的那样,我正在使用环境属性来设置 jdbc 与数据库的连接,此参数包括数据库的用户和密码。 问题是,tomcat 记录器正在记录其启动时的所有参数,它看起来像这样
INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -DJDBC_CONNECTION_STRING=jdbc:mysql:///localhost:3306/mydatabase?user=me&password=mypassword
我不希望这些敏感数据出现在实例日志中。如何告诉 Tomcat 不要记录命令行参数? {或针对该问题的任何其他安全解决方案}
更新: 所以似乎删除了这条线 from Tomcats server.xml 在我的本地 tomcat (Thanks cyril) 上成功了
但是如何在 Elastic Beanstalk 上进行设置? 我试图在 .ebextensions 文件夹中创建一个脚本,其中 this 有变化,但它对我不起作用,仍然记录了参数。但我不确定我使用的是 windows 并且对 linux 脚本不是很熟悉。也许有人可以帮助我正确创建该脚本?如何检查脚本是否在弹性 beanstalk 实例上运行以及 server.xml 是否更改?
【问题讨论】:
-
这不是将凭据传递给您的应用的安全方式。无论日志文件如何,任何被允许在机器上运行
ps aux的人都可以看到它们。 -
@f1sh 那么为什么这是 AWS 推荐的方式呢?你有什么建议?
-
我不知道 AWS。安全的方法是将凭据存储在配置文件中,然后让应用程序读取该文件。
-
没有人能像运行
ps aux一样读取文件吗? -
如果您保持适当的权限集(通常为 600)和文件的用户/组分配,则不会
标签: java amazon-web-services tomcat amazon-elastic-beanstalk apache-commons-logging