Аутентификујте у Кубернетесу користећи ГитХуб ОАутх и Дек
Представљам вашој пажњи упутство за генерисање приступа Кубернетес кластеру помоћу Дек-а, дек-к8с-аутхентицатор-а и ГитХуб-а.
Локални мем из ћаскања Кубернетес на руском језику Telegram
Увод
Користимо Кубернетес да креирамо динамичка окружења за тим за развој и обезбеђење квалитета. Зато желимо да им дамо приступ кластеру и за контролну таблу и за кубецтл. За разлику од ОпенСхифт-а, ванилла Кубернетес нема изворну аутентификацију, тако да за ово користимо алате треће стране.
ГитХуб - једноставно зато што користимо ГитХуб у нашој компанији
Покушали смо да користимо Гоогле ОИДЦ, али нажалост није успело да их започнемо са групама, тако да нам је интеграција са ГитХуб-ом сасвим одговарала. Без групног мапирања, неће бити могуће креирати РБАЦ политике засноване на групама.
Дакле, како наш Кубернетес процес ауторизације функционише у визуелном приказу:
Процес ауторизације
Мало више детаља и тачку по тачку:
Корисник се пријављује на дек-к8с-аутхентицатор (login.k8s.example.com)
КубеАПИСервер враћа приступ кубецтл-у на основу прослеђеног токена
Корисник добија приступ из кубецтл-а
Припремне радње
Наравно, већ имамо инсталиран Кубернетес кластер (k8s.example.com), а такође долази са унапред инсталираним ХЕЛМ-ом. Такође имамо организацију на ГитХуб-у (супер-орг).
Ако немате ХЕЛМ, инсталирајте га врло једноставно.
Прво морамо да подесимо ГитХуб.
Идите на страницу подешавања организације, (https://github.com/organizations/super-org/settings/applications) и креирајте нову апликацију (Аутхоризед ОАутх Апп):
Креирање нове апликације на ГитХуб-у
Попуните поља потребним УРЛ адресама, на пример:
УРЛ почетне странице: https://dex.k8s.example.com
УРЛ за повратни позив ауторизације: https://dex.k8s.example.com/callback
Будите опрезни са везама, важно је да не изгубите косе црте.
Као одговор на попуњен образац, ГитХуб ће генерисати Client ID и Client secret, чувајте их на безбедном месту, биће нам корисни (нпр Свод за чување тајни):
Идите на страницу за пријаву (https://login.k8s.example.com) и пријавите се користећи свој ГитХуб налог:
Страница за пријаву
Страница за пријаву је преусмерена на ГитХуб
Пратите генерисана упутства да бисте добили приступ
Након копирања са веб странице, можемо користити кубецтл за управљање ресурсима кластера:
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"
И функционише, сви корисници ГитХуб-а у нашој организацији могу да виде ресурсе и да се пријаве у подове, али немају права да их мењају.