Disaccoppiamento credenziali container da script docker #18
Labels
No Label
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No Milestone
No project
No Assignees
3 Participants
Notifications
Due Date
No due date set.
Blocks
Reference: golem/morgan#18
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Nota: questa issue richiederà un bel po' di immaginazione da parte di chi non può (ancora) vedere i repository (privati) in questione.
Nonostante questo, la apro qui, così che tutti possano vedere e (spero presto) anche partecipare.
Stato attuale:
docker-compose.yml
versionati per i vari servizi del GOLEMProblema:
Possibili soluzione: disaccoppiare gli script di configurazione dai segreti.
Soluzione:
Ho buttato giù una bozza di questa nuova infrastruttura, e ho iniziato a ripulire un po' delle configurazioni in questione, generando nuovi segreti, così non c'è nemmeno bisogno di riscrivere la history del repo, che non piace mai a nessuno).
TODO list (al momento, doable solo da chi appartiene al gruppo
argilla
):Container con MySQL
gestionaledb
gitea
nextcloud
wiki
wordpress
Container con SSH
pubblici
build (beta)
Container con altri segreti
docker registry
- drone (beta)Butto lì altre possibilità che mi vengono in mente, sono solo idee a livello di brainstorming, non penso siano soluzioni migliori del semplice repository, aggiungendo un livello di complessità probabilmente inutile:
L'unico difetto dell'approccio con repository è che in teoria non sarebbe una B.P. tenere segreti su git, dal momento che una eventuale compromissione dà accesso ai segreti attuali e a quelli "pregressi", che potrebbe ad esempio servire per avere accesso a dei backup. Ma ovviamente bisogna essere pragmatici e tenere in considerazione qual'è il threat model a cui si è soggetti, le risorse che possono essere compromesse e la gravità delle conseguenze...
Per quanto riguarda i file concreti da usare per contenere i segreti ci sono varie possibilità:
env_file
per puntare al file/srv/secrets/fooservice/docker-compose.env
che contiene la variabile del segreto. NB: a differenza dei file .env le variabili contenute negli env_file vengono passate tal quali al container, non possono essere usate all'interno del docker-compose.yamlA mio avviso i docker secrets sono da preferire dove possibile (non tutti i container lo permettono), con fallback ad una delle soluzioni precedenti.
Esempio di utilizzo di docker secrets e env_file come ripiego dove non possibile:
Finito.
Ho cambiato tutte le credenziali esistenti.
Quando ci vediamo in officina, lo riguardiamo insieme, chiudiamo quest issue, e poi direi che il repository può essere pubblicato e esteso.
Messo in scheduling per il prossimo GOLEM internals (18 aprile) una ripassata su quanto fatto sui servizi di rete GOLEM, fra cui questo. Chiudo.