Respuesta

5

Sí y no. Como necesita proteger su clave secreta para AWS (los hackers podrían usarla para abusar de su cuenta), no puede autenticar las solicitudes en JS directamente.

Si bien podría crear una implementación en JS, sería inherentemente inseguro. Práctico para algunos usos internos, nunca podría ser implementado con seguridad (ya que eso expondría su clave secreta). Lo que podría hacer en su lugar es usar su servidor para autenticar las solicitudes a SimpleDB y dejar que JS realice la solicitud real a Amazon. Aunque es un poco indirecto, funcionaría.

El inconveniente es que tendría que hacer un montón de procesamiento en el lado del cliente. También es probable que obtenga más datos que los consumos/salidas de la aplicación, por lo que procesar los datos en el cliente en lugar de hacerlo en el servidor probablemente encuentre más latencia simplemente porque está transfiriendo más datos al usuario y procesándolo más lentamente.

Esperanza esto ayuda

+1

Ahora puede (principalmente) hacer este lado del cliente, de forma segura, sin revelar la clave secreta. Ver mi respuesta a continuación y mi respuesta relacionada http://stackoverflow.com/questions/4988367/anonymous-read-with-amazon-simpledb. Obtienes 99% de llamadas del lado del cliente con 1% restante con un componente pequeño y seguro del lado del servidor. – toolbear

2

Si no, ¿cómo es posible?

Seguridad. Se autentica en el DB con su cuenta de desarrollador. Amazon no conoce a sus usuarios finales (lo que necesitaría para autenticar el acceso directamente desde el navegador). Depende del código de la aplicación determinar qué usuarios finales pueden hacer y qué no.

Dicho esto, existe la aplicación de muestra Javascript Scratchpad for Amazon SimpleDB. Accede a SimpleDB directamente desde el navegador (debe escribir sus credenciales de AWS).

+0

Might couchdb es lo que estoy buscando? – JSNewbie

+0

Bueno, todavía debe configurar los permisos de acceso en algún lugar fuera del navegador (donde no se puede piratear). – Thilo

+0

Gracias, como de costumbre, todas las respuestas son buenas. – JSNewbie

1

SimeplDBAdmin es una interfaz basada en Javascript/PHP:

http://awsninja.com/2010/07/08/simpledbadmin-a-phpmyadmin-like-interface-for-amazon-simpledb/

El lado PHP es un script de relé [relay.php] que pasará las peticiones realizadas desde el Javascript cliente y enviarlos al servidor, toma la respuesta del servidor y la reformatea para el cliente. Esto es para sortear fácilmente los problemas de dominio cruzado con Javascript [si el cliente web había descargado la página web que contiene el código de JavaScript de www.example.com, solo permitirá que javascript se conecte de nuevo a www.example.com de forma predeterminada] .

Todo lo demás, incluida la firma de solicitudes, se realiza mediante el código JavaScript.

También tenga en cuenta que Amazon ha lanzado recientemente un nuevo servicio beta para permitirle configurar subcuentas bajo su cuenta de Amazon. La protección simpleDB es muy básica [activada o desactivada por cuenta], pero como proporciona una forma limitada de seguimiento de solicitudes, podría argumentarse que el uso de Javascript y el otorgar a cada usuario su ID de usuario OWN y la clave para solicitar la firma es MÁS seguro. Hacer que cada usuario use el mismo ID de usuario y certificado sería, por supuesto, inseguro.

0

Consulte this answer a la pregunta similar sobre permitir el acceso seguro, anónimo y de solo lectura a SimpleDB de clientes que no son de confianza: anonymous read with amazon simpledb.

Algunas variaciones de la respuesta:

  • no fijan la política de acceso de sólo lectura. Sin embargo, permite un control detallado, por lo que es posible que desee limitar el tipo de escrituras permitidas
  • no sea anónimo. El AWS docs on token based auth y el example apps muestran rutas paralelas: acceso anónimo o AWS no federado/acceso federado con sus credenciales pero sin exponer su clave secreta.
Cuestiones relacionadas