共用方式為


針對嘗試存取 AKS 叢集資源時的「禁止」錯誤進行疑難解答

本文說明當您嘗試在 Azure Kubernetes Service (AKS) 叢集中檢視 Kubernetes 資源時,如何針對與角色型 存取控制 (RBAC) 相關的「伺服器錯誤」錯誤進行疑難解答和解決。

必要條件

Kubernetes 叢集命令行工具 (kubectl

注意

如果您使用 Azure Cloud Shell 來執行殼層命令,則 kubectl 已安裝。 如果您使用本機殼層並已安裝 Azure CLI ,您也可以執行 az aks install-cli 命令來安裝 kubectl。

徵兆

當您執行 kubectl 命令來檢視 Kubernetes 資源類型的詳細數據時,例如部署、Pod 或背景工作節點,您會收到下列錯誤訊息:

$ 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

原因

此錯誤表示您嘗試使用沒有必要角色型訪問控制 (RBAC) 許可權的 Microsoft Entra ID 帳戶來存取 Kubernetes 資源。

解決方案

根據針對叢集設定的 RBAC 類型(Kubernetes RBACAzure RBAC),可能會套用不同的解決方案。 執行下列命令來判斷叢集所使用的 RBAC 型態:

	az aks show -g <CLUSTER_RESOURCE_GROUP> -n <CLUSTER_NAME> --query aadProfile.enableAzureRbac

解決 Kubernetes RBAC 型 AKS 叢集中的許可權問題

如果叢集使用 Kubernetes RBAC,則會透過建立 RoleBinding 或 ClusterRoleBinding Kubernetes 資源來設定使用者帳戶的許可權。 如需詳細資訊,請參閱 Kubernetes RBAC 檔

此外,在Microsoft Entra ID 整合式叢集中,系統會自動建立 ClusterRoleBinding 資源,將叢集的存取權授與預先指定之Microsoft Entra ID 群組的成員。

若要解決特定使用者的「伺服器錯誤(禁止)」錯誤,請使用下列其中一種方法。

方法 1:建立自定義 RoleBinding 或 ClusterRoleBinding 資源

您可以建立自定義 RoleBinding 或 ClusterRoleBinding 資源,將必要的許可權授與使用者(或使用者所屬的群組)。 如需詳細步驟,請參閱 在 Azure Kubernetes Service 中使用 Kubernetes 角色型訪問控制搭配 Microsoft Entra ID。

方法 2:將使用者新增至預先指定的Microsoft Entra ID 管理員群組

  1. 擷取預先指定Microsoft Entra ID 管理群組的標識碼。 若要這樣做,請執行下列命令:

    az aks show -g <CLUSTER_RESOURCE_GROUP> -n <CLUSTER_NAME> --query aadProfile.adminGroupObjectIDs
    
  2. 使用您在上一個步驟中擷取的群組標識碼,將使用者新增至預先指定的 Microsoft Entra ID 管理群組。 如需更詳細的步驟,請參閱 新增群組的成員或擁有者。

解決 Azure RBAC 型 AKS 叢集中的許可權問題

如果叢集使用 Azure RBAC,則會透過建立 Azure 角色指派來設定用戶的許可權。

AKS 提供一組內建角色,可用來為Microsoft Entra ID 使用者或群組建立角色指派,讓他們存取特定命名空間或叢集範圍中的 Kubernetes 物件。 如需將內建角色指派給 Azure RBAC 型叢集中使用者或群組的詳細步驟,請參閱 AKS 內建角色

或者,您可以建立自己的自定義 Azure 角色定義,針對特定 Kubernetes 對象和作業類型提供更細微的許可權管理。 如需在 Azure RBAC 型叢集中建立和指派自定義角色給使用者和群組的詳細指引,請參閱 建立自定義角色定義

與我們連絡,以取得說明

如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以向 Azure 意見反應社群提交產品意見反應。