2013-02-25 14 views
7

I file audio sono archiviati su Amazon S3 a cui si accede da un'app di riproduzione musicale basata sul Web e anche da app mobili. Anche gli utenti non registrati dovrebbero poter accedere alla musica. Tuttavia non voglio che la gente usi il link per scaricare il contenuto. Questo può essere realizzato in s3?Impedire il download diretto di file audio da amazon s3

Thank You

+3

Vediamo se ho capito: si dispone di una webapp che accede alla musica e corsi d'acqua ai vostri clienti (browser, applicazioni, ecc)? In tal caso, puoi rendere i contenuti privati ​​su S3 e fare in modo che la tua app acceda tramite le tue chiavi AWS/Secret. – Viccari

risposta

5

È possibile limitare l'accesso in base al referrer HTTP. Non è a prova di proiettile (Referrer può essere falsificato) ma fermerà i download casuali.

Si utilizza un criterio bucket per limitare i valori possibili per Referente.

C'è un esempio in questa pagina (scorrere verso il basso un po ') http://docs.aws.amazon.com/AmazonS3/latest/dev/AccessPolicyLanguage_UseCases_s3_a.html

Ecco il loro esempio:

{ 
    "Version":"2008-10-17", 
    "Id":"http referer policy example", 
    "Statement":[ 
    { 
     "Sid":"Allow get requests originated from www.example.com and example.com", 
     "Effect":"Allow", 
     "Principal":"*", 
     "Action":"s3:GetObject", 
     "Resource":"arn:aws:s3:::examplebucket/*", 
     "Condition":{ 
     "StringLike":{ 
      "aws:Referer":[ 
      "http://www.example.com/*", 
      "http://example.com/*" 
      ] 
     } 
     } 
    } 
    ] 
} 

Si potrebbe anche fare gli URL segnalati che scadono - che sarebbe impedire alla gente di collegamento al vostro contenuti da altro sito.

1

Uno scenario viene in mente:

Quando il lettore musicale app vuole giocare qualcosa, deve chiedere il vostro backend per l'URL al MP3. Il tuo back-end può produrre URL con il parametro "Expires" [1] impostato su 10 secondi in futuro.

In questo modo, l'URL restituito dal back-end è utilizzabile solo per 10 secondi, il che dovrebbe essere più che sufficiente per il lettore musicale per avviare il download da S3.

Ovviamente l'utente può scaricare il file se vede l'URL in una specie di sniffer HTTP nella finestra dei 10 secondi e avvia il download.

Ma non esiste un modo a prova di proiettile per proteggere l'utente dal mettere le mani sul contenuto a cui accede il dispositivo. Se il contenuto viene consegnato a un dispositivo, c'è sempre un modo per persone sufficientemente tecniche di metterlo in pratica.

p.s. Solo un heads-up, se il tuo lettore MP3 supporta la ricerca (in particolare la ricerca inviando un'altra richiesta di intervallo HTTP), dovresti recuperare un nuovo URL con il parametro "expires" aggiornato dal tuo back-end.

[1] http://s3.amazonaws.com/doc/s3-developer-guide/RESTAuthentication.html

Problemi correlati