KAM
Kubernetes Access Manager
Celem naszego projektu jest rozwiązanie problemu braku użytkowników z różnymi poziomami dostępu na klastrze kubernetes.
Obecnie konfiguracja poziomów dostępów do klastra przez użytkownika jest bardzo ograniczona i nie pozwala ona na pełną dowolność w określaniu uprawnień. Nasze rozwiązanie wprowadza możliwość tworzenia użytkowników z 4 różnymi poziomami dostępów. Dzięki temu użytkownicy mogą mieć ograniczony dostęp do zasobów – od prostego podglądu ogólnych danych, przez możliwość szczegółowego przeglądania, aż po uprawnienia do modyfikacji i usuwania zasobów. Rozwiązanie to w znaczący sposób uprości zarządzanie dostępami do klastrów, a co za tym idzie znacznie podniesie poziom bezpieczeństwa, dzięki lepszemu dobraniu wymaganych uprawnień
Odbiorcami aplikacji będą zespoły, które ze względów bezpieczeństwa nie mogą udostępniać pełnych uprawnień dla każdego z użytkowników i potrzebują możliwości ich ograniczenia. Głównymi funkcjonalnościami aplikacji będzie możliwość tworzenia kont użytkowników z wykorzystaniem SSO, przypisywanie im określonych uprawnień, oraz utworzenie aplikacji webowej z której pomocą będzie można dokonywać operacji na klastrze kubernetes zgodnie z uprawnieniami użytkownika.
Część backendowa: Go – główny język programowania używany w części backendowej projektu Client-go – biblioteka służąca do interakcji z API Kubernetes gorilla/mux – biblioteka umożliwiająca routing żądań Http Goland – środowisko programistyczne firmy JetBrains dedykowane dla języka Go Cześć frontendowa: Typescript – główny język programowania używany w części frontendowej projektu React – główny framework używany w części frontendowej Ant Design – biblioteka komponentów React Webstorm – środowisko programistyczne firmy JetBrains do rozwoju aplikacji webowych Pozostałe: Swagger – zestaw narzędzi do tworzenia API według specyfikacji OpenAPI 3.0 Github – platforma służąca jako repozytorium kodu Github Actions - platforma służąca jako automatyzacja CI/CD minikube – narzędzie pozwalające skonfigurować środowisko Kubernetes na komputerze lokalnym Docker/Podman - narzędzie do uruchamiania kontenerów aplikacji Helm - menadżer pakietów dla kubernetes Keycloak - platforma do zarządzania tożsamością i dostępem