2016-04-01 17 views
11

Sono in esecuzione docker-container su Amazon EC2. Attualmente ho aggiunto le credenziali AWS al file Docker. Potresti per favore farmi sapere il modo migliore per farlo?Qual è il modo migliore per passare le credenziali AWS al contenitore Docker?

+0

Esistono numerosi articoli online che discutono i meccanismi per il passaggio delle credenziali di sicurezza nei contenitori Docker. Che cosa hai visto finora? – larsks

+0

Grazie a @larsks - ottimo commento sulla prima cosa che compare su google per questo argomento – ferr

+0

@ferr Non posso dire se stai facendo il faceto o no, ma non stavo commentando un particolare articolo o risultato di ricerca . Il tema dei segreti e Docker è in realtà uno che è stato esplorato da molte persone in modo dettagliato. – larsks

risposta

29

Il modo migliore è utilizzare il ruolo IAM e non occuparsi affatto delle credenziali. (vedi http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html)

Le credenziali possono essere recuperate da http://169.254.169.254..... Poiché questo è un indirizzo IP privato, potrebbe essere accessibile solo da istanze EC2.

Tutte le moderne librerie di client AWS "sanno" come recuperare, aggiornare e utilizzare le credenziali da lì. Quindi nella maggior parte dei casi non hai nemmeno bisogno di saperlo. Basta eseguire ec2 con il ruolo IAM corretto e sei a posto.

Come opzione è possibile passare alla fase di esecuzione come variabili d'ambiente (cioè docker run -e AWS_ACCESS_KEY_ID=xyz -e AWS_SECRET_ACCESS_KEY=aaa myimage)

È possibile accedere a queste variabili di ambiente eseguendo printenv al terminal.

+4

C'è un buon modo per farlo durante lo sviluppo/test locale che non compromette la sicurezza nella produzione? Mi piacerebbe assicurarmi che un'immagine funzioni senza distribuirla completamente. – honktronic

+1

un'alternativa che ho postato con variabili d'ambiente funziona bene in ambiente dev/local. – Vor

+1

Mi chiedo se si tratta di un errore di battitura, ma devo inserire "AWS_SECRET_ACCESS_KEY", non "AWS_SECRET_KEY", comunque la tua risposta è stata molto utile. Grazie. – Akavall

Problemi correlati