ProHoster > Blog > Ma'muriyat > GitHub OAuth va Dex yordamida Kubernetesda autentifikatsiya qiling
GitHub OAuth va Dex yordamida Kubernetesda autentifikatsiya qiling
Men sizning e'tiboringizga Dex, dex-k8s-authenticator va GitHub yordamida Kubernetes klasteriga kirishni yaratish bo'yicha qo'llanmani taqdim etaman.
Rus tilidagi Kubernetesning mahalliy memlari suhbatda Telegram
kirish
Biz Kubernetes-dan ishlab chiqish va QA jamoasi uchun dinamik muhit yaratish uchun foydalanamiz. Shunday qilib, biz ularga asboblar paneli va kubectl uchun klasterga kirish huquqini bermoqchimiz. OpenShift-dan farqli o'laroq, vanil Kubernetesda mahalliy autentifikatsiya yo'q, shuning uchun biz buning uchun uchinchi tomon vositalaridan foydalanamiz.
GitHub - shunchaki kompaniyamizda GitHub-dan foydalanganimiz uchun
Biz Google OIDC dan foydalanishga harakat qildik, lekin afsuski, biz bajarilmadi ularni guruhlar bilan boshlash uchun, shuning uchun GitHub bilan integratsiya bizga juda mos keldi. Guruh xaritasisiz, guruhlarga asoslangan RBAC siyosatlarini yaratish mumkin bo'lmaydi.
Shunday qilib, bizning Kubernetes avtorizatsiya jarayoni vizual tasvirda qanday ishlaydi:
Avtorizatsiya jarayoni
Bir oz ko'proq tafsilot va nuqta bo'yicha:
Foydalanuvchi dex-k8s-authenticator tizimiga kiradi (login.k8s.example.com)
KubeAPIServer o'tkazilgan token asosida kubectl-ga kirishlarni qaytaradi
Foydalanuvchi kubectl-dan ruxsat oladi
Tayyorgarlik harakatlari
Albatta, bizda allaqachon Kubernetes klasteri o'rnatilgan (k8s.example.com), shuningdek, oldindan o'rnatilgan HELM bilan birga keladi. GitHub (super-org) da bizning tashkilotimiz ham bor.
Agar sizda HELM bo'lmasa, uni o'rnating juda oddiy.
Avval GitHub-ni sozlashimiz kerak.
Tashkilot sozlamalari sahifasiga o'ting, (https://github.com/organizations/super-org/settings/applications) va yangi ilova yarating (Authorized OAuth App):
GitHub-da yangi dastur yaratish
Maydonlarni kerakli URL manzillari bilan to'ldiring, masalan:
Bosh sahifa URL: https://dex.k8s.example.com
Avtorizatsiya uchun qayta qo'ng'iroq qilish URL manzili: https://dex.k8s.example.com/callback
Havolalar bilan ehtiyot bo'ling, slashlarni yo'qotmaslik muhimdir.
To'ldirilgan shaklga javoban GitHub yaratadi Client ID ΠΈ Client secret, ularni xavfsiz joyda saqlang, ular biz uchun foydali bo'ladi (masalan, biz foydalanamiz bank seyfi sirlarni saqlash uchun):
Kirish sahifasiga o'ting (https://login.k8s.example.com) va GitHub hisobingizdan foydalanib tizimga kiring:
Kirish sahifasi
Kirish sahifasi GitHub-ga yo'naltirildi
Kirish uchun yaratilgan ko'rsatmalarga amal qiling
Veb-sahifadan nusxa ko'chirgandan so'ng, biz kubectl dan klaster resurslarimizni boshqarish uchun foydalanishimiz mumkin:
kubectl get po
NAME READY STATUS RESTARTS AGE
mypod 1/1 Running 0 3d
kubectl delete po mypod
Error from server (Forbidden): pods "mypod" is forbidden: User "[email protected]" cannot delete pods in the namespace "default"
Va u ishlaydi, tashkilotimizdagi barcha GitHub foydalanuvchilari resurslarni ko'rishlari va podlarga kirishlari mumkin, ammo ularni o'zgartirish huquqiga ega emaslar.