我们在 Tomcat 上部署了一个 WAR 文件,数据库凭据是通过 JNDI 获取的。这个 WAR 现在必须移动到 AWS 云,并且要求数据库凭证必须存储在 AWS Secret Manager 中。我的问题是我可以继续使用 JNDI/Tomcat 和 Secret Manager 吗?我知道 AWS SM 有 API 和 SDK 来访问它,它能以某种方式与 JNDI/Tomcat 集成吗?我看到的所有帖子都提到直接从代码中使用 API/SDK,但我没有发现任何关于服务器集成的内容。从代码访问 AWS SM 真的是最好的方法吗?谢谢。 旁注 - 由于某种我不知道的原因,我们不能使用 BeanStalk,它只是 EC2 实例上的 Tomcat。
最佳答案
也许您可以使用 JDBC 驱动程序包装器:https://github.com/aws/aws-secretsmanager-jdbc .如果您正在使用连接池管理器,您可以按照 README 中的示例,将 JDBC 库替换为包装器库,并在配置中指定 secret 。然后包装器将检索 secret 并将其传递给真正的 JDBC 库。
如果您不使用连接池管理器,您仍然可以用包装器替换现有的 JDBC 驱动程序,但这需要一些代码修改。
通过使用包装器,您还可以打开数据库密码的自动轮换,因为包装器知道在密码更改后重新获取密码。
关于amazon-web-services - 可以使用 JNDI 从 Tomcat 访问 AWS Secret Manager 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59386005/