Panoramica
KubeLinter è uno strumento di analisi statica open source, anche noto come lint o linter, che rileva la presenza di errori di programmazione e configurazione nei deployment Kubernetes. Questo strumento a riga di comando analizza automaticamente i file YAML e i grafici Helm confrontandoli con le configurazioni Kubernetes e le prassi di sicurezza più diffuse.
Perché scegliere KubeLinter?
La grande diffusione di Kubernetes (anche noto come K8s) è legata alle sue capacità di deployment, gestione e scalabilità delle applicazioni containerizzate. Meno note sono le capacità di protezione dei container. Le configurazioni di Kubernetes sono solitamente definite in file YAML, facilmente leggibili in chiaro anche se complessi da comprendere, che generano configurazioni valide su larga scala. La sola convalida statica dei file YAML complessi non è in grado di individuare con facilità errori e violazioni, il che può esporre il codice a problemi di sicurezza.
E la sicurezza è fondamentale.
Secondo il report di Red Hat sull'adozione, la sicurezza e i trend di mercato di Kubernetes per il 2021, oltre la metà degli intervistati ha affermato di aver ritardato il deployment delle applicazioni Kubernetes in produzione a causa dei timori legati alla sicurezza; nel 2020 il 94% ha sperimentato almeno un incidente di sicurezza riconducibile a Kubernetes. L'errore umano è tra le cause principali: le configurazioni inserite in modo non corretto contribuiscono a circa il 67% dei casi riferiti.
È qui che può entrare in gioco KubeLinter.
Lo strumento lint, creato da StackRox alla fine del 2020, poco prima dell'acquisizione da parte di Red Hat avvenuta all'inizio del 2021, è specificamente progettato per rilevare gli errori di sicurezza e migliorare la precisione della configurazione nei deployment Kubernetes all'inizio del processo di sviluppo. Lo strumento esegue controlli sul file di configurazione e può essere utilizzato con sistemi di integrazione continua (CI) per semplificare il processo di aggiornamento dei file YAML e dei grafici Helm, il tutto in concomitanza all'adozione delle pratiche DevSecOps.
Essendo uno strumento open source disponibile con licenza Apache 2.0, KubeLinter consente a tutti gli utenti della community open source di contribuire al progetto.
Risorse da Red Hat
Come funziona KubeLinter?
Per verificare che i cluster Kubernetes siano configurati correttamente e che gli errori di programmazione siano risolti prima del deployment, KubeLinter individua il percorso di un grafico ed esegue una serie di test per verificare che il grafico abbia il formato corretto e non presenti errori. Lo strumento invia messaggi di errore lint per ogni problema rilevato che può impedire la corretta installazione del grafico o un messaggio di avviso in caso di scostamento dalle best practice di sicurezza.
KubeLinter è stato progettato affinché sia di facile esecuzione. Viene distribuito completo di 40 controlli lint integrati per i più comuni errori di configurazione di K8s, ad esempio l'esecuzione di un container come utente, la mancata corrispondenza tra selettori e l'archiviazione di dati sensibili solo nei segreti. Lo strumento supporta la configurazione di controlli personalizzati e consente agli utenti di trattare le configurazioni come codice, permettendo loro di integrare la sicurezza nelle prime fasi del processo di sviluppo dell'applicazione.
Configurazione di KubeLinter
KubeLinter è estremamente configurabile. Gli utenti possono infatti creare, abilitare e disabilitare le proprie regole personalizzate con modifiche minime ai flussi di lavoro e con feedback immediati su errori di configurazione e violazioni della sicurezza.
È possibile aggiungere KubeLinter a qualsiasi strumento di integrazione e distribuzione continua (CI/CD), inclusi GitHub Action, Jenkins, CircleCI e Travis CI. Può controllare e identificare errori nelle configurazioni delle applicazioni in maniera automatica, facilitando quindi le attività di correzione degli sviluppatori, che possono automaticamente osservare i problemi durante le attività in produzione.
Poiché i controlli predefiniti di KubeLinter si incentrano sulla sicurezza, gli utenti devono scegliere manualmente se desiderano configurare Kubernetes in modalità non sicura.
Il download e l'installazione di KubeLinter richiedono pochi minuti. Sviluppato come unità binaria completa che utilizza il linguaggio di programmazione leggibile in chiaro Go, è paragonabile a kubectl, con cui condivide alcuni pacchetti.
Per installare KubeLinter, è possibile costruire l'interfaccia a riga di comando in locale utilizzando Go, utilizzare i container Docker preconfigurati, installarli mediante Homebrew, o creare in autonomia il codice sorgente. Dopo l'installazione, è sufficiente puntare lo strumento ai grafici Helm e ai file YALM di Kubernetes per ottenere immediatamente i risultati.
Trattandosi di uno strumento open source, l'avanzamento dello sviluppo potrà implicare modifiche agli elementi di KubeLinter, ad esempio ai formati dei file di configurazione, ai flag e all'uso dei comandi.
Il blog ufficiale di Red Hat
Leggi gli articoli del blog di Red Hat per scoprire novità e consigli utili sulle nostre tecnologie, e avere aggiornamenti sul nostro ecosistema di clienti, partner e community.