
Helm — Kubernetesi paketihaldur, midagi sarnast apt-get Ubuntu jaoks. Selles märkuses vaatame eelmist versiooni helm (v2) koos vaikimisi installitud tiller teenusega, mille kaudu pääseme klastrisse.
Valmistame klastrit ette, selleks käivitame käsu:
kubectl run --rm --restart=Never -it --image=madhuakula/k8s-goat-helm-tiller -- bash![]()
Demonstreerimine
- Kui midagi lisaks ei seadista, käivitab helm v2 tiller teenuse, millel on RBAC ja täielikud administraatori õigused klastrile.
- Pärast installimist namespace'is
kube-systemilmubtiller-deploy, avaneb ka port 44134, mis on seotud 0.0.0.0. Seda saab kontrollida telneti abil.
$ telnet tiller-deploy.kube-system 44134
- Nüüd saab ühendust võtta tiller teenusega. Kasutame helm binaarset faili tehingute tegemiseks tiller teenusega:
$ helm --host tiller-deploy.kube-system:44134 version![]()
- Proovime hankida Kubernetesi klastri saladusi namespace'ist
kube-system:
$ kubectl get secrets -n kube-system![]()
- Nüüd saame luua oma chart'i, kus loome administraatori õigustega rolli ja määrame selle rolli vaikimisi teenusekontole. Kasutades selle teenusekonto tokenit, saime täieliku ligipääsu meie klastrisse.
$ helm --host tiller-deploy.kube-system:44134 install /pwnchart
- Nüüd, kui
pwnchartlahti, teenuse vaikimisi konto omab täisadministraatori õigusi. Kontrollime uuesti saladuste saamistkube-system
kubectl get secrets -n kube-system
Selle skripti edukus sõltub sellest, kuidas tiller on paigaldatud, mõnikord paigaldavad administraatorid selle eraldi namespace'i koos teiste õigustega. Helm 3 ei ole sellistele haavatavustele vastuvõtlik, kuna see ei sisalda tillerit.
Tõlkija märkus: võrgupoliitikate kasutamine klasteris liikluse filtreerimiseks aitab kaitsta selliste haavatavuste eest.
Allikas: habr.com
