Pregunta

I tiene una ruta en mi config que dice que para una página, por ejemplo /secure, hay un inicio de sesión requerida (hecho a través de authlogic). Un before_filter en mi controlador se encarga de eso. Eso funciona bien el acceso, la página y sus recursos han restringido -. Través de la aplicación

El problema es que estamos usando Amazon S3 para el almacenamiento en esta aplicación (basado en refinerycms) desplegados en heroku. Tengo un cubo y trabaja muy bien.

Sin embargo, cualquier recurso insertado en la parte segura de la aplicación se puede acceder directamente a través del navegador. En otras palabras, la página /secure contiene elementos como archivos PDF. Si bien a través de la aplicación están asegurados los recursos, los archivos PDF son accesibles desde cualquier lugar de Internet (URL de ejemplo): http://s3.amazonaws.com/my_bucket/images/1234/the_file_which_should_be_secure.pdf

¿Puedo hacer el control de acceso de grano fino en S3? ¿Tengo que crear un nuevo cubo? Idealmente me gustaría establecer una bandera en mi recurso que hace que sea invisible en Internet -. No saben

Cualquier sugerencia bienvenida.

P.S. openid.org tiene un certificado SSL caducado, por lo que se necesita para crear una nueva cuenta vacía como pude no inicio de sesión

¿Fue útil?

Solución

La solución más simple y más fácil es sólo para nombrar sus activos S3 con nombres aleatorios y no fácilmente averiguables, y sólo exponer las direcciones URL secretas a las personas que deben tener acceso.

Así es como las fotos de Facebook y muchos otros sitios de trabajo (no hay privacidad o seguridad más allá de la oscuridad de los nombres de archivos individuales).

Otros consejos

Usted podría intentar lo que se dice en esta página:

http://thewebfellas.com/blog/2009/ 8/29 / proteger-su-clip-descargas

Los specficics están bajo la sección "No más de streaming, tiempo para un cambio de dirección".

Resumen:. S3 tiene cuatro políticas de acceso enlatados, mediante el uso de la política autenticado-lectura S3 proporciona una manera de generar una URL autenticado para el contenido privado que sólo funciona durante un período determinado de tiempo

En realidad no he hecho esto, así que por favor, hágamelo saber si funciona para usted. : -)

Si utiliza un clip, se puede restringir el acceso a los objetos almacenados en Amazon S3 expirando url. (Si no te importa que aprovechará el vencimiento url)

Esta es la Wiki de thoughtbot / clip en GitHub

https: // github. com / thoughtbot / clip / wiki / Restringir el acceso-a-objetos almacenados-en-Amazonas-S3

Además, hay algunos enlaces útiles en la parte inferior de esa página, que es posible que no se quiere perder.

Tal vez estoy confundido en cuanto a lo que usted está tratando de lograr, pero S3 tiene permisos de acceso que requieren una clave de cifrado para estar en el URL que se proporcionen al usuario. Cuando se utiliza la gema AWS-s3, esta opción está activada por defecto. Por lo tanto, no debería ser capaz de acceder a los archivos a menos que el usuario está usando el enlace con la clave de cifrado incrustado en él. Esto requeriría que asegurarse de que el archivo se establece en el acceso autorizado.

Más información se puede encontrar http://amazon.rubyforge.org/ sobre la gema. Busque la documentación relacionada con el control de acceso (creo "authenticated_read" es lo que quiere).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top