Come impedire che un container docker venga attaccato da più utenti?

4

Quando si eseguono i contenitori docker è possibile elencare i contenitori in esecuzione utilizzando docker ps

Quindi puoi allegarli in base a docker attach <container id>

Il problema è che tutte le persone che possono allegare il contenitore in esecuzione contemporaneamente a te, e vedranno quello che stai facendo allo stesso tempo, che potrebbe essere bello per i corsi online, ma non molto bello per i lavori.

Come posso impedirlo?

    
posta aurelien 24.07.2018 - 15:48
fonte

2 risposte

6

Se un utente su un host Docker Engine dispone dei diritti per eseguire i comandi docker (tramite i privilegi sudo o l'appartenenza al gruppo docker) non è possibile (con il prodotto Docker di base) limitarli dal collegamento ai contenitori in esecuzione sull'host

Fornire in modo efficace l'accesso alla finestra mobile equivale a fornire root sull'host.

Quindi per impedirlo, la chiave è non lasciare che altri utenti abbiano i diritti per eseguire i comandi di finestra mobile su quell'host.

    
risposta data 24.07.2018 - 16:05
fonte
2

Comandi secondari Docker che utilizzano sudo

Una soluzione è fornire loro i comandi di finestra mobile selezionati utilizzando sudo e non fornire il comando docker attach o docker run .

Puoi limitarli a eseguire solo docker ps

Vedi la documentazione o la pagina man di sudo per come fornire solo i sottocomandi che vuoi consentire agli utenti. Fornire comunque l'accesso alla finestra mobile utilizzando sudo è comunque il metodo consigliato, invece di mettere subito gli utenti in un gruppo mobile.

Esempio:

Esegui visudo o crea un file sotto /etc/sudoers.d/<username> e crea una linea per ogni comando che devi consentire: (questo è un po 'approssimativo, in produzione suppongo che tu gestirai sudo config usando qualche strumento di gestione della configurazione come puppet , chef o ansible che farà questo per te una volta che scrivi il codice di configurazione)

<user_account> ALL=(root) NOPASSWD: /usr/bin/docker ps

Ulteriori dettagli:

Dettagli

Nota: ho avuto un caso d'uso in cui un utente bot automatizzato aveva bisogno solo del comando di estrazione docker, quindi ho limitato l'account per eseguire il comando docker solo tramite sudo. Questo approccio si assicura:

  • disponibilità (fornire ciò che è necessario)

  • principio del privilegio minimo

risposta data 15.10.2018 - 14:43
fonte

Leggi altre domande sui tag