Helm یک مدیر بسته برای Kubernetes است، چیزی شبیه به apt-get
برای اوبونتو در این یادداشت شاهد نسخه قبلی helm (v2) با نصب سرویس تیلر به صورت پیش فرض خواهیم بود که از طریق آن به خوشه دسترسی خواهیم داشت.
بیایید کلاستر را آماده کنیم؛ برای انجام این کار، دستور را اجرا کنید:
kubectl run --rm --restart=Never -it --image=madhuakula/k8s-goat-helm-tiller -- bash
تظاهرات
- اگر چیز دیگری را پیکربندی نکنید، helm v2 سرویس تیلر را راهاندازی میکند که دارای RBAC با حقوق کامل سرپرست کلاستر است.
- پس از نصب در فضای نام
kube-system
ظاهر می شودtiller-deploy
، و همچنین پورت 44134 را باز می کند که به 0.0.0.0 محدود شده است. این را می توان با استفاده از telnet بررسی کرد.
$ telnet tiller-deploy.kube-system 44134
- اکنون می توانید به سرویس تیلر متصل شوید. هنگام برقراری ارتباط با سرویس تیلر، از باینری فرمان برای انجام عملیات استفاده خواهیم کرد:
$ helm --host tiller-deploy.kube-system:44134 version
- بیایید سعی کنیم رازهای خوشه Kubernetes را از فضای نام دریافت کنیم
kube-system
:
$ kubectl get secrets -n kube-system
- اکنون می توانیم نمودار خودمان را ایجاد کنیم که در آن نقشی با حقوق مدیر ایجاد می کنیم و این نقش را به حساب پیش فرض سرویس اختصاص می دهیم. با استفاده از رمز این حساب سرویس، دسترسی کامل به خوشه خود را دریافت کردیم.
$ helm --host tiller-deploy.kube-system:44134 install /pwnchart
- حالا کی
pwnchart
استقرار، حساب سرویس پیش فرض دسترسی مدیریتی کامل دارد. بیایید دوباره نحوه به دست آوردن اسرار را بررسی کنیمkube-system
kubectl get secrets -n kube-system
اجرای موفقیت آمیز این اسکریپت به نحوه استقرار تیلر بستگی دارد؛ گاهی اوقات مدیران آن را در یک فضای نام جداگانه با امتیازات مختلف مستقر می کنند. Helm 3 مستعد چنین آسیب پذیری نیست زیرا ... هیچ پنجه ای در آن وجود ندارد.
یادداشت مترجم: استفاده از سیاست های شبکه برای فیلتر کردن ترافیک در یک خوشه به محافظت در برابر این نوع آسیب پذیری ها کمک می کند.
منبع: www.habr.com