Поделиться через


Устранение ошибки "Запрещено" при попытке доступа к ресурсам кластера AKS

В этой статье объясняется, как устранять и устранять ошибки "Ошибка с сервера (запрещено)", связанные с контроль доступа на основе ролей (RBAC) при попытке просмотреть ресурсы Kubernetes в кластере Служба Azure Kubernetes (AKS).

Предварительные требования

Средство командной строки кластера Kubernetes (kubectl)

Примечание.

Если вы используете Azure Cloud Shell для выполнения команд оболочки, kubectl уже установлен. Если вы используете локальную оболочку и уже установили Azure CLI, можно также установить kubectl, выполнив команду az aks install-cli.

Симптомы

При выполнении 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

Причина

Эта ошибка указывает, что вы пытаетесь получить доступ к ресурсам Kubernetes с помощью учетной записи идентификатора Microsoft Entra, которая не имеет необходимых разрешений на основе ролей (RBAC).

Решение

В зависимости от типа RBAC, настроенного для кластера (Kubernetes RBAC или Azure RBAC), могут применяться различные решения. Выполните следующую команду, чтобы определить, какой тип RBAC использует кластер:

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

Решение проблем с разрешениями в кластерах AKS на основе Kubernetes

Если кластер использует RBAC Kubernetes, разрешения для учетной записи пользователя настраиваются с помощью создания ресурсов RoleBinding или ClusterRoleBinding Kubernetes. Дополнительные сведения см . в документации по Kubernetes RBAC.

Кроме того, в интегрированных кластерах с идентификатором Microsoft Entra ресурс ClusterRoleBinding создается автоматически, чтобы предоставить администратору доступ к кластеру членам предварительно указанной группы идентификаторов Microsoft Entra.

Чтобы устранить ошибку "Ошибка с сервера (запрещено)" для конкретного пользователя, используйте один из следующих методов.

Метод 1. Создание настраиваемого ресурса RoleBinding или ClusterRoleBinding

Вы можете создать пользовательский ресурс RoleBinding или ClusterRoleBinding, чтобы предоставить пользователю необходимые разрешения (или группу, из которой является пользователь). Подробные инструкции см. в статье Об управлении доступом на основе ролей Kubernetes с идентификатором Microsoft Entra в Служба Azure Kubernetes.

Метод 2. Добавление пользователя в предварительно назначенную группу администраторов Идентификатора Microsoft Entra

  1. Получите идентификатор предварительно указанной группы администрирования идентификатора Microsoft Entra ID. Для этого выполните следующую команду:

    az aks show -g <CLUSTER_RESOURCE_GROUP> -n <CLUSTER_NAME> --query aadProfile.adminGroupObjectIDs
    
  2. Добавьте пользователя в предварительно назначенную группу администраторов Идентификатора Microsoft Entra с помощью идентификатора группы, полученного на предыдущем шаге. Дополнительные сведения см. в разделе "Добавление участников или владельцев группы".

Решение проблем с разрешениями в кластерах AKS на основе Azure RBAC

Если кластер использует Azure RBAC, разрешения для пользователей настраиваются с помощью создания назначений ролей Azure.

AKS предоставляет набор встроенных ролей, которые можно использовать для создания назначений ролей для пользователей или групп идентификатора Microsoft Entra, чтобы предоставить им доступ к объектам Kubernetes в определенном пространстве имен или в области кластера. Подробные инструкции по назначению встроенных ролей пользователям или группам в кластерах на основе Azure RBAC см. в статье о встроенных ролях AKS.

Кроме того, можно создать собственные пользовательские определения ролей Azure, чтобы обеспечить более детализированное управление разрешениями над определенными типами объектов и операций Kubernetes. Подробные рекомендации по созданию и назначению пользовательских ролей пользователям и группам в кластерах на основе Azure RBAC см. в статье "Создание определений настраиваемых ролей".

Свяжитесь с нами для получения помощи

Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.