2009-04-19 37 views
10

Intentando comprender S3 ... ¿Cómo se limita el acceso a un archivo que se carga en S3? Por ejemplo, desde una aplicación web, cada usuario tiene archivos que pueden cargar, pero ¿cómo se limita el acceso para que solo ese usuario tenga acceso a ese archivo? Parece que la autenticación de la cadena de consulta requiere una fecha de vencimiento y eso no funcionará para mí, ¿hay alguna otra manera de hacerlo?Permisos de Amazon S3

Respuesta

1

Usted tendrá que construir toda la lógica de acceso a S3 en sus aplicaciones

14

Hay varias maneras de controlar el acceso a los objetos S3:

  1. utilizar la cadena de autenticación consulta - pero a medida que señaló que esto requiere una fecha de vencimiento. Podrías llegar lejos en el futuro, que ha sido lo suficientemente bueno para la mayoría de las cosas que he hecho.

  2. Utilice S3 ACLS, pero esto requiere que el usuario tenga una cuenta de AWS y se autentique con AWS para acceder al objeto S3. Esto probablemente no es lo que estás buscando.

  3. Proxy el acceso al objeto S3 a través de su aplicación, que implementa su lógica de control de acceso. Esto traerá todo el ancho de banda a través de su caja.

  4. Puede configurar una instancia de EC2 con su lógica de proxy - esto mantiene el ancho de banda más cerca de S3 y puede reducir la latencia en ciertas situaciones. La diferencia entre esto y el # 3 podría ser mínima, pero depende de tu situación particular.

8
  1. que el usuario alcance su servidor
  2. ha configurado el servidor de una autenticación de cadena de consulta con un corto de expiración (minutos, horas?)
  3. que el servidor de redirigir a # 2
0

He estado lidiando con esto también. Don, que escribió la clase S3 PHP que estoy usando, señaló que puedes usar directorios dentro de los segmentos. Entonces puedes poner tu archivo en un directorio con una cadena aleatoria y luego redirigir a eso. mybucket.amazon.net/wef49kfe4j409jf4f4f9jdfd/myfile.zip Aunque no es para nada seguro, puede controlar el acceso cambiando los permisos o creando y eliminando (mantenga el original de forma segura en un contenedor diferente) según sea necesario.