amazon-web-services - 可以使用 JNDI 从 Tomcat 访问 AWS Secret Manager 吗?

标签 amazon-web-services tomcat passwords jndi aws-secrets-manager

我们在 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/

相关文章:

python - 如何在 AWS Glue pyspark 脚本中合并两个节点

amazon-web-services - 为什么我应该在AWS的ElastiCache上使用简单队列服务(SQS)

url-rewriting - 如何在 Apache-Tomcat Web 应用程序中获取浏览器 URL?

php - 我怎样才能让记住我更安全

javascript - Node.js bcrypt compare 为正确的密码返回 false

security - 腌制和储存盐的最佳方法是什么?

node.js - API 网关 - ALB : Hostname/IP doesn't match certificate's altnames

javascript - AWS S3 Javascript SDK 重新发送请求失败

windows - 为什么有些网络 API 能够接受远程连接,而有些则不能?

tomcat - 具有两个 Tomcat 实例的 Apache 2 HTTPS 反向代理?