Rollenbasierte Zugriffssteuerung in Azure Operator Nexus Kubernetes-Clustern
Dieser Artikel enthält einen umfassenden Leitfaden zum Verwalten des Zugriffs auf Nexus Kubernetes-Cluster mithilfe der 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. Die 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 den Nexus Kubernetes-Cluster finden Sie in der Schnellstartanleitung .
Administratorzugriff auf den Cluster
Nexus erstellt eine Kubernetes-Clusterrollenbindung mit der Kubernetes-Standardrolle cluster-admin
und den Microsoft Entra-Gruppen, die Sie angegeben haben adminGroupObjectIds
. Die Clusteradministratoren haben vollzugriff auf den 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 den Cluster bereitstellen, indem Sie eine Rollenbindung mit der Microsoft Entra-Gruppenobjekt-ID erstellen. Für Benutzer, die nur 'Ansichtsberechtigungen' benötigen, können Sie die Aufgabe ausführen, indem Sie sie einer Microsoft Entra-Gruppe hinzufügen, die an die Rolle "Ansicht" gebunden ist.
Erstellen Sie eine Microsoft Entra-Gruppe für Benutzer, die zugriff auf "Ansicht" benötigen, und verweisen Sie auf die standardmäßige Kubernetes-Rolle, die aufgerufen wird
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 Kubernetes rollbasierte Zugriffsrollen.Notieren Sie sich die Beim Erstellen generierte Microsoft Entra-Gruppenobjekt-ID.
Verwenden Sie den Kubectl-Befehl, um eine Clusterrolebinding mit der Rolle "Ansicht" zu erstellen und sie der Microsoft Entra-Gruppe zuzuordnen. Ersetzen Sie diese durch
AZURE_AD_GROUP_OBJECT_ID
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 erstellt
nexus-read-only-users
, die dieview
Rolle den Mitgliedern der angegebenen Microsoft Entra-Gruppe 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 den Cluster.Now the users in the Microsoft Entra group have 'view' access to the cluster. Sie können auf den Cluster zugreifen, indem
az connectedk8s proxy
sie die Ressourcen anzeigen, aber keine Änderungen vornehmen können.
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 Kubernetes-Dokumentation .