Kubernetes è diventato uno standard nel software nativo del cloud per quanto riguarda i contenitori. Infatti, il sondaggio più recente della cloud Native Computing Foundation (CNCF) ha rilevato che l'utilizzo di Kubernetes in produzione è cresciuto fino al 78%. Tuttavia, come con qualsiasi tecnologia che diventa popolare in un breve lasso di tempo, c’è molta confusione su cosa sia Kubernetes e quali considerazioni sulla sicurezza derivano da Kubernetes e dalla containerizzazione. Caso in questione: nello stesso sondaggio del CNCF, il 40% degli intervistati ha menzionato la sicurezza come una sfida nell’uso/deployment dei container e il 38% ha indicato la complessità come una sfida.
Per gli ingegneri della sicurezza incaricati di rafforzare la distribuzione dei container, c’è sicuramente una curva di apprendimento da superare. Per aiutarti ad aggiornarti, daremo un'occhiata a cos'è Kubernetes, come funziona ed esploreremo alcuni concetti di base sulla sicurezza di Kubernetes.
Kubernetes è una piattaforma utilizzata per orchestrare e gestire carichi di lavoro in contenitori (es Contenitori Docker).
Sin dal suo rilascio iniziale nel 2014, Kubernetes, un progetto di laurea CNCF open source le cui radici risalgono al team di sviluppo di Google, è diventato uno degli strumenti più popolari nei circoli DevOps e cloud native.
Un prerequisito per comprendere Kubernetes è innanzitutto comprendere i contenitori. In poche parole, i contenitori sono pacchetti software leggeri che includono tutte le dipendenze necessarie per l'esecuzione di un'applicazione. I contenitori risolvono il problema di eseguire in modo affidabile l'applicazione in ambienti diversi. Poiché sono leggeri e portatili, i contenitori sono diventati sempre più popolari e sono vitali per lo sviluppo dei moderni microservizi e delle applicazioni web.
Sebbene l'utilizzo di un singolo contenitore non richieda molta gestione e orchestrazione, le applicazioni di grandi dimensioni devono essere in grado di scalare. I moderni team di sviluppo devono essere in grado di automatizzare e scalare il processo di deployment dei container. È qui che entrano in gioco gli strumenti di gestione dei carichi di lavoro containerizzati come Kubernetes. Kubernetes fornisce la gestione e l'orchestrazione mancanti.
La frase "gestione e orchestrazione" viene spesso utilizzata quando si parla di Kubernetes. Tuttavia, questo non ci dice molto sui dettagli. In termini semplici, ciò significa che Kubernetes consente il bilanciamento del carico, la gestione della configurazione, la configurazione delle risorse di storage, l'allocazione automatica delle risorse (ad es. CPU e RAM per contenitore) e l'aumento o la riduzione della distribuzione del contenitore.
Può esserci molta confusione sull'argomento Docker vs Kubernetes. Tuttavia, in realtà è abbastanza semplice:
Quest'ultimo punto è ciò che può portare a un po' di confusione. Docker offre uno strumento, Swarm, che fornisce funzionalità simili a Kubernetes. Tuttavia, Kubernetes è di gran lunga lo strumento di gestione e orchestrazione più popolare.
Oltre ai contenitori, ci sono altri concetti importanti da comprendere quando si inizia a utilizzare Kubernetes. Diamo un'occhiata ad alcuni termini chiave:
Kubernetes può essere utile in modo efficace ovunque possa essere utile un approccio Infrastructure-as-Code alla deployment dei container. Ciò significa che i team di sviluppo Agile e i team focalizzati sulle pratiche DevOps utilizzeranno spesso Kubernetes per automatizzare le pipeline di integrazione continua/distribuzione continua (CI/CD). Inoltre, Kubernetes può aiutare a scalare automaticamente l'applicazione nativa del cloud monitorando lo stato dei nodi e l'utilizzo delle risorse e scalando verso l'alto o verso il basso secondo necessità.
Naturalmente, sebbene Kubernetes aggiunga valore dal punto di vista dell’automazione e della scalabilità, aggiunge anche un nuovo vantaggio per i team di sicurezza. Come puoi assicurarti che le tue app e i tuoi servizi siano distribuiti in modo sicuro? Come sempre, questo inizia con la comprensione del tuo modello di minaccia e della tua propensione al rischio, ma ci sono alcune nozioni di base per aiutarti a iniziare.
È inoltre fondamentale disporre di un piano per la visibilità del contenitore e la scansione delle vulnerabilità per garantire che la risoluzione dei problemi avvenga rapidamente e che tu rimanga conforme a tutti gli standard pertinenti. Per iniziare con la scansione delle vulnerabilità dei contenitori e le valutazioni del comportamento di sicurezza, consigliamo di leggere Visibilità e conformità continue dei contenitori (PDF).
Ora che hai compreso come funziona Kubernetes ad alto livello, controllando e gestendo automaticamente la distribuzione dei contenitori, puoi eseguire i passaggi successivi per distribuire K8 in modo sicuro. Per un approfondimento sull'implementazione della sicurezza con container, Kubernetes e infrastruttura serverless, iscriviti per visualizzare il webinar gratuito How to Layer Security into Modern Cloud applicazione presentato dall'esperto Cloud Security Hillel Solow.