‫Uso i segreti di Docker per le mie password, ma
‫questo crea semplicemente un file RAM nel contenitore.
‫Se qualcuno ha violato il contenitore, potrebbe vedere il
‫file proprio come fa la mia applicazione.
‫Sì e no.
‫Grande. Continueremo a parlare. C'è un
‫modo migliore per farlo? Crittografare il contenuto del segreto?
‫Quindi decodifica all'interno dell'applicazione in un modo che un hacker non
‫è riuscito a capire.
‫La realtà qui
‫è che la tua applicazione deve avere il suo segreto da
‫qualche parte, e non saranno crittografati nella memoria, giusto.
‫Tutto quello che so che sta decrittografando roba crittografata,
‫la sta decodificando in memoria. Se un hacker
‫ha root nel tuo contenitore, sarà
‫in grado di ottenere quella roba.
‫Se sono abbastanza esperti, saranno in grado di
‫ottenere quella roba, giusto.
‫Il primo passo è non eseguire l'applicazione come
‫root nel contenitore.
‫Quindi, non possono scherzare con nulla al
‫di fuori dell'applicazione. Non possono eseguire altre utilità di sistema
‫nel contenitore che potrebbero essere in grado di leggere tutta la memoria, giusto.
‫La seconda cosa è che c'è davvero,
‫il modo più sicuro che penso che abbiamo visto è qualcosa
‫come vault e una volta le password in cui vengono
‫create, vengono utilizzate dalla tua app, quindi vengono gettate
‫via e non più bene. La realtà è che molte persone
‫non sono pronte per questo. Le app della maggior parte delle persone non possono gestirlo.
‫Sai, non puoi ruotare una chiave API di Twitter ogni cinque minuti
‫per ogni app che si avvia, giusto.
‫Roba del genere. La prossima cosa
‫migliore è impedire che quel file venga permanentemente
‫su disco.
‫Una sicurezza Kubernetes
‫e Docker, quelle ... scusate i segreti, i segreti di
‫Kubernetes e i segreti di Swarm sono alcuni dei modi
‫migliori che abbia mai visto trovare un modo
‫per archiviare le password su un file
‫falso nella RAM. Puoi impostare tali autorizzazioni in modo
‫che siano leggibili solo dalla tua app, giusto.
‫Quindi, se qualcuno entra in qualche modo con un utente diverso,
‫non che avresti necessariamente un utente
‫diverso nel contenitore, ma puoi bloccarli in modo che siano di sola
‫lettura, che siano leggibili solo dall'utente questa è la
‫tua app. Questo è il tipo di cose, giusto.
‫Quindi è proprio così.
‫L'unica cosa che ho visto meglio li conserva ancora in memoria,
‫li conserva ancora non crittografati.
‫Semplicemente non li memorizza localmente.
‫Quindi, devi usare un'API remota come
‫Vault, HashiCorp's Vault o qualche altro sistema che fornisca
‫password una tantum. Ma ancora una volta, queste cose dovrebbero essere
‫costruite su tutto il tuo sistema. Dovresti progettare il
‫tutto. E questo è un sacco di lavoro, giusto.
‫Considerando che, usando i segreti di Kubernetes e
‫Swarm, in genere puoi fare quel lavoro nello
‫stesso giorno, giusto. Puoi implementarlo per qualsiasi
‫app, anche se deve impostarle come variabili di ambiente perché le
‫applicazioni più vecchie richiedono elementi nelle variabili di ambiente.
‫Quindi, puoi averli in segreti e quindi, in fase
‫di esecuzione, avere quei segreti scaricati in
‫variabili d'ambiente, se necessario. Ma, direi il 99% delle
‫volte, i miei clienti di consulenza, hanno a che fare con applicazioni legacy.
‫Quando dico legacy, intendo davvero tutto prima dei container,
‫che è la maggior parte delle applicazioni, giusto.
‫Abbiamo trascorso 30 anni a creare applicazioni
‫senza container prima di averle.
‫Quindi, abbiamo un sacco di cose regolari.
‫Quindi, la maggior parte dei team sta solo cercando di mettere
‫le cose in contenitori e archiviarle crittografate su disco, giusto.
‫Se sono su disco, sono crittografati.
‫Kubernetes e Swarm possono farlo entrambi.
‫Penso che se stai usando i segreti, sei già
‫migliore del 99% delle persone che vedo, perché pochissime persone
‫usano l'orchestrazione e usano anche i segreti.
‫È un gruppo molto, molto piccolo, un gruppo di persone.
‫Quindi, sì, penso che tu sia abbastanza bravo lì.