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


Использование управляемого удостоверения в Служба 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 создает это удостоверение в группе ресурсов для узлов.

Дополнительные сведения об управляемых удостоверениях см. в статье "Управляемые удостоверения" для ресурсов 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 Container Registry (ACR). N/A (для kubernetes версии 1.15+) Поддерживается
Дополнение AzureNPM Удостоверение не требуется. Н/П No
Надстройка Мониторинг сети AzureCNI Удостоверение не требуется. Н/П Нет
Дополнение azure-policy (привратник) Удостоверение не требуется. Н/П Нет
Дополнение политика Azure Удостоверение не требуется. Н/П Нет
Дополнение Calico Удостоверение не требуется. Н/П Нет
Дополнение маршрутизация приложений Управление сертификатами Azure DNS и Azure Key Vault Роль пользователя секретов Key Vault для Key Vault, роль участника зоны DNZ для зон DNS, роль участника зоны Частная зона DNS для частных зон DNS Нет
Дополнение HTTPApplicationRouting Управляет необходимыми сетевыми ресурсами. Роль читателя для группы ресурсов узла, роль участника для зоны DNS Нет
Дополнение Шлюз приложений входящего трафика Управляет необходимыми сетевыми ресурсами. Роль соавтора для группы ресурсов узлового элемента Нет
Надстройка omsagent Используется для отправки метрик AKS в Azure Monitor. Роль издателя метрик мониторинга Нет
Надстройка Виртуальный узел (ACIConnector) Управляет необходимыми сетевыми ресурсами для Экземпляров контейнеров Azure (ACI). Роль участника в группе ресурсов узлов. Нет
Дополнение Анализ затрат Используется для сбора данных о выделении затрат
Идентификация рабочей нагрузки Идентификатор рабочей нагрузки Microsoft Entra Позволяет приложениям безопасно получать доступ к облачным ресурсам с помощью идентификатора рабочей нагрузки Microsoft Entra. Не применяется Нет

Внимание

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

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

Ограничения

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

  • Если в кластере включена управляемая удостоверением pod (aad-pod-identity) Microsoft Entra, модули Node-Managed Identity (NMI) изменяют 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.