es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  , , , ,

Answer

  1. Avatar for 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:

    spring.config.import=aws-secretsmanager:/secret/test-service
    

    Y en el código de tu aplicación, puedes acceder al valor de username utilizando la siguiente sintaxis:

    @Value("${secretsManager:username}")
    private String username;
    

    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.

Comments are closed.