AWS secret manager Password Rotation Without Restarting Spri



要求

从Java代码(属性文件(到AWS SM.删除DB凭据

实现数据库凭据的自动旋转。

问题陈述

虽然我们可以从我们的应用程序中从AWS SM检索DB凭据,但在密码的自动轮换过程中,我们面临以下问题:

Java代码将如何识别AWS SM 轮换的DB密码

从AWS SM自动轮换密码后,应用程序的所有实例都应使用新的DB凭据进行更新。

建议的解决方案

解决方案1

每当轮换密码时,java应用程序将无法连接到数据库。

届时,我们将获得SQL连接异常(连接丢失例外(。

Java应用程序将捕获异常&然后添加一个机制再次从AWS SM.检索DB机密

使用更新的凭据设置新的Db连接。

步骤3&4将用于应用的所有实例

解决方案2

我们可以调用刷新方法,并将建立新的DB连接自动&避免SQL连接异常。

有没有办法避免任何数据库连接问题?我们可以使用aws SM 旋转数据库密码

是的,有一个AWS Secrets Manager JDBC库,它基本上是支持AWS Secret的通用JDBC驱动程序的包装器。

此包装程序尝试连接到数据库。如果捕获到身份验证异常,它将刷新机密以提供有效连接。

以下是配置spring-boot应用程序的两个步骤。

1-将依赖项添加到pom.xml

<dependency>
<groupId>com.amazonaws.secretsmanager</groupId>
<artifactId>aws-secretsmanager-jdbc</artifactId>
<version>1.0.7</version>
</dependency>

2-在您的应用程序上设置数据库连接。yaml

spring:
datasource:
url: jdbc-secretsmanager:mysql://database-host:3306/rotate_db
username: secret/rotation
driver-class-name: com.amazonaws.secretsmanager.sql.AWSSecretsManagerMySQLDriver
  • 用户名实际上是在AWS Secrets创建的秘密名称
  • 请确保使用正确的URL,在本例中,它是MySQL的URL

最新更新