Kubernetes manifestu linteris
Pārbaudiet Kubernetes YAML manifestus pret klastara drošības labāko praksi, pilnībā bezsaistē jūsu pārlūkā.
🔒 Pilnībā apstrādāts jūsu pārlūkprogrammā — nekas, ko jūs šeit ievadāt, nekad netiek augšupielādēts.
Rezultāts
Kubernetes manifesti parasti tiek pārskatīti ar aci pull request'ā, kas nozīmē, ka tās pašas dažas drošības kļūdas turpina nonākt produkcijā: Deployment bez atmiņas ierobežojuma, kas galu galā tiek OOM-killed un paņem līdzi mezglu, konteiners, kas laimīgi darbojas kā root, jo neviens nav iestatījis runAsNonRoot, vai Pod piesiets pie attēla taga kā `:latest`, kas klusi mainās izvēršanas laikā. Šis linteris uztver šāda veida problēmas brīdī, kad ielīmējat manifestu, bez nepieciešamības pēc darbināma klastara, kubectl konteksta vai jebkādiem piekļuves datiem.
Zem pārsega tas ietver nelielu pašu rakstītu YAML parsētāju, kas rakstīts tieši tai reālistiskajai YAML apakškopai, ko Kubernetes manifesti faktiski izmanto: ar `---` atdalīti dokumenti, atkāpēs balstīta ligzdošana, `key: value` un ligzdoti bloka kartējumi, `- ` secības vienumi, tostarp karšu saraksti, citēti un necitēti skalāri, komentāri un `|`/`>` bloka skalāri tādām lietām kā vairākrindu ConfigMap vērtības vai anotācijas. Nav iesaistīta ārēja YAML bibliotēka — gan parsētājs, gan noteikumu dzinējs ir iekļauti rīkā un darbojas pilnībā jūsu pārlūkā.
Noteikumu tabula ir veidota pēc labi zināmām klastara drošības vadlīnijām — CIS Kubernetes Benchmark, kube-score un Pod Security Standards "Restricted" profila — un pārbauda katru konteineru attiecībā uz trūkstošiem resursu pieprasījumiem/ierobežojumiem, konteineriem, kas var darboties kā root vai priviliģētā režīmā, trūkstošām liveness un readiness zondēm ilgstošām darba slodzēm (Deployments, StatefulSets, DaemonSets), hostPath sējuma montāžām, kas pakļauj resursdatora failu sistēmu, hostNetwork lietojumu un neatkārtojamiem `:latest` vai netagotiem konteineru attēliem. Atklājumi ir grupēti pēc dokumenta un konteinera, ar skaidru kļūdas/brīdinājuma smaguma pakāpi katram, lai jūs varētu atšķirt, kas patiešām ir riskants no tā, kas ir tikai labākās prakses mudinājums.
Tas darbojas ar atsevišķiem manifestiem vai veseliem vairāku dokumentu failiem, kas ielīmēti tieši no Helm veidnes renderēšanas vai `kustomize build` izvades, saprotot Pod, Deployment, StatefulSet, DaemonSet, Job, ReplicaSet un CronJob resursus. Tā kā viss darbojas lokāli, ir droši ielīmēt manifestus, kas satur iekšējos servisu nosaukumus, reālus resursu izmērus vai jebko citu, ko jūs nevēlaties sūtīt uz trešo pušu API — noderīgi ātrai pirmskomita veselības pārbaudei, koda pārskatīšanas palīgam vai vienkārši, lai uzzinātu, kā "drošs" patiesībā izskatās praksē.