A Helm a Kubernetes csomagkezelője, valami ilyesmi apt-get
az Ubuntu számára. Ebben a megjegyzésben a helm (v2) korábbi verzióját fogjuk látni, amelyen alapértelmezés szerint telepítve van a kormánymű szolgáltatás, amelyen keresztül elérjük a fürtöt.
Készítsük elő a fürtöt; ehhez futtassuk a parancsot:
kubectl run --rm --restart=Never -it --image=madhuakula/k8s-goat-helm-tiller -- bash
Demonstráció
- Ha nem állít be semmi továbbiat, a helm v2 elindítja a kormánymű szolgáltatást, amely teljes fürtrendszergazdai jogokkal rendelkezik RBAC-val.
- Telepítés után a névtérben
kube-system
megjeleniktiller-deploy
, és megnyitja a 44134-hoz kötött 0.0.0.0-es portot is. Ez telnet segítségével ellenőrizhető.
$ telnet tiller-deploy.kube-system 44134
- Most már csatlakozhat a kormánymű szolgáltatáshoz. A kormányos binárist használjuk a műveletek végrehajtására, amikor a kormányszervizzel kommunikálunk:
$ helm --host tiller-deploy.kube-system:44134 version
- Próbáljuk meg lekérni a Kubernetes-fürt titkait a névtérből
kube-system
:
$ kubectl get secrets -n kube-system
- Most elkészíthetjük saját diagramunkat, amelyben létrehozunk egy szerepkört rendszergazdai jogokkal, és hozzárendeljük ezt a szerepet az alapértelmezett szolgáltatásfiókhoz. A szolgáltatásfiókból származó token használatával teljes hozzáférést kaptunk a fürtünkhöz.
$ helm --host tiller-deploy.kube-system:44134 install /pwnchart
- Most mikor
pwnchart
telepítve, az alapértelmezett szolgáltatásfiók teljes adminisztrátori hozzáféréssel rendelkezik. Nézzük meg újra, hogyan szerezhetünk titkokatkube-system
kubectl get secrets -n kube-system
A szkript sikeres végrehajtása attól függ, hogy a vezérlőt hogyan telepítették; néha az adminisztrátorok külön névtérben, eltérő jogosultságokkal telepítik. A Helm 3 nem érzékeny az ilyen sérülékenységekre, mert... nincs benne kormányrúd.
A fordító megjegyzése: A hálózati házirendek használata a fürtök forgalmának szűrésére segít megvédeni az ilyen típusú sebezhetőségeket.
Forrás: will.com