2011-10-06 19 views
20

Desidero offrire gli URL presegnati ai miei bucket s3 con una data di scadenza. L'SDK .NET ben genera questi URL, ma a guardarli mi fa preoccupare un po ':Quanto sono sicuri le chiavi di accesso di Amazon AWS?

https://s3.amazonaws.com/upload_youtipit/myfile?AWSAccessKeyId=**MYACCESSKEY**&Expires=1317924047&response-content-disposition=attachment;filename=feedback.jpg&response-content-type=image/jpeg&Signature=podKJSrNeFel6%2B0aOneb342H5GA%3D 

Perché ha bisogno di mettere il mio AWSAccessKey (pubblico) nell'URL? Non dovrebbe essere tenuto un po 'più confidenziale? So che non è il segreto, ma non mi sento ancora a mio agio esponendolo in pubblico ..

Quanto è probabile che qualcuno che ha la mia chiave pubblica possa indovinare/bruteforce la mia chiave privata?

risposta

29

L'Access Key ID non è un segreto e non ha bisogno di protezione.

In effetti, è possibile fornire URL in scadenza a estranei casuali se si desidera che accedano a un oggetto S3. Possono vedere la chiave di accesso in quell'URL, ma non possono fare nulla che non hai autorizzato.

di riferimento: http://docs.amazonwebservices.com/AWSSecurityCredentials/1.0/AboutAWSCredentials.html#AccessKeys

+0

grazie. Nondimeno non mi sento di conforto condividendolo. Se qualcuno ha la parte pubblica la probabilità che riesca a capire la parte privata sale molto. Con le chiavi, quindi, può accedere al mio ambiente aws completo. Solo perché volevo condividere alcuni file .. – AyKarsi

+3

No, l'ID della chiave di accesso pubblica non conferisce all'utente malintenzionato alcun vantaggio significativo nel determinare la chiave di accesso segreta, a meno che, suppongo, l'utente malintenzionato abbia già un elenco di chiavi di accesso segrete valide ed è solo chiedendo quale ID della chiave di accesso sono disponibili. –

+2

Spenditi per proteggere la tua chiave di accesso segreta. Nascondere l'ID chiave di accesso non segreto riduce la funzionalità AWS che è possibile utilizzare. –

2

la chiave privata è un calcolo unidirezionale di alcuni parametri sconosciuti, potrebbe non utilizzare nemmeno la chiave pubblica stessa come parte dell'algoritmo. conoscere il tuo AWSAccessKeyId non dovrebbe avere alcun effetto sulla complessità della brute-forzare la tua chiave privata.

https assicura che l'unica cosa che qualcuno può dire sulla tua connessione (se stanno annusando il traffico di rete) è che è tra il tuo IP e l'IP di s3.amazonaws.com sulla porta 443. anche il fatto che ti stai connettendo ad amazon dovrebbe essere dedotto da gamme di indirizzi ip noti a loro assegnati (che è probabilmente comunque noto)

l'unico modo per ottenere AWSAccessKeyId nella barra degli indirizzi è vederlo fisicamente sullo schermo, l'installazione di alcuni key-logger o trojan sul tuo computer o il certificato SSL di MIM (man in the middleing) di Amazon, che è estremamente difficile anche se qualcuno ha accesso ai nodi di rete upstream necessari.

leon

+0

non è l'intero URL include parametri visibili durante lo sniffing? Quando uso Fiddler, che è la mia comprensione di uno strumento di sniffing, vedo l'url completo .. – AyKarsi

+0

Non sono sicuro se stai utilizzando le funzioni di decrittografia HTTPS di Fiddler (http://www.fiddler2.com/fiddler/help/httpsdecryption.asp) che eseguono il MIM che ho descritto localmente (e ti obbligano a ignorare gli avvisi del cert) . questo non sarà possibile al di fuori della tua stessa macchina. Ho appena testato il violinista con FF e cercando https://encrypted.google.com, non succede nulla. solo il protocollo HTTP viene mostrato quando viene utilizzato. – leeoniya

10

io tipo di accordo con la risposta accettata, ma c'è un modo semplice per fare quello che vuoi.

È necessario utilizzare Amazon IAM per creare un utente in grado di leggere solo i file (non è importante, ma devono almeno essere letti solo nel secchio con cui si ha a che fare). Quindi utilizza QUESTI utenti AWS ID e segreti per generare un collegamento per il download.

Questo non apre tutto il tuo secchio, in quanto per vedere l'intero bucket la persona ha bisogno dell'AWSID di questo utente "lettore" IAM, oltre alla loro chiave segreta. Hai ancora bisogno di costruire URL limitati nel tempo.

È possibile utilizzare la console IAM per creare un utente simile in pochi minuti. Hai solo una possibilità di ottenere la chiave segreta - nel momento in cui fai l'utente (o se ruoti le sue chiavi).

Che dovrebbe farlo. Questo AWSID non ha accesso a nulla e non è collegato a te.

In generale, Amazon ora consiglia che l'AWSID principale non venga utilizzato "per nulla". Si creano utenti con autorizzazioni in IAM, quindi si utilizzano quei codici. Ciò consente molta flessibilità di sicurezza. Puoi disattivare il tuo utente di sola lettura con una semplice azione nella console IAM.

Problemi correlati