AKS kümesi kaynaklarına erişmeye çalışırken "Yasak" hatasını giderme
Bu makalede, Bir Azure Kubernetes Service (AKS) kümesinde Kubernetes kaynaklarını görüntülemeye çalıştığınızda Rol Tabanlı Erişim Denetimi (RBAC) ile ilgili "Sunucudan gelen hata (Yasak)" hatalarını giderme ve düzeltme işlemleri açıklanmaktadır.
Önkoşullar
Kubernetes kümesi komut satırı aracı (kubectl)
Not
Kabuk komutlarını çalıştırmak için Azure Cloud Shell kullanıyorsanız kubectl zaten yüklüdür. Yerel kabuk kullanıyorsanız ve Zaten Azure CLI yüklüyse, alternatif olarak az aks install-cli komutunu çalıştırarak kubectl yükleyebilirsiniz.
Belirtiler
Kubernetes kaynak türünün dağıtım, pod veya çalışan düğümü gibi ayrıntılarını görüntülemek için komutlar çalıştırdığınızda kubectl
aşağıdaki hata iletisini alırsınız:
$ 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
Neden
Bu hata, gerekli rol tabanlı erişim denetimi (RBAC) izinlerine sahip olmayan bir Microsoft Entra Id hesabı kullanarak Kubernetes kaynaklarına erişmeye çalıştığınızı gösterir.
Çözüm
Küme için yapılandırılan RBAC türüne bağlı olarak (Kubernetes RBAC veya Azure RBAC), farklı çözümler uygulanabilir. Kümenin hangi RBAC türünü kullandığını belirlemek için aşağıdaki komutu çalıştırın:
az aks show -g <CLUSTER_RESOURCE_GROUP> -n <CLUSTER_NAME> --query aadProfile.enableAzureRbac
- Sonuç false ise küme Kubernetes RBAC kullanır. Bkz . Kubernetes RBAC tabanlı AKS kümelerinde izin sorunlarını çözme.
- Sonuç doğruysa küme Azure RBAC kullanır. Bkz. Azure RBAC tabanlı AKS kümelerinde izin sorunlarını çözme.
Kubernetes RBAC tabanlı AKS kümelerindeki izin sorunlarını çözme
Küme Kubernetes RBAC kullanıyorsa, kullanıcı hesabı izinleri RoleBinding veya ClusterRoleBinding Kubernetes kaynakları oluşturularak yapılandırılır. Daha fazla bilgi için Kubernetes RBAC belgelerine bakın.
Ayrıca, Microsoft Entra Id tümleşik kümelerinde, yöneticiye önceden belirlenmiş bir Microsoft Entra ID grubunun üyelerine kümeye erişim vermek için otomatik olarak bir ClusterRoleBinding kaynağı oluşturulur.
Belirli bir kullanıcının "Sunucudan hata (Yasak)" hatasını çözmek için aşağıdaki yöntemlerden birini kullanın.
Yöntem 1: Özel bir RoleBinding veya ClusterRoleBinding kaynağı oluşturma
Kullanıcıya (veya kullanıcının üyesi olduğu bir gruba) gerekli izinleri vermek için özel bir RoleBinding veya ClusterRoleBinding kaynağı oluşturabilirsiniz. Ayrıntılı adımlar için bkz . Azure Kubernetes Service'te Microsoft Entra Id ile Kubernetes rol tabanlı erişim denetimini kullanma.
Yöntem 2: Kullanıcıyı önceden belirlenmiş Microsoft Entra ID yönetici grubuna ekleme
Önceden belirlenmiş Microsoft Entra Id yönetici grubunun kimliğini alın. Bunu yapmak için aşağıdaki komutu çalıştırın:
az aks show -g <CLUSTER_RESOURCE_GROUP> -n <CLUSTER_NAME> --query aadProfile.adminGroupObjectIDs
Önceki adımda aldığınız grup kimliğini kullanarak kullanıcıyı önceden belirlenmiş Microsoft Entra ID yönetici grubuna ekleyin. Daha ayrıntılı adımlar için bkz . Grubun üyelerini veya sahiplerini ekleme.
Azure RBAC tabanlı AKS kümelerindeki izin sorunlarını çözme
Küme Azure RBAC kullanıyorsa, kullanıcılar için izinler Azure rol atamaları oluşturularak yapılandırılır.
AKS, Belirli bir ad alanında veya küme kapsamındaki Kubernetes nesnelerine erişim vermek üzere Microsoft Entra ID kullanıcıları veya grupları için rol atamaları oluşturmak için kullanılabilecek bir dizi yerleşik rol sağlar. Azure RBAC tabanlı kümelerdeki kullanıcılara veya gruplara yerleşik roller atamaya yönelik ayrıntılı adımlar için bkz . AKS yerleşik rolleri.
Alternatif olarak, belirli Kubernetes nesne ve işlemleri türleri üzerinde daha ayrıntılı bir izin yönetimi sağlamak için kendi özel Azure rol tanımlarınızı oluşturabilirsiniz. Azure RBAC tabanlı kümelerde kullanıcılara ve gruplara özel roller oluşturma ve atama hakkında ayrıntılı yönergeler için bkz . Özel rol tanımları oluşturma.
Yardım için bize ulaşın
Sorularınız veya yardıma ihtiyacınız varsa bir destek isteği oluşturun veya Azure topluluk desteği isteyin. Ürün geri bildirimini Azure geri bildirim topluluğuna da gönderebilirsiniz.