Share via


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

  1. 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.
  2. 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.

  1. Legen Sie die Variablen CLUSTER_NAME, RESOURCE_GROUP und SUBSCRIPTION_ID fest.

    CLUSTER_NAME="myNexusK8sCluster"
    RESOURCE_GROUP="myResourceGroup"
    SUBSCRIPTION_ID=<set the correct subscription_id>
    
  2. Abfragen einer verwalteten Ressourcengruppe mit az und Speichern in MANAGED_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)
    
  3. 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 &
    
  4. 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.

  1. 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.

  2. Notieren Sie sich die Beim Erstellen generierte Microsoft Entra-Gruppenobjekt-ID.

  3. 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 die view Rolle den Mitgliedern der angegebenen Microsoft Entra-Gruppe zuweist.

  4. Überprüfen Sie, ob die Rollenbindung erfolgreich erstellt wurde.

    kubectl get clusterrolebinding nexus-read-only-users
    
  5. 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 .