【问题标题】:Tomcat on elastic beanstak: How to change server.xml on elastic beanstalk to disable logging of command line arguments?弹性 beantalk 上的 Tomcat:如何更改弹性 beantalk 上的 server.xml 以禁用命令行参数的日志记录?
【发布时间】: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


【解决方案1】:

想到的另一个选择是使用 Java 配置运行 Elastic beanstalk 并使用 Spring Boot 应用程序(或其他嵌入式 Tomcat 部署),而不是使用 Tomcat 配置和战争。这使您可以完全控制您的应用引导程序。

【讨论】:

    猜你喜欢
    • 2020-10-05
    • 1970-01-01
    • 2020-11-01
    • 2016-10-27
    • 2015-05-22
    • 2014-01-26
    • 2015-02-07
    • 2016-04-23
    • 2017-08-21
    相关资源
    最近更新 更多