2012-10-31 15 views
7

Obsługuję statyczną stronę internetową przy użyciu wiadra Amazon S3. Wiem, że mogę ograniczyć dostęp do odczytu do niektórych "folderów" (naprawdę klawiszy, ponieważ S3 nie ma folderów), ale chciałbym ograniczyć dostęp poprzez rozszerzenie pliku.Jak mogę ograniczyć pliki w S3 na podstawie ich rozszerzenia?

Innymi słowy, chcę powiedzieć "daj wszystkim dostęp do odczytu dla dowolnego pliku w tym segmencie, o ile plik ten kończy się w htm/css/js/png"; czy to jest możliwe?

(Moim zmartwieniem jest, że przypadkowo prześlę plik .git lub coś podobnego, czego nie chcę pokazywać światu, ustawienie zasad bezpieczeństwa w celu uniemożliwienia wyświetlania takich plików wydaje się bezpieczniejsze niż ufać sobie, że nigdy przypadkowo nie załaduję niewłaściwego pliku).

+0

Czy naprawdę nikt nie ma wiedzy na temat S3 w Stack Overflow? A może coś jest nie tak z moim pytaniem ...? – machineghost

Odpowiedz

15

Tak, jest to możliwe. Możesz napisać Bucket Policy. Możesz użyć wyrażeń regularnych, aby określić, na które obiekty mają wpływ twoje zasady (examples).

Twój polityka będzie coś podobnego do:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "auniqueid", 
      "Effect": "Deny", 
      "Principal": { 
       "AWS": "*" 
      }, 
      "Action": "s3:GetObject", 
      "Resource": "arn:aws:s3:::bucket/*.jpg" 
     } 
    ] 
} 

Spowoduje to zablokowanie dostępu do wszystkich jpg aktach Buket bucket.

+0

Dziękuję za te linki, ale żaden z przykładów, które połączyłeś, nie pokazuje, jak ograniczyć rozszerzenie pliku (co było konkretnym pytaniem, na które próbowałem uzyskać odpowiedź). – machineghost

+0

@machineghost dodał przykład do mojej odpowiedzi. – lstern

+0

Niesamowite, dziękuję! – machineghost

Powiązane problemy