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.

Dónde almacenar el accessKey y secretKey para AWS Secrets Manager en Spring Boot.

Estoy tratando de hacer que mi aplicación sea segura, así que en lugar de almacenar todas mis credenciales de AWS IAM para diferentes usuarios de servicios, comencé a usar AWS Secrets Manager. La parte que me confunde es que, para obtener una conexión al gestor de secretos de AWS y recuperar todos los secretos de mis otras conexiones de servicio IAM, necesito una clave de acceso y una clave secreta. Almacenar estas en application.properties en la aplicación de una instancia EC2 parece estar funcionando al revés, ya que si alguien obtiene acceso a estas dos claves, puede obtener acceso a todos los secretos y luego el gestor de secretos realmente no proporciona ningún valor. ¿Cómo puedo crear una conexión al gestor de secretos sin almacenar las claves en absoluto en mi código? Gracias de antemano.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Hay varias formas en las que puedes crear una conexión a Secrets Manager sin almacenar la clave de acceso y la clave secreta en tu código:

    1. Usa roles IAM: AWS te permite asignar un rol IAM a una instancia de EC2. Este rol puede tener permisos para acceder a Secrets Manager. Cuando crees una conexión a Secrets Manager, utiliza el SDK de AWS para Java y especifica que deseas usar el proveedor de credenciales predeterminado. Esto buscará automáticamente las credenciales del rol IAM asociado con tu instancia de EC2 y las utilizará para la autenticación.
    2. Usa el perfil de instancia de EC2: Un perfil de instancia de EC2 es similar a un rol IAM, pero puede estar asociado directamente con una instancia de EC2. Puedes crear un perfil de instancia y otorgarle permisos para acceder a Secrets Manager, y luego asociarlo con tu instancia de EC2. Cuando crees una conexión a Secrets Manager, utiliza el SDK de AWS para Java y especifica que deseas usar el proveedor de credenciales predeterminado. Esto buscará automáticamente las credenciales del rol IAM asociado con tu perfil de instancia de EC2 y las utilizará para la autenticación.

    3. Usa AWS Lightweight CLI: Puedes crear una credencial de AWS CLI de corta duración y ejecutar AWS Lightweight CLI en tu instancia de EC2. Cuando crees una conexión a Secrets Manager, utiliza el SDK de AWS para Java y especifica que deseas usar el proveedor de credenciales de AWS CLI. Esto indicará al SDK que utilice las credenciales proporcionadas por AWS CLI.

    En general, el uso de roles IAM o perfiles de instancia de EC2 son las mejores opciones, ya que proporcionan una gestión automática de credenciales y minimizan el riesgo de fugas de credenciales.

Comments are closed.