Kontrola dostępu oparta na rolach w klastrach Kubernetes platformy Kubernetes operatora platformy Azure
Ten artykuł zawiera kompleksowy przewodnik dotyczący zarządzania dostępem do klastrów Kubernetes Nexus przy użyciu identyfikatora Entra firmy Microsoft. W szczególności koncentrujemy się na kontroli dostępu opartej na rolach, która umożliwia przyznawanie użytkownikom uprawnień na podstawie ich ról lub obowiązków w organizacji.
Zanim rozpoczniesz
- Aby rozpocząć, utwórz grupę Microsoft Entra dla administratorów klastra i przypisz do niej członków. Identyfikator Entra firmy Microsoft umożliwia przyznanie dostępu całej grupie zamiast zarządzania uprawnieniami dla każdego użytkownika osobno.
- Użyj identyfikatora grupy utworzonego jako wartości "adminGroupObjectIds" podczas tworzenia klastra Nexus Kubernetes, aby upewnić się, że członkowie grupy uzyskają uprawnienia do zarządzania klastrem. Zapoznaj się z przewodnikiem Szybki start , aby uzyskać instrukcje dotyczące tworzenia i uzyskiwania dostępu do klastra Nexus Kubernetes.
Administracja istrator dostępu do klastra
Nexus tworzy powiązanie roli klastra Kubernetes z domyślną rolą cluster-admin
Kubernetes i grupami firmy Microsoft Entra określonymi jako adminGroupObjectIds
. Administratorzy klastra mają pełny dostęp do klastra i mogą wykonywać wszystkie operacje w klastrze. Administratorzy klastra mogą również udzielić dostępu innym użytkownikom, przypisując je do odpowiedniej grupy firmy Microsoft Entra.
Uwaga
Podczas tworzenia klastra Nexus Kubernetes nexus automatycznie tworzy zarządzaną grupę zasobów przeznaczoną do przechowywania zasobów klastra w ramach tej grupy zostanie ustanowiony zasób klastra połączonego z usługą Arc.
Aby uzyskać dostęp do klastra, należy skonfigurować klaster connect kubeconfig
. Po zalogowaniu się do interfejsu wiersza polecenia platformy Azure przy użyciu odpowiedniej jednostki Firmy Microsoft Entra możesz uzyskać kubeconfig
niezbędne do komunikowania się z klastrem z dowolnego miejsca, nawet poza zaporą, która go otacza.
Ustaw
CLUSTER_NAME
zmienne iSUBSCRIPTION_ID
RESOURCE_GROUP
.CLUSTER_NAME="myNexusK8sCluster" RESOURCE_GROUP="myResourceGroup" SUBSCRIPTION_ID=<set the correct subscription_id>
Wykonywanie zapytań względem zarządzanej grupy zasobów za pomocą
az
polecenia i przechowywania w usłudzeMANAGED_RESOURCE_GROUP
az account set -s $SUBSCRIPTION_ID MANAGED_RESOURCE_GROUP=$(az networkcloud kubernetescluster show -n $CLUSTER_NAME -g $RESOURCE_GROUP --output tsv --query managedResourceGroupConfiguration.name)
Następujące polecenie uruchamia serwer proxy connectedk8s, który umożliwia nawiązanie połączenia z serwerem interfejsu API Kubernetes dla określonego klastra Nexus Kubernetes.
az connectedk8s proxy -n $CLUSTER_NAME -g $MANAGED_RESOURCE_GROUP &
Użyj
kubectl
polecenia , aby wysyłać żądania do klastra:kubectl get pods -A
Powinna zostać wyświetlona odpowiedź z klastra zawierającego listę wszystkich węzłów.
Uwaga
Jeśli zostanie wyświetlony komunikat o błędzie "Nie można opublikować tokenu dostępu do serwera proxy klientaFailed w celu nawiązania połączenia z tożsamością usługi zarządzanej", może być konieczne wykonanie polecenia az login
w celu ponownego uwierzytelnienia na platformie Azure.
Kontrola dostępu oparta na rolach
Jako administrator możesz zapewnić klastrowi kontrolę dostępu opartą na rolach, tworząc powiązanie roli za pomocą identyfikatora obiektu grupy Entra firmy Microsoft. W przypadku użytkowników, którzy potrzebują tylko uprawnień "wyświetl", możesz wykonać zadanie, dodając je do grupy Microsoft Entra powiązanej z rolą "wyświetl".
Utwórz grupę Entra firmy Microsoft dla użytkowników, którzy potrzebują dostępu "wyświetl", odwołując się do domyślnej roli Kubernetes o nazwie
view
. Ta rola jest tylko przykładem i w razie potrzeby możesz utworzyć role niestandardowe i użyć ich zamiast tego. Aby uzyskać więcej informacji na temat ról opartych na użytkownikach na platformie Kubernetes, możesz zapoznać się z oficjalną dokumentacją dotyczącą ról dostępu opartych na roll-based kubernetes.Zanotuj identyfikator obiektu grupy Entra firmy Microsoft wygenerowany podczas tworzenia.
Użyj polecenia kubectl, aby utworzyć klasterrolebinding z rolą "view" i skojarzyć ją z grupą Microsoft Entra. Zastąp
AZURE_AD_GROUP_OBJECT_ID
element identyfikatorem obiektu grupy Microsoft Entra.kubectl create clusterrolebinding nexus-read-only-users --clusterrole view --group=AZURE_AD_GROUP_OBJECT_ID
To polecenie tworzy powiązanie roli klastra o nazwie
nexus-read-only-users
, które przypisujeview
rolę członkom określonej grupy Microsoft Entra.Sprawdź, czy powiązanie roli zostało utworzone pomyślnie.
kubectl get clusterrolebinding nexus-read-only-users
Teraz użytkownicy w grupie Microsoft Entra mają dostęp do klastra "wyświetl". Mogą oni uzyskiwać dostęp do klastra przy użyciu funkcji
az connectedk8s proxy
wyświetlania zasobów, ale nie mogą wprowadzać żadnych zmian
Następne kroki
Możesz dodatkowo dostosować kontrolę dostępu, tworząc role niestandardowe z określonymi uprawnieniami. Tworzenie tych ról obejmuje natywne zasoby RoleBinding lub ClusterRoleBinding platformy Kubernetes. Oficjalną dokumentację platformy Kubernetes można sprawdzić, aby uzyskać szczegółowe wskazówki dotyczące tworzenia bardziej niestandardowych ról i powiązań ról zgodnie z wymaganiami.