2013-06-19 15 views
6

Mam zamiar przekierować użytkowników do podpisanych adresów URL wrażliwych zasobów przechowywanych w S3. Są generowane po sprawdzeniu praw użytkownika i mają agresywne limity czasu (30 sekund). Martwię się jednak, czy niektóre złośliwe programy, które są obecne na komputerze mojego klienta, mogłyby przechwycić adres URL i nadal pobierać plik w terminie wygaśnięcia adresu URL. Czy jestem po prostu zbyt paranoidalny?Jak bezpieczne są oznaczone adresy URL w AWS S3?

Jeśli odpowiedź została już udzielona, ​​proszę wskazać mi kierunek. Doceniam Twoją pomoc.

Odpowiedz

2

Znalazłem to - http://docs.aws.amazon.com/AmazonS3/latest/dev/AuthUsingTempFederationTokenRuby.html i spróbowałem. Wydaje się działać. Parafrazując kod z doc -

# Start a session with restricted permissions. 
sts = AWS::STS.new() 
policy = AWS::STS::Policy.new 
policy.allow(
    :actions => ["s3:ListBucket"], 
    :resources => "arn:aws:s3:::#{bucket_name}" 
).condition.add(:like, :referer, "domain.com") 

session = sts.new_federated_session(
    'User1', 
    :policy => policy, 
    :duration => 2*60*60) 

więc polityka, że ​​tworzymy pochodzenia może mieć adres IP, z którego pliki do pobrania klienta i/lub może być AWS: pole odesłania ustawiona na domenie mojej aplikacji. Myślę, że zapewnia to przynajmniej jeden poziom utrudnień dla twojego zasobu. Rozumiem, adres IP lub referer można łatwo sfałszować. Ale to lepsze niż brak jakiejkolwiek ochrony.

4

Każdy, kto uzyska adres URL przed upływem terminu, może użyć go do uzyskania dostępu do danych. S3 obsługuje politykę kubełkowe, które ograniczają adresy IP, które mają dostęp do danych:

http://docs.aws.amazon.com/AmazonS3/latest/dev/AccessPolicyLanguage_UseCases_s3_a.html

Jednak w tym przypadku są zaniepokojeni złośliwego oprogramowania na komputerze klienckim. To by nie pomogło. Czy zastanawiałeś się nad zaszyfrowaniem danych tak, aby tylko proces klienta mógł je odszyfrować?

Wciąż jesteś podatny na niepewne/niedbałe klienty, które w jakiś sposób przeciekają dane.

+0

Absolutnie to by nie pomogło. Dzięki za odpowiedź. –

+0

Zasady dotyczące zasobnika nie będą działać, ale czy znasz sposób, w jaki tymczasowy acl może zostać zawarty w adresie URL? thx- –

+0

Nie. Czy mimo to można zindeksować żądanie i vend w istocie jednorazowy URL? – sethwm