Rollenbasierte Zugriffssteuerung in Azure Operator Nexus Kubernetes-Clustern
Dieser Artikel enthält einen umfassenden Leitfaden zum Verwalten des Zugriffs auf Nexus Kubernetes-Cluster mithilfe von Microsoft Entra ID. Insbesondere konzentrieren wir uns auf die rollenbasierte Zugriffssteuerung, mit der Sie Benutzern basierend auf ihren Rollen oder Zuständigkeiten innerhalb Ihrer Organisation Berechtigungen erteilen können.
Voraussetzungen
- Erstellen Sie zunächst eine Microsoft Entra-Gruppe für Ihre Clusteradministratoren, und weisen Sie ihr Mitglieder zu. Microsoft Entra ID ermöglicht den Zugriff auf die Gruppe als Ganzes, anstatt Berechtigungen für jeden Benutzer einzeln zu verwalten.
- Verwenden Sie die Gruppen-ID, die Sie beim Erstellen des Nexus Kubernetes-Clusters als Wert für „adminGroupObjectIds“ erstellt haben, um sicherzustellen, dass die Mitglieder der Gruppe Berechtigungen zum Verwalten des Clusters erhalten. Anweisungen zum Erstellen und Zugreifen auf das Nexus Kubernetes-Cluster finden Sie in der Schnellstartanleitung.
Administratorzugriff auf das Cluster
Nexus erstellt eine Kubernetes-Clusterrollenbindung mit der Kubernetes-Standardrolle cluster-admin
und den Microsoft Entra-Gruppen, die Sie als adminGroupObjectIds
angegeben haben. Die Clusteradministratoren haben Vollzugriff auf das Cluster und können alle Vorgänge auf dem Cluster ausführen. Die Clusteradministratoren können auch anderen Benutzern Zugriff gewähren, indem sie sie der entsprechenden Microsoft Entra-Gruppe zuweisen.
Hinweis
Wenn Sie einen Nexus Kubernetes-Cluster erstellen, erstellt Nexus automatisch eine verwaltete Ressourcengruppe, die zum Speichern der Clusterressourcen bestimmt ist. Innerhalb dieser Gruppe wird die mit Arc verbundene Clusterressource eingerichtet.
Um auf Ihren Cluster zuzugreifen, müssen Sie die Clusterverbindung kubeconfig
festlegen. Nachdem Sie sich mit der entsprechenden Microsoft Entra-Entität bei Azure CLI angemeldet haben, können Sie die kubeconfig
abrufen, die notwendig ist, um von überall aus mit dem Cluster zu kommunizieren, sogar außerhalb der Firewall, die ihn umgibt.
Legen Sie die Variablen
CLUSTER_NAME
,RESOURCE_GROUP
undSUBSCRIPTION_ID
fest.CLUSTER_NAME="myNexusK8sCluster" RESOURCE_GROUP="myResourceGroup" SUBSCRIPTION_ID=<set the correct subscription_id>
Abfragen einer verwalteten Ressourcengruppe mit
az
und Speichern inMANAGED_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)
Der folgende Befehl startet einen connectedk8s-Proxy, mit dem Sie mit dem Kubernetes-API-Server für den angegebenen Nexus Kubernetes-Cluster eine Verbindung herstellen können.
az connectedk8s proxy -n $CLUSTER_NAME -g $MANAGED_RESOURCE_GROUP &
Verwenden Sie
kubectl
, um Anforderungen an den Cluster zu senden:kubectl get pods -A
Sie sollten jetzt eine Antwort des Clusters sehen, die die Liste aller Knoten enthält.
Hinweis
Wenn Sie die Fehlermeldung „Zugriffstoken konnte nicht für den Client proxyFailed veröffentlicht werden, um eine Verbindung mit MSI herzustellen“ sehen, müssen Sie möglicherweise ein az login
durchführen, um sich erneut bei Azure zu authentifizieren.
Rollenbasierte Zugriffssteuerung
Als Administrator können Sie rollenbasierte Zugriffssteuerung für das Cluster bereitstellen, indem Sie eine Rollenbindung mit der Microsoft Entra-Gruppenobjekt-ID erstellen. Für Benutzer, die nur „Anzeigeberechtigungen“ benötigen, können Sie die Aufgabe ausführen, indem Sie sie einer Microsoft Entra-Gruppe hinzufügen, die an die Rolle „Anzeigen“ gebunden ist.
Erstellen Sie eine Microsoft Entra-Gruppe für Benutzer, die Zugriff auf „Anzeigen“ benötigen, und verweisen Sie auf die standardmäßige Kubernetes-Rolle namens
view
. Diese Rolle ist nur ein Beispiel, und bei Bedarf können Sie benutzerdefinierte Rollen erstellen und stattdessen verwenden. Weitere Informationen zu benutzerorientierten Rollen in Kubernetes finden Sie in der offiziellen Dokumentation unter Rollenbasierte Zugriffsrollen in Kubernetes.Notieren Sie sich die beim Erstellen generierte Microsoft Entra-Gruppenobjekt-ID.
Verwenden Sie den Kubectl-Befehl, um eine Clusterrollenbindung mit der Rolle „Anzeigen“ zu erstellen und sie der Microsoft Entra-Gruppe zuzuordnen. Ersetzen Sie
AZURE_AD_GROUP_OBJECT_ID
durch die Objekt-ID Ihrer Microsoft Entra-Gruppe.kubectl create clusterrolebinding nexus-read-only-users --clusterrole view --group=AZURE_AD_GROUP_OBJECT_ID
Mit diesem Befehl wird eine Clusterrollenbindung namens
nexus-read-only-users
erstellt, die den Mitgliedern der angegebenen Microsoft Entra-Gruppe dieview
-Rolle zuweist.Überprüfen Sie, ob die Rollenbindung erfolgreich erstellt wurde.
kubectl get clusterrolebinding nexus-read-only-users
Jetzt haben die Benutzer in der Microsoft Entra-Gruppe Zugriff auf das Cluster. Sie können auf das Cluster zugreifen, indem Sie mithilfe von
az connectedk8s proxy
die Ressourcen anzeigen, können aber keine Änderungen vornehmen
Nächste Schritte
Sie können die Zugriffssteuerung weiter optimieren, indem Sie benutzerdefinierte Rollen mit bestimmten Berechtigungen erstellen. Die Erstellung dieser Rollen umfasst Kubernetes-native RoleBinding- oder ClusterRoleBinding-Ressourcen. Detaillierte Anleitungen zum Erstellen von benutzerdefinierten Rollen und Rollenbindungen gemäß Ihren Anforderungen finden Sie in der offiziellen Dokumentation von Kubernetes.