Carga directa de archivos de Amazon S3 desde el navegador del cliente: divulgación de clave privada

Estoy implementando una carga directa de archivos desde la máquina cliente a Amazon S3 a través de la API REST utilizando solo JavaScript, sin ningún código del lado del servidor. Todo funciona bien pero una cosa me preocupa ...

Cuando envío una solicitud a la API REST de Amazon S3, debo firmar la solicitud y colocar una firma enAuthentication encabezamiento. Para crear una firma, debo usar mi clave secreta. Pero todas las cosas suceden en el lado del cliente, por lo tanto, la clave secreta se puede revelar fácilmente desde la fuente de la página (incluso si ofusco / cifro mis fuentes).

¿Cómo puedo manejar esto? ¿Y es un problema en absoluto? ¿Tal vez pueda limitar el uso de una clave privada específica solo a las llamadas de la API REST desde un origen CORS específico y solo a los métodos PUT y POST o tal vez a la clave de enlace solo a S3 y un grupo específico? Puede haber otros métodos de autenticación?

La solución "sin servidor" es ideal, pero puedo considerar involucrar algún procesamiento en el servidor, excluyendo la carga de un archivo a mi servidor y luego enviarlo a S3.

Respuestas a la pregunta(9)

Su respuesta a la pregunta