Problembehandlung beim Versuch, auf AKS-Clusterressourcen zuzugreifen
In diesem Artikel wird erläutert, wie Fehler beim Anzeigen von Kubernetes-Ressourcen in einem Azure Kubernetes Service (AKS)-Cluster (Role-Based Access Control, RBAC) behoben und behoben werden.
Voraussetzungen
Das Kubernetes-Cluster-Befehlszeilentool (Kubectl)
Notiz
Wenn Sie Azure Cloud Shell zum Ausführen von Shellbefehlen verwenden, ist Kubectl bereits installiert. Wenn Sie eine lokale Shell verwenden und azure CLI bereits installiert haben, können Sie kubectl alternativ installieren, indem Sie den Befehl "az aks install-cli" ausführen.
Symptome
Wenn Sie Befehle ausführen kubectl
, um Details eines Kubernetes-Ressourcentyps anzuzeigen, z. B. eine Bereitstellung, einen Pod oder einen Workerknoten, erhalten Sie die folgende Fehlermeldung:
$ kubectl get nodes
Error from server (Forbidden): nodes is forbidden: User "aaaa11111-11aa-aa11-a1a1-111111aaaaa" cannot list resource "nodes" in API group "" at the cluster scope
Ursache
Dieser Fehler weist darauf hin, dass Sie mithilfe eines Microsoft Entra-ID-Kontos, das nicht über die erforderlichen rollenbasierten Zugriffssteuerungsberechtigungen (RBAC) verfügt, auf Kubernetes-Ressourcen zugreifen möchten.
Lösung
Je nach dem für den Cluster konfigurierten RBAC-Typ (Kubernetes RBAC oder Azure RBAC) können verschiedene Lösungen angewendet werden. Führen Sie den folgenden Befehl aus, um zu bestimmen, welchen RBAC-Typ der Cluster verwendet:
az aks show -g <CLUSTER_RESOURCE_GROUP> -n <CLUSTER_NAME> --query aadProfile.enableAzureRbac
- Wenn das Ergebnis falsch ist, verwendet der Cluster Kubernetes RBAC. Siehe Beheben von Berechtigungsproblemen in Kubernetes RBAC-basierten AKS-Clustern.
- Wenn das Ergebnis wahr ist , verwendet der Cluster Azure RBAC. Siehe Beheben von Berechtigungsproblemen in Azure RBAC-basierten AKS-Clustern.
Beheben von Berechtigungsproblemen in Kubernetes RBAC-basierten AKS-Clustern
Wenn der Cluster Kubernetes RBAC verwendet, werden Berechtigungen für das Benutzerkonto über die Erstellung von RoleBinding- oder ClusterRoleBinding Kubernetes-Ressourcen konfiguriert. Weitere Informationen finden Sie in der Dokumentation zu Kubernetes RBAC.
Darüber hinaus wird in integrierten Microsoft Entra-ID-Clustern automatisch eine ClusterRoleBinding-Ressource erstellt, um dem Administrator Zugriff auf den Cluster für Mitglieder einer vordefinierten Microsoft Entra-ID-Gruppe zu gewähren.
Verwenden Sie eine der folgenden Methoden, um den Fehler "Fehler vom Server (Verboten)" für einen bestimmten Benutzer zu beheben.
Methode 1: Erstellen einer benutzerdefinierten RoleBinding- oder ClusterRoleBinding-Ressource
Sie können eine benutzerdefinierte RoleBinding- oder ClusterRoleBinding-Ressource erstellen, um dem Benutzer die erforderlichen Berechtigungen zu erteilen (oder eine Gruppe, deren Mitglied der Benutzer ist). Ausführliche Schritte finden Sie unter Verwenden der rollenbasierten Zugriffssteuerung kubernetes mit Microsoft Entra-ID in Azure Kubernetes Service.
Methode 2: Hinzufügen des Benutzers zur vordefinierten Microsoft Entra ID-Administratorgruppe
Rufen Sie die ID der vordefinierten Microsoft Entra ID-Administratorgruppe ab. Führen Sie zu diesem Zweck den folgenden Befehl aus:
az aks show -g <CLUSTER_RESOURCE_GROUP> -n <CLUSTER_NAME> --query aadProfile.adminGroupObjectIDs
Fügen Sie den Benutzer zur vordefinierten Microsoft Entra ID-Administratorgruppe hinzu, indem Sie die Gruppen-ID verwenden, die Sie im vorherigen Schritt abgerufen haben. Ausführlichere Schritte finden Sie unter Hinzufügen von Mitgliedern oder Besitzern einer Gruppe.
Beheben von Berechtigungsproblemen in Azure RBAC-basierten AKS-Clustern
Wenn der Cluster Azure RBAC verwendet, werden Berechtigungen für Benutzer über die Erstellung von Azure-Rollenzuweisungen konfiguriert.
AKS bietet eine Reihe integrierter Rollen, die zum Erstellen von Rollenzuweisungen für die Microsoft Entra-ID-Benutzer oder -Gruppen verwendet werden können, um ihnen Zugriff auf Kubernetes-Objekte in einem bestimmten Namespace oder im Clusterbereich zu gewähren. Ausführliche Schritte zum Zuweisen integrierter Rollen zu Benutzern oder Gruppen in Azure RBAC-basierten Clustern finden Sie unter AKS integrierte Rollen.
Alternativ können Sie eigene benutzerdefinierte Azure-Rollendefinitionen erstellen, um eine präzisere Verwaltung von Berechtigungen über bestimmte Typen von Kubernetes-Objekten und -Vorgängen bereitzustellen. Ausführliche Anleitungen zum Erstellen und Zuweisen von benutzerdefinierten Rollen zu Benutzern und Gruppen in Azure RBAC-basierten Clustern finden Sie unter Erstellen benutzerdefinierter Rollendefinitionen.
Kontaktieren Sie uns für Hilfe
Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.