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


Использование управляемого удостоверения в Служба Azure Kubernetes (AKS)

для кластеров Служба Azure Kubernetes (AKS) требуется удостоверение Microsoft Entra для доступа к ресурсам Azure, таким как подсистемы балансировки нагрузки и управляемые диски. Управляемые удостоверения для ресурсов Azure — это рекомендуемый способ авторизации доступа из кластера AKS к другим службам Azure.

Управляемое удостоверение можно использовать для авторизации доступа из кластера AKS к любой службе, поддерживающей авторизацию Microsoft Entra, без необходимости управлять учетными данными или включать их в код. Вы назначаете управляемому удостоверению роль управления доступом на основе ролей Azure (Azure RBAC), чтобы предоставить ему разрешения для определенного ресурса в Azure. Например, можно предоставить разрешения управляемому удостоверению для доступа к секретам в хранилище ключей Azure для использования кластером. Дополнительные сведения об Azure RBAC см. в статье Что такое управление доступом на основе ролей в Azure (Azure RBAC)?.

В этой статье показано, как включить следующие типы управляемого удостоверения в новом или существующем кластере AKS:

  • Управляемое удостоверение, назначаемое системой Управляемое удостоверение, назначаемое системой, связано с одним ресурсом Azure, например кластером AKS. Он существует только для жизненного цикла кластера.
  • Управляемое удостоверение, назначаемое пользователем Управляемое удостоверение, назначаемое пользователем, — это автономный ресурс Azure, который кластер AKS может использовать для авторизации доступа к другим службам Azure. Он сохраняется отдельно от кластера AKS и может использоваться несколькими ресурсами Azure.
  • Предварительно созданное управляемое удостоверение kubelet. Предварительно созданное управляемое удостоверение kubelet — это необязательное удостоверение, назначаемое пользователем, которое kubelet может использовать для доступа к другим ресурсам в Azure. Если управляемое удостоверение, назначаемое пользователем, не указано для kubelet, AKS создает удостоверение kubelet, назначаемое пользователем, в группе ресурсов узла.

Дополнительные сведения об управляемых удостоверениях см. в статье "Управляемые удостоверения" для ресурсов Azure.

Обзор

Кластер AKS использует управляемое удостоверение для запроса маркеров из Microsoft Entra. Эти маркеры используются для авторизации доступа к другим ресурсам, работающим в Azure. Роль Azure RBAC можно назначить управляемому удостоверению, чтобы предоставить кластеру разрешения на доступ к определенным ресурсам. Например, если кластеру требуется доступ к секретам в хранилище ключей Azure, можно назначить управляемому удостоверению кластера роль Azure RBAC, которая предоставляет эти разрешения.

Управляемое удостоверение может быть назначено системой или назначаемое пользователем. Эти два типа управляемых удостоверений аналогичны тем, что можно использовать любой тип для авторизации доступа к ресурсам Azure из кластера AKS. Основное различие между ними заключается в том, что управляемое удостоверение, назначаемое системой, связано с одним ресурсом Azure, таким как кластер AKS, а управляемое удостоверение, назначаемое пользователем, является автономным ресурсом Azure. Дополнительные сведения о различиях между типами управляемых удостоверений см. в разделе "Управляемые удостоверения" в управляемых удостоверениях для ресурсов Azure.

Оба типа управляемых удостоверений управляются платформой Azure, чтобы вы могли авторизовать доступ из приложений, не требуя подготовки или смены секретов. Azure управляет учетными данными удостоверения.

При развертывании кластера AKS управляемое удостоверение, назначаемое системой, создается по умолчанию. Вы также можете создать кластер с управляемым удостоверением, назначаемое пользователем.

Кроме того, можно создать кластер с субъектом-службой приложений, а не управляемым удостоверением. Управляемые удостоверения рекомендуется использовать для обеспечения безопасности и удобства использования субъектов-служб. Дополнительные сведения о создании кластера с субъектом-службой см. в статье "Использование субъекта-службы" с Служба Azure Kubernetes (AKS).

Можно обновить существующий кластер, чтобы использовать управляемое удостоверение из субъекта-службы приложений. Вы также можете обновить существующий кластер до другого типа управляемого удостоверения. Если кластер уже использует управляемое удостоверение и удостоверение было изменено, например если вы обновили тип удостоверения кластера, назначаемого системой, назначаемого пользователем, то при переключении компонентов плоскости управления на новое удостоверение возникает задержка. Компоненты плоскости управления продолжают использовать старое удостоверение до истечения срока действия маркера. После обновления маркера они переключятся на новое удостоверение. Этот процесс может занять несколько часов.

Назначаемые системой и назначаемые пользователем типы удостоверений отличаются от удостоверения рабочей нагрузки Microsoft Entra, который предназначен для использования приложением, работающим в модуле pod.

Подготовка к работе

Перед выполнением примеров в этой статье задайте подписку в качестве текущей активной подписки, вызвав команду az account set и передав идентификатор подписки.

az account set --subscription <subscription-id>

Кроме того, создайте группу ресурсов Azure, если у вас ее еще нет, вызвав az group create команду.

az group create \
    --name myResourceGroup \
    --location westus2

Включение управляемого удостоверения, назначаемого системой

Управляемое удостоверение, назначаемое системой, — это удостоверение, связанное с кластером AKS или другим ресурсом Azure. Управляемое удостоверение, назначаемое системой, привязано к жизненному циклу кластера. При удалении кластера управляемое удостоверение, назначаемое системой, также удаляется.

Кластер AKS может использовать управляемое удостоверение, назначаемое системой, для авторизации доступа к другим ресурсам, работающим в Azure. Роль Azure RBAC можно назначить управляемому удостоверению, назначенному системой, чтобы предоставить кластеру разрешения для доступа к определенным ресурсам. Например, если кластеру требуется доступ к секретам в хранилище ключей Azure, можно назначить управляемому удостоверению, назначенному системой, роль RBAC Azure, которая предоставляет эти разрешения.

Включение управляемого удостоверения, назначаемого системой, в новом кластере AKS

Чтобы включить управляемое удостоверение, назначаемое системой, в новом кластере вызовите az aks createимя. Управляемое удостоверение, назначаемое системой, по умолчанию включено в новом кластере.

Создайте кластер AKS с помощью az aks create команды.

az aks create \
    --resource-group myResourceGroup \
    --name myManagedCluster \
    --generate-ssh-keys

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

Обновление существующего кластера AKS для использования управляемого удостоверения, назначаемого системой

Чтобы обновить существующий кластер AKS, использующий субъект-службу для использования управляемого удостоверения, назначаемого системой, выполните az aks update команду с параметром --enable-managed-identity .

az aks update \
    --resource-group myResourceGroup \
    --name myManagedCluster \
    --enable-managed-identity

После обновления кластера для использования управляемого удостоверения, назначаемого системой, а не субъекта-службы, плоскость управления и модули pod используют управляемое удостоверение, назначаемое системой, для авторизации при доступе к другим службам в Azure. Kubelet продолжает использовать субъект-службу, пока не обновите агентпул. Для обновления управляемого удостоверения можно использовать az aks nodepool upgrade --resource-group myResourceGroup --cluster-name myAKSCluster --name mynodepool --node-image-only команду на узлах. Обновление пула узлов приводит к простою кластера AKS, так как узлы в пулах узлов оцеплены, осушены и повторно изображены.

Примечание.

При обновлении кластера следует учитывать следующие сведения:

  • Обновление работает только в том случае, если требуется использовать обновление виртуального жесткого диска. Если вы используете последнюю версию виртуального жесткого диска, необходимо ждать, пока следующий виртуальный жесткий диск не будет доступен для выполнения обновления.

  • Azure CLI гарантирует правильность настройки разрешения надстройки после миграции. Если вы не используете Azure CLI для выполнения операции миграции, необходимо самостоятельно обработать разрешение удостоверения надстройки. Пример использования шаблона Azure Resource Manager (ARM) см. в статье "Назначение ролей Azure с помощью шаблонов ARM".

  • Если кластер использовался --attach-acr для извлечения образов из Реестр контейнеров Azure (ACR), необходимо выполнить az aks update --resource-group myResourceGroup --name myAKSCluster --attach-acr <ACR resource ID> команду после обновления кластера, чтобы позволить созданному kubelet, используемому для управляемого удостоверения, получить разрешение на извлечение из ACR. В противном случае вы не сможете извлечь из ACR после обновления.

Добавление назначения ролей для управляемого удостоверения, назначаемого системой

Роль Azure RBAC можно назначить управляемому удостоверению, назначенному системой, чтобы предоставить разрешения кластера другому ресурсу Azure. Azure RBAC поддерживает встроенные и пользовательские определения ролей, определяющие уровни разрешений. Дополнительные сведения о назначении ролей Azure RBAC см. в статье "Действия по назначению роли Azure".

При назначении роли Azure RBAC управляемому удостоверению необходимо определить область для роли. Как правило, рекомендуется ограничить область роли минимальными привилегиями, необходимыми для управляемого удостоверения. Дополнительные сведения о области ролей Azure RBAC см. в статье "Общие сведения о области azure RBAC".

Когда вы создаете и используете собственную виртуальную сеть, подключенные диски Azure, статический IP-адрес, таблицу маршрутов или удостоверение kubelet, назначаемое пользователем, где ресурсы находятся за пределами группы ресурсов рабочего узла, Azure CLI автоматически добавляет назначение ролей. Если вы используете шаблон ARM или другой метод, используйте идентификатор субъекта управляемого удостоверения для выполнения назначения ролей.

Если вы не используете Azure CLI, но используете собственную виртуальную сеть, подключенные диски Azure, статический IP-адрес, таблицу маршрутов или удостоверение kubelet, назначаемое пользователем, которое находится за пределами группы ресурсов рабочего узла, рекомендуется использовать управляемое удостоверение, назначаемое пользователем для плоскости управления. Когда плоскость управления использует управляемое удостоверение, назначаемое системой, удостоверение создается одновременно с кластером, поэтому назначение роли невозможно выполнить до создания кластера.

Получение идентификатора субъекта управляемого удостоверения, назначаемого системой

Чтобы назначить роль Azure RBAC управляемому удостоверению, назначенному системой, сначала потребуется идентификатор субъекта для управляемого удостоверения. Получите идентификатор субъекта управляемого удостоверения, назначаемого системой кластера, вызвав az aks show команду.

# Get the principal ID for a system-assigned managed identity.
CLIENT_ID=$(az aks show \
    --name myAKSCluster \
    --resource-group myResourceGroup \
    --query identity.principalId \
    --output tsv)

Назначение роли Azure RBAC управляемому удостоверению, назначаемого системой

Чтобы предоставить назначенным системой разрешения управляемого удостоверения ресурсу в Azure, вызовите az role assignment create команду, чтобы назначить роль Azure RBAC управляемому удостоверению.

Для виртуальной сети, подключенного диска Azure, статического IP-адреса или таблицы маршрутов за пределами группы ресурсов рабочего узла по умолчанию необходимо назначить Network Contributor роль в настраиваемой группе ресурсов.

Например, назначьте Network Contributor роль в настраиваемой az role assignment create группе ресурсов с помощью команды. --scope Для параметра укажите идентификатор ресурса для группы ресурсов для кластера.

az role assignment create \
    --assignee $CLIENT_ID \
    --role "Network Contributor" \
    --scope "<resource-group-id>"

Примечание.

Для распространения разрешений, предоставленных управляемому удостоверению кластера, может потребоваться до 60 минут.

Включение управляемого удостоверения, назначаемого пользователем

Управляемое удостоверение, назначаемое пользователем, является автономным ресурсом Azure. При создании кластера с управляемым удостоверением, назначенным пользователем для плоскости управления, ресурс управляемого удостоверения, назначаемый пользователем, должен существовать до создания кластера. Эта функция включает такие сценарии, как создание кластера с пользовательской виртуальной сетью или с исходящим типом определяемой пользователем маршрутизации (UDR).

Создание управляемого удостоверения, назначаемого пользователем

Если у вас еще нет ресурса управляемого удостоверения, назначаемого пользователем, создайте его с помощью az identity create команды.

az identity create \
    --name myIdentity \
    --resource-group myResourceGroup

Выходные данные должны выглядеть примерно так:

{                                  
  "clientId": "<client-id>",
  "clientSecretUrl": "<clientSecretUrl>",
  "id": "/subscriptions/<subscriptionid>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity", 
  "location": "westus2",
  "name": "myIdentity",
  "principalId": "<principal-id>",
  "resourceGroup": "myResourceGroup",                       
  "tags": {},
  "tenantId": "<tenant-id>",
  "type": "Microsoft.ManagedIdentity/userAssignedIdentities"
}

Получение идентификатора субъекта управляемого удостоверения, назначаемого пользователем

Чтобы получить идентификатор субъекта управляемого удостоверения, назначаемого пользователем, вызовите az identity show и выполните запрос к свойству principalId :

CLIENT_ID=$(az identity show \
    --name myIdentity \
    --resource-group myResourceGroup \
    --query principalId \
    --output tsv)

Получение идентификатора ресурса управляемого удостоверения, назначаемого пользователем

Чтобы создать кластер с управляемым удостоверением, назначаемое пользователем, потребуется идентификатор ресурса для нового управляемого удостоверения. Чтобы получить идентификатор ресурса управляемого удостоверения, назначаемого пользователем, вызовите az aks show и запрос к свойству id :

RESOURCE_ID=$(az identity show \
    --name myIdentity \
    --resource-group myResourceGroup \
    --query id \
    --output tsv)

Назначение роли Azure RBAC управляемому удостоверению, назначаемого пользователем

Перед созданием кластера добавьте назначение ролей для управляемого удостоверения, вызвав az role assignment create команду.

В следующем примере роль пользователя секретов Key Vault назначается управляемому удостоверению, назначаемого пользователем, чтобы предоставить ему разрешения на доступ к секретам в хранилище ключей. Назначение роли распространяется на ресурс хранилища ключей:

az role assignment create \
    --assignee $CLIENT_ID \
    --role "Key Vault Secrets User" \
    --scope "<keyvault-resource-id>"

Примечание.

Для распространения разрешений, предоставленных управляемому удостоверению кластера, может потребоваться до 60 минут.

Создание кластера с управляемым удостоверением, назначаемое пользователем

Чтобы создать кластер AKS с управляемым удостоверением, назначенным пользователем, вызовите az aks create команду. --assign-identity Включите параметр и передайте идентификатор ресурса для управляемого удостоверения, назначаемого пользователем:

az aks create \
    --resource-group myResourceGroup \
    --name myManagedCluster \
    --network-plugin azure \
    --vnet-subnet-id <subnet-id> \
    --dns-service-ip 10.2.0.10 \
    --service-cidr 10.2.0.0/24 \
    --assign-identity $RESOURCE_ID \
    --generate-ssh-keys

Примечание.

Регионы USDOD Central, USDOD East и USGov Iowa в облаке Azure для государственных организаций США не поддерживают создание кластера с управляемым удостоверением, назначаемым пользователем.

Обновление существующего кластера для использования управляемого удостоверения, назначаемого пользователем

Чтобы обновить существующий кластер для использования управляемого удостоверения, назначаемого пользователем, вызовите az aks update команду. --assign-identity Включите параметр и передайте идентификатор ресурса для управляемого удостоверения, назначаемого пользователем:

az aks update \
    --resource-group myResourceGroup \
    --name myManagedCluster \
    --enable-managed-identity \
    --assign-identity $RESOURCE_ID

Выходные данные для успешного обновления кластера для использования управляемого удостоверения, назначаемого пользователем, должны выглядеть примерно так:

  "identity": {
    "principalId": null,
    "tenantId": null,
    "type": "UserAssigned",
    "userAssignedIdentities": {
      "/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": {
        "clientId": "<client-id>",
        "principalId": "<principal-id>"
      }
    }
  },

Примечание.

Перенос управляемого удостоверения для плоскости управления с назначаемого системой на назначение пользователем не приводит к простою для пулов элементов управления и агентов. Компоненты плоскости управления продолжают использовать старое назначаемое системой удостоверение до нескольких часов до следующего обновления маркера.

Определение типа управляемого удостоверения, используемого кластером

Чтобы определить, какой тип управляемого удостоверения использует существующий кластер AKS, вызовите команду az aks show и запросите свойство типа удостоверения.

az aks show \
    --name myAKSCluster \
    --resource-group myResourceGroup \
    --query identity.type \
    --output tsv       

Если кластер использует управляемое удостоверение, значение свойства типа будет иметь значение SystemAssigned или UserAssigned.

Если кластер использует субъект-службу, значение свойства типа будет иметь значение NULL. Рассмотрите возможность обновления кластера для использования управляемого удостоверения.

Использование предварительно созданного управляемого удостоверения kubelet

Предварительно созданное удостоверение kubelet — это назначаемое пользователем управляемое удостоверение, которое существует до создания кластера. Эта функция позволяет выполнять такие сценарии, как подключение к Реестр контейнеров Azure (ACR) во время создания кластера.

Примечание.

AKS создает удостоверение kubelet, назначаемое пользователем, в группе ресурсов узла, если не указать собственное управляемое удостоверение kubelet.

Для назначаемого пользователем удостоверения kubelet за пределами группы ресурсов рабочего узла по умолчанию необходимо назначить роль оператора управляемого удостоверения kubelet для управляемого удостоверения уровня управления.

Управляемое удостоверение kubelet

Если у вас нет управляемого удостоверения kubelet, создайте его с помощью az identity create команды.

az identity create \
    --name myKubeletIdentity \
    --resource-group myResourceGroup

Выходные данные должны выглядеть примерно так:

{
  "clientId": "<client-id>",
  "clientSecretUrl": "<clientSecretUrl>",
  "id": "/subscriptions/<subscriptionid>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myKubeletIdentity", 
  "location": "westus2",
  "name": "myKubeletIdentity",
  "principalId": "<principal-id>",
  "resourceGroup": "myResourceGroup",                       
  "tags": {},
  "tenantId": "<tenant-id>",
  "type": "Microsoft.ManagedIdentity/userAssignedIdentities"
}

Назначение роли RBAC управляемому удостоверению kubelet

ACRPull Назначьте роль удостоверения kubelet с помощью az role assignment create команды. Укажите идентификатор субъекта удостоверения kubelet для переменной $KUBELET_CLIENT_ID и укажите идентификатор реестра ACR для переменной $ACR_REGISTRY_ID.

az role assignment create \
    --assignee $KUBELET_CLIENT_ID \
    --role "acrpull" \
    --scope "$ACR_REGISTRY_ID"

Создание кластера для использования удостоверения kubelet

Теперь вы можете создать кластер AKS с существующими удостоверениями. Обязательно укажите идентификатор ресурса управляемого удостоверения для плоскости управления, включив assign-identity аргумент и управляемое удостоверение kubelet с помощью аргумента assign-kubelet-identity .

Создайте кластер AKS с существующими удостоверениями с помощью az aks create команды.

az aks create \
    --resource-group myResourceGroup \
    --name myManagedCluster \
    --network-plugin azure \
    --vnet-subnet-id <subnet-id> \
    --dns-service-ip 10.2.0.10 \
    --service-cidr 10.2.0.0/24 \
    --assign-identity <identity-resource-id> \
    --assign-kubelet-identity <kubelet-identity-resource-id> \
    --generate-ssh-keys

Успешное создание кластера AKS с помощью управляемого удостоверения kubelet должно привести к выводу следующего вида:

  "identity": {
    "principalId": null,
    "tenantId": null,
    "type": "UserAssigned",
    "userAssignedIdentities": {
      "/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": {
        "clientId": "<client-id>",
        "principalId": "<principal-id>"
      }
    }
  },
  "identityProfile": {
    "kubeletidentity": {
      "clientId": "<client-id>",
      "objectId": "<object-id>",
      "resourceId": "/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myKubeletIdentity"
    }
  },

Обновление существующего кластера для использования удостоверения kubelet

Чтобы обновить существующий кластер для использования управляемого удостоверения kubelet, сначала получите текущее управляемое удостоверение уровня управления для кластера AKS.

Предупреждение

Обновление управляемого удостоверения kubelet обновляет пулы узлов кластера AKS, что приводит к простою кластера, так как узлы в пулах узлов оцеплены или переосмыслены и переосмыслены.

  1. Убедитесь, что кластер AKS использует управляемое удостоверение, назначаемое пользователем, с помощью az aks show команды.

    az aks show \
        --resource-group <RGName> \
        --name <ClusterName> \
        --query "servicePrincipalProfile"
    

    Если кластер использует управляемое удостоверение, выходные данные отображаются clientId со значением msi. Если кластер использует субъект-службу, отображается идентификатор объекта. Например:

    # The cluster is using a managed identity.
    {
      "clientId": "msi"
    }
    
  2. Убедившись, что кластер использует управляемое удостоверение, найдите идентификатор ресурса управляемого удостоверения с помощью az aks show команды.

    az aks show --resource-group <RGName> \
        --name <ClusterName> \
        --query "identity"
    

    Для управляемого удостоверения, назначаемого пользователем, выходные данные должны выглядеть примерно так:

    {
      "principalId": null,
      "tenantId": null,
      "type": "UserAssigned",
      "userAssignedIdentities": <identity-resource-id>
          "clientId": "<client-id>",
          "principalId": "<principal-id>"
    },
    
  3. Обновите кластер с помощью существующих удостоверений с помощью az aks update команды. Укажите идентификатор ресурса управляемого удостоверения, назначаемого пользователем, для плоскости управления для аргумента assign-identity . Укажите идентификатор ресурса управляемого удостоверения kubelet для аргумента assign-kubelet-identity .

    az aks update \
        --resource-group myResourceGroup \
        --name myManagedCluster \
        --enable-managed-identity \
        --assign-identity <identity-resource-id> \
        --assign-kubelet-identity <kubelet-identity-resource-id>
    

Выходные данные для успешного обновления кластера с помощью собственного управляемого удостоверения kubelet должны выглядеть следующим образом:

  "identity": {
    "principalId": null,
    "tenantId": null,
    "type": "UserAssigned",
    "userAssignedIdentities": {
      "/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": {
        "clientId": "<client-id>",
        "principalId": "<principal-id>"
      }
    }
  },
  "identityProfile": {
    "kubeletidentity": {
      "clientId": "<client-id>",
      "objectId": "<object-id>",
      "resourceId": "/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myKubeletIdentity"
    }
  },

Примечание.

Если кластер использовался --attach-acr для извлечения изображений из Реестр контейнеров Azure, выполните az aks update --resource-group myResourceGroup --name myAKSCluster --attach-acr <ACR Resource ID> команду после обновления кластера, чтобы позволить созданному kubelet, используемому для управляемого удостоверения, получить разрешение на извлечение из ACR. В противном случае после обновления вы не сможете извлекать объекты из ACR.

Получение свойств удостоверения kubelet

Чтобы получить свойства удостоверения kubelet, вызовите az aks show и запрос к свойству identityProfile.kubeletidentity .

az aks show \
    --name myAKSCluster \
    --resource-group myResourceGroup \
    --query "identityProfile.kubeletidentity"

Предварительно созданные ограничения удостоверений kubelet

Обратите внимание на следующие ограничения для предварительно созданного удостоверения kubelet:

  • Предварительно созданное удостоверение kubelet должно быть назначаемое пользователем управляемое удостоверение.
  • Регионы "Восточная Часть Китая" и "Север Китая" в Microsoft Azure, управляемые 21Vianet, не поддерживаются.

Сводка управляемых удостоверений, используемых AKS

AKS использует несколько управляемых удостоверений для встроенных служб и надстроек.

Идентификация Имя. Вариант использования Разрешения по умолчанию Использование собственного удостоверения
Уровень управления Имя кластера AKS Используется компонентами уровня управления AKS для управления ресурсами кластера, включая подсистемы балансировки нагрузки ingress и общедоступные IP-адреса, управляемые AKS, автомасштабирование кластера, диск Azure, файл, драйверы CSI BLOB-объектов. Роль участника для группы ресурсов узла Поддерживается
kubelet Имя кластера AKS — agentpool Проверка подлинности с помощью Реестр контейнеров Azure (ACR). N/A (для kubernetes версии 1.15+) Поддерживается
Надстройка AzureNPM Удостоверение не требуется. Н/П No
Надстройка Мониторинг сети AzureCNI Удостоверение не требуется. Н/П No
Надстройка azure-policy (привратник) Удостоверение не требуется. Н/П No
Надстройка политика_azure Удостоверение не требуется. Н/П No
Надстройка Calico Удостоверение не требуется. Н/П No
Надстройка маршрутизация приложений Управление сертификатами Azure DNS и Azure Key Vault Роль пользователя секретов Key Vault для Key Vault, роль участника зоны DNZ для зон DNS, роль участника зоны Частная зона DNS для частных зон DNS No
Надстройка HTTPApplicationRouting Управляет необходимыми сетевыми ресурсами. Роль читателя для группы ресурсов узла, роль участника для зоны DNS No
Надстройка Шлюз приложений входящего трафика Управляет необходимыми сетевыми ресурсами. Роль участника для группы ресурсов узла No
Надстройка omsagent Используется для отправки метрик AKS в Azure Monitor. Роль издателя метрик мониторинга No
Надстройка Виртуальный узел (ACIConnector) Управляет необходимыми сетевыми ресурсами для Экземпляры контейнеров Azure (ACI). Роль участника для группы ресурсов узла No
Надстройка Анализ затрат Используется для сбора данных о выделении затрат
Удостоверение рабочей нагрузки Идентификатор рабочей нагрузки Microsoft Entra Позволяет приложениям безопасно получать доступ к облачным ресурсам с помощью идентификатора рабочей нагрузки Microsoft Entra. Н/П No

Внимание

Открытый код управляемое модулем Microsoft Entra pod (предварительная версия) в Служба Azure Kubernetes было устарело 10.24.2022, а проект был архивирован в сентябре 2023 года. Дополнительные сведения см. в уведомлении об отмене. В сентябре 2024 года в управляемой надстройке AKS начинается отмена.

Рекомендуется просмотреть Идентификация рабочей нагрузки Microsoft Entra. Запись Идентификация рабочей нагрузки аутентификации заменяет устаревшую функцию управляемого pod удостоверения (предварительная версия). Запись Идентификация рабочей нагрузки — это рекомендуемый метод, позволяющий приложению, работающему на модуле pod, пройти проверку подлинности в других службах Azure, поддерживающих ее.

Ограничения

  • Перемещение или перенос кластера с поддержкой управляемого удостоверения в другой клиент не поддерживается.

  • Если в кластере включено управляемое удостоверением pod () Microsoft Entra, модули pod node-Managed Identity (aad-pod-identityNMI) изменяют iptables узлов для перехвата вызовов конечной точки метаданных экземпляра Azure (IMDS). Эта конфигурация означает, что любой запрос, сделанный в конечную точку IMDS, перехватывается NMI, даже если определенный модуль pod не используется aad-pod-identity.

    Настраиваемое определение ресурсов AzurePodIdentityException (CRD) можно настроить, чтобы указать, что запросы к конечной точке IMDS, исходящую из меток сопоставления pod, определенных в CRD, должны быть прокси-серверы без обработки в NMI. Исключите системные модули pod с kubernetes.azure.com/managedby: aks меткой в пространстве имен kube-system , aad-pod-identity настроив CRD AzurePodIdentityException. Дополнительные сведения см. в статье Об использовании удостоверений, управляемых pod Microsoft Entra, в Служба Azure Kubernetes.

    Чтобы настроить исключение, установите mic-exception YAML.

  • AKS не поддерживает использование управляемого удостоверения, назначаемого системой, при использовании пользовательской частной зоны DNS.

Следующие шаги

  • Используйте шаблоны Azure Resource Manager для создания кластеров с поддержкой управляемого удостоверения.
  • Узнайте, как использовать kubelogin для всех поддерживаемых методов проверки подлинности Microsoft Entra в AKS.