Jeden scenariusz przychodzi do głowy:
Kiedy aplikacja odtwarzacz muzyczny chce grać coś, to musi zwrócić się do backendu dla URL do MP3. Twój backend może tworzyć URL-e z parametrem "Expires" [1] ustawionym na 10 sekund w przyszłości.
W ten sposób adres URL zwrócony przez twój backend będzie działał tylko przez 10 sekund, co powinno wystarczyć, aby odtwarzacz muzyki zainicjował pobieranie z S3.
Oczywiście użytkownik może pobrać plik, jeśli widzi adres URL w jakimś rodzaju sniffera HTTP w 10-sekundowym oknie i rozpoczyna pobieranie.
Ale nie ma kuloodpornego sposobu ochrony użytkownika przed dostępem jego/jej do treści, do których ma dostęp jego urządzenie. Jeśli treść jest dostarczana do urządzenia, zawsze znajdzie się sposób, aby wystarczająco techniczni ludzie mogli go zdobyć.
p.s. Po prostu heads-up, jeśli twój odtwarzacz MP3 obsługuje wyszukiwanie (szczególnie szukając wysyłając inne zapytanie o zakres HTTP), musisz ponownie uzyskać nowy adres URL z odświeżonym parametrem "wygasa" z backendu.
[1] http://s3.amazonaws.com/doc/s3-developer-guide/RESTAuthentication.html
Pozwól mi zobaczyć, czy mam to: masz webapp który uzyskuje dostęp do muzyki i strumieni je do swoich klientów (przeglądarki, aplikacje, itp)? Jeśli tak, możesz ustawić zawartość jako prywatną na S3 i umożliwić jej dostęp do aplikacji za pomocą kluczy AWS/Secret. – Viccari