2009-04-19 26 views
10

Próba zrozumienia S3 ... Jak ograniczyć dostęp do pliku przesłanego do S3? Na przykład z aplikacji internetowej każdy użytkownik ma pliki, które może przesłać, ale jak ograniczyć dostęp, aby tylko ten użytkownik miał dostęp do tego pliku? Wygląda na to, że uwierzytelnianie ciągu zapytań wymaga daty wygaśnięcia, a to nie zadziała dla mnie, czy jest inny sposób na zrobienie tego?Uprawnienia Amazon S3

Odpowiedz

1

Trzeba będzie zbudować całą logikę dostępu do S3 w aplikacjach

14

Istnieją różne sposoby, aby kontrolować dostęp do obiektów S3:

  1. użyć zapytania strun auth - ale jak ty zauważyć, że to wymaga daty wygaśnięcia. Możesz zrobić to daleko w przyszłości, co jest wystarczające dla większości rzeczy, które zrobiłem.

  2. Skorzystaj z ACLS S3 - ale wymaga to posiadania konta AWS i uwierzytelniania za pomocą AWS w celu uzyskania dostępu do obiektu S3. To prawdopodobnie nie jest to, czego szukasz.

  3. Pośredniczysz dostępem do obiektu S3 za pośrednictwem aplikacji, która implementuje logikę kontroli dostępu. Spowoduje to przeniesienie całej przepustowości przez twoje pudełko.

  4. Możesz ustawić instancję EC2 za pomocą swojej logiki proxy - dzięki temu przepustowość będzie zbliżać się do S3 i może zmniejszyć opóźnienie w określonych sytuacjach. Różnica między tym a # 3 może być minimalna, ale zależy od twojej konkretnej sytuacji.

8
  1. Czy użytkownik hit serwer
  2. Czy serwer skonfigurować uwierzytelnianie query string z krótkim upływie (minuty, godziny?)
  3. Czy Twój serwer przekierowuje do # 2
0

Ja też się tym zajmowałem. Don, który napisał klasę S3 PHP, której używam, zwrócił uwagę, że możesz używać bibliotek wewnątrz wiader. Możesz więc umieścić plik w katalogu z losowym ciągiem, a następnie przekierować do niego. mybucket.amazon.net/wef49kfe4j409jf4f4f9jdfd/myfile.zip Chociaż nie jest wcale bezpieczny, możesz kontrolować do niego dostęp, zmieniając uprawnienia lub tworząc i usuwając je (zachowując oryginał bezpiecznie w innym pojemniku), jeśli to konieczne.