Kubernetese Manifesti Linter
Lindi Kubernetes YAML-i manifeste klastri turvamise parimate tavade järgi, täielikult brauseris võrguühenduseta.
🔒 Töödeldud täielikult teie brauseris – midagi, mida siia sisestate, ei laadita kunagi üles.
Tulemus
Kubernetese manifeste vaadatakse tavaliselt tõmbepäringu käigus pilguga üle, mis tähendab, et tootmiskeskkonda lipsab ikka samu turvavigu: deployment, millel pole mälupiirangut, saab lõpuks OOM-killitud ja viib solme endaga kaasa; konteiner, mis jookseb rõõmsalt root-kasutajana, sest keegi ei määranud runAsNonRoot; või pod, mis on kinnitatud `:latest`-sildi külge, mis vaikselt muutub rullimise ajal. See linter püüab sellised probleemid kinni hetkel, kui sa manifesti siia kleebid, ilma et oleks vaja töötavat klastrit, kubectl-konteksti ega üldse mingeid autentimisandmeid.
Mootori sees on väike käsitsi kirjutatud YAML-i parser, mis on loodud spetsiaalselt selle realistliku YAML-i alamhulga jaoks, mida Kubernetese manifestid tegelikult kasutavad: `---` eraldatud dokumendid, taandreapõhised pesad, `võti: väärtus` ja pesastatud plokivastendused, `- `-loendi elemendid, sealhulgas kaartide loendid, jutumärkides ja ilma skalaarid, kommentaarid ning `|`/`>` plokiskalaarid mitmerealiste ConfigMap väärtuste või annotatsioonide jaoks. Välist YAML-i teeki ei kasutata — nii parser kui ka reeglimootor on tööriistaga kaasas ja käivad täielikult sinu brauseris.
Reeglite tabel on modelleeritud tuntud klastri turvamise juhiste põhjal — CIS Kubernetes Benchmark, kube-score ja Pod Security Standards „Restricted” profiil — ning kontrollib igat konteinerit puuduvate ressursipäringute/piirangute, root või privilegeeritud režiimis töötavate konteinerite, puuduvate elususe- ja käideldavuskontrollide suhtes pikaajaliste töökoormuste puhul (Deployment, StatefulSet, DaemonSet), hostPath-köidete, mis paljastavad hosti failisüsteemi, hostNetwork kasutuse ja mittekorratavate `:latest` või sildita konteineripiltide osas. Leiud on rühmitatud dokumendi ja konteineri kaupa, igaühel selge viga/hoiatus raskusaste, et saaksid eristada tõelist ohtu pelgalt parima tava soovitusest.
See töötab nii üksikute manifestide kui ka tervete mitme dokumendiga failidega, mis on otse kleebitud Helm-malli renderduse või `kustomize build` väljundist, mõistes Pod, Deployment, StatefulSet, DaemonSet, Job, ReplicaSet ja CronJob ressursse. Kuna kõik toimub lokaalselt, võid julgelt kleepida manifeste, mis sisaldavad sisemisi teenuste nimesid, tegelikke ressursimõõte või midagi muud, mida sa ei tahaks kolmanda osapoole API-le saata — kasulik kiireks eelkontrolliks enne commit'i, koodiülevaatuse abivahendiks või lihtsalt õppimiseks, kuidas „turvatud” tegelikult praktikas välja näeb.