Rozwiązywanie problemów z błędem "Zabronione" podczas próby uzyskania dostępu do zasobów klastra usługi AKS
W tym artykule wyjaśniono, jak rozwiązywać problemy z błędami "Błąd z serwera (zabronione)", które są związane z kontrolą dostępu opartą na rolach (RBAC) podczas próby wyświetlenia zasobów Kubernetes w klastrze usługi Azure Kubernetes Service (AKS).
Wymagania wstępne
Narzędzie wiersza polecenia klastra Kubernetes (kubectl)
Uwaga 16.
Jeśli używasz usługi Azure Cloud Shell do uruchamiania poleceń powłoki, narzędzie kubectl jest już zainstalowane. Jeśli używasz powłoki lokalnej i masz już zainstalowany interfejs wiersza polecenia platformy Azure, możesz też zainstalować narzędzie kubectl, uruchamiając polecenie az aks install-cli .
Symptomy
Po uruchomieniu kubectl
poleceń w celu wyświetlenia szczegółów typu zasobu Kubernetes, takiego jak wdrożenie, zasobnik lub węzeł procesu roboczego, zostanie wyświetlony następujący komunikat o błędzie:
$ 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
Przyczyna
Ten błąd wskazuje, że próbujesz uzyskać dostęp do zasobów platformy Kubernetes przy użyciu konta Microsoft Entra ID, które nie ma wymaganych uprawnień kontroli dostępu opartej na rolach (RBAC).
Rozwiązanie
W zależności od typu kontroli dostępu opartej na rolach skonfigurowanego dla klastra (kontrola dostępu oparta na rolach platformy Kubernetes lub kontrola dostępu oparta na rolach platformy Azure) mogą mieć zastosowanie różne rozwiązania. Uruchom następujące polecenie, aby określić, którego typu kontroli dostępu opartej na rolach używa klaster:
az aks show -g <CLUSTER_RESOURCE_GROUP> -n <CLUSTER_NAME> --query aadProfile.enableAzureRbac
- Jeśli wynik jest fałszywy, klaster używa kontroli dostępu opartej na rolach Platformy Kubernetes. Zobacz Rozwiązywanie problemów z uprawnieniami w klastrach AKS opartych na kontroli dostępu opartej na rolach platformy Kubernetes.
- Jeśli wynik ma wartość true, klaster używa kontroli dostępu opartej na rolach platformy Azure. Zobacz Rozwiązywanie problemów z uprawnieniami w klastrach usługi AKS opartych na kontroli dostępu opartej na rolach platformy Azure.
Rozwiązywanie problemów z uprawnieniami w klastrach AKS opartych na kontroli dostępu opartej na rolach platformy Kubernetes
Jeśli klaster korzysta z kontroli dostępu opartej na rolach platformy Kubernetes, uprawnienia dla konta użytkownika są konfigurowane za pośrednictwem tworzenia zasobów RoleBinding lub ClusterRoleBinding Kubernetes. Aby uzyskać więcej informacji, zobacz dokumentację kontroli dostępu opartej na rolach platformy Kubernetes.
Ponadto w klastrach zintegrowanych z identyfikatorem Entra firmy Microsoft zasób ClusterRoleBinding jest tworzony automatycznie w celu udzielenia administratorowi dostępu do klastra członkom wstępnie wyznaczonej grupy Identyfikator entra firmy Microsoft.
Aby usunąć błąd "Błąd z serwera (zabronione)" dla określonego użytkownika, użyj jednej z następujących metod.
Metoda 1. Tworzenie niestandardowego zasobu RoleBinding lub ClusterRoleBinding
Możesz utworzyć niestandardowy zasób RoleBinding lub ClusterRoleBinding, aby udzielić użytkownikowi niezbędnych uprawnień (lub grupie, której użytkownik jest członkiem). Aby uzyskać szczegółowe instrukcje, zobacz Use Kubernetes role-based access control with Microsoft Entra ID in Azure Kubernetes Service (Używanie kontroli dostępu opartej na rolach platformy Kubernetes za pomocą identyfikatora Entra firmy Microsoft w usłudze Azure Kubernetes Service).
Metoda 2. Dodawanie użytkownika do wstępnie wyznaczonej grupy administracyjnej Identyfikator entra firmy Microsoft
Pobierz identyfikator wstępnie wyznaczonej grupy administracyjnej Microsoft Entra ID. Aby to zrobić, uruchom następujące polecenie:
az aks show -g <CLUSTER_RESOURCE_GROUP> -n <CLUSTER_NAME> --query aadProfile.adminGroupObjectIDs
Dodaj użytkownika do wstępnie wyznaczonej grupy administracyjnej Identyfikator entra firmy Microsoft przy użyciu identyfikatora grupy pobranego w poprzednim kroku. Aby uzyskać bardziej szczegółowe instrukcje, zobacz Dodawanie członków lub właścicieli grupy.
Rozwiązywanie problemów z uprawnieniami w klastrach AKS opartych na kontroli dostępu opartej na rolach platformy Azure
Jeśli klaster używa kontroli dostępu opartej na rolach platformy Azure, uprawnienia dla użytkowników są konfigurowane za pośrednictwem tworzenia przypisań ról platformy Azure.
Usługa AKS udostępnia zestaw wbudowanych ról, które mogą służyć do tworzenia przypisań ról dla użytkowników lub grup microsoft Entra ID w celu zapewnienia im dostępu do obiektów Kubernetes w określonej przestrzeni nazw lub w zakresie klastra. Aby uzyskać szczegółowe instrukcje przypisywania wbudowanych ról do użytkowników lub grup w klastrach opartych na kontroli dostępu opartej na rolach platformy Azure, zobacz Role wbudowane usługi AKS.
Alternatywnie możesz utworzyć własne niestandardowe definicje ról platformy Azure, aby zapewnić bardziej szczegółowe zarządzanie uprawnieniami w przypadku określonych typów obiektów i operacji platformy Kubernetes. Aby uzyskać szczegółowe wskazówki dotyczące tworzenia i przypisywania ról niestandardowych do użytkowników i grup w klastrach opartych na kontroli dostępu opartej na rolach platformy Azure, zobacz Tworzenie definicji ról niestandardowych.
Skontaktuj się z nami, aby uzyskać pomoc
Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii na temat platformy Azure.