Come fornire in modo sicuro certificati SSL a un'app mobile

22

Qual è il modo più sicuro per fornire certificati SSL (per HTTPS) a un'applicazione Docker?

Gli approcci che ho considerato:

  1. L'ambiente

    È normale (ma ovviamente non è obbligatorio) utilizzare l'approccio 12factor con le app Docker, che suggerirebbe variabili d'ambiente, che sono considerato sicuro , ma le catene di certificati possono essere un po 'lunghe e poco maneggevoli per le variabili di ambiente (non che si tratti di un interruttore completo).

  2. Immagine privata

    Posso anche creare un'immagine Docker privata personalizzata, ma se non sto usando un repository Docker privato (e non lo sono - sto usando Docker Hub al momento), ciò significa fidarsi di almeno un altro festeggia con il mio segreto Se uso build automatizzati, significa fidarsi di un'altra parte (ad es. GitHub).

  3. Un volume montato

    Questo sembra meno faticoso del passare lunghe variabili d'ambiente che devono essere elaborate. Ma fino a questo punto, non ho avuto alcun bisogno di un volume locale, e mi sembra un po 'sfortunato se questa è l'unica cosa che mi richiede di usarne una. Ma forse questo è il prezzo da pagare per la sicurezza?

Da un punto di vista della sicurezza, qual è l'opzione migliore? O ci sono pro e contro di questi approcci che non ho considerato?

Per riferimento, la mia immagine Docker corrente è ospitata su Docker Hub, creato con una build automatizzata da GitHub, ei contenitori sono in esecuzione su Tutum. Attualmente i miei repository Docker Hub e GitHub sono privati, ma spero di renderli pubblici più tardi, quando il progetto è un po 'più maturo. Anche se mi auguro una risposta abbastanza generale da applicare più ampiamente rispetto a questa configurazione specifica.

    
posta Flimzy 16.08.2015 - 21:29
fonte

2 risposte

7

Una sfida con l'approccio variabile di ambiente è che sono condivisi con qualsiasi contenitore collegato (maggiori informazioni qui ), che può limitare l'uso di tale approccio in alcune configurazioni.

Le immagini private come dici tu sono un problema poiché stai condividendo la chiave con un numero di parti e questo potrebbe anche influire sulla tua capacità di utilizzare altri servizi correlati che avrebbero bisogno di accedere ai repository github o docker (ad esempio Jenkins )

Questo lascia la soluzione di volume montato, che sembra l'approccio migliore dal punto di vista della sicurezza. Limita la distribuzione necessaria all'host di docker, che nella maggior parte dei casi è meno un'esposizione rispetto al collocamento con terze parti o potenzialmente all'esposizione ad altri contenitori collegati.

    
risposta data 16.08.2015 - 23:21
fonte
4

Se qualcuno incontra questo argomento, nota che una soluzione più recente potrebbe essere l'uso dei segreti di Docker: link

Abilita i servizi di Docker Swarm per trasmettere in modo sicuro informazioni come password, certificati SSL, ecc. in contenitori.

    
risposta data 08.07.2017 - 00:21
fonte

Leggi altre domande sui tag