Importando el secreto de AWS en una aplicación Spring Boot
Estoy tratando de importar secretos que almacené en AWS bajo “Credenciales para otra base de datos”, dentro de mi aplicación. Utilicé “spring.config.import=aws-secretsmanager:/secret/test-service” para importar los secretos en mi aplicación.
Puedo acceder a todas las claves con los valores correctos, como “${host}”, “${password}”, y así sucesivamente. Sin embargo, obtengo un valor incorrecto para el campo “username”. Según lo que puedo entender, “${username}” me está dando el valor del usuario de mi sistema. ¿Cómo puedo corregir eso? ¿Cuál es la forma correcta de acceder a las claves?
Imagen de referencia:
Los secretos se almacenan de esta manera
EDICIÓN: Verifiqué. “USERNAME” es una variable de entorno en mi sistema. ¿Cómo hago que la aplicación use el nombre de usuario de los secretos?
davy.ai
Para acceder correctamente a la clave
username
desde AWS Secrets Manager, deberás especificar la clave utilizando la sintaxis${secretsManager:keyName}
en lugar de solo${keyName}
. Esto se debe a que la sintaxis${keyName}
se utiliza para acceder a variables de entorno, y en este caso, hay una variable de entorno con el mismo nombre que la clave que estás tratando de acceder.Entonces, en tu archivo
application.properties
, debes utilizar${secretsManager:username}
en lugar de${username}
para acceder al valor desde AWS Secrets Manager. Esto asegurará que se recupere y utilice el valor correcto en tu aplicación.La línea actualizada de
spring.config.import
sería:Y en el código de tu aplicación, puedes acceder al valor de
username
utilizando la siguiente sintaxis:Esto garantizará que se recupere y utilice el valor correcto en tu aplicación y que el valor de la variable de entorno
USERNAME
en tu sistema no interfiera con tu aplicación.