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.
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:
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.
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.