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

В этой статье объясняется, как использовать управляемые удостоверения в учетной записи Microsoft пакетная служба Azure или пуле пакетной службы. В этой статье рассматривается, когда следует настраивать управляемые удостоверения в учетной записи пакетной службы и пуле пакетной службы. В ней также описаны различные сценарии поведения, так как использование управляемого удостоверения может привести к путанице в некоторых ситуациях сбоя.

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

Настройка учетной записи хранения для использования с учетной записью пакетной службы

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

Чтобы завершить эту настройку, выполните следующие действия.

  1. В портал Azure найдите и выберите Учетные записи пакетной службы.

  2. В списке учетных записей пакетной службы выберите имя учетной записи пакетной службы.

  3. В области навигации учетной записи пакетной службы найдите заголовок Параметры и выберите Учетная запись хранения.

  4. В разделе Сведения об учетной записи хранения выберите Выбрать учетную запись хранения.

  5. После завершения выбора учетной записи хранения вернитесь в раздел Сведения об учетной записи хранения и измените поле режим проверки подлинности на Управляемое удостоверение учетной записи пакетной службы.

Настройка управляемого удостоверения в учетной записи пакетной службы

Примечание.

В этом разделе рассматривается взаимодействие между учетной записью пакетной службы и службой хранилища Azure или Azure Key Vault. Сведения о взаимодействии между узлами пакетной службы и другими ресурсами Azure см. в следующем разделе (Настройка управляемого удостоверения в пуле пакетной службы).

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

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

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

  1. В портал Azure найдите и выберите Учетные записи пакетной службы.

  2. В списке учетных записей пакетной службы выберите имя учетной записи пакетной службы.

  3. В области навигации учетной записи пакетной службы найдите заголовок Параметры и выберите Удостоверение.

  4. В заголовке Тип удостоверения выберите Системное назначение (для управляемого удостоверения, назначаемого системой) или Назначаемое пользователем (для управляемого удостоверения, назначаемого пользователем).

  5. После завершения настройки вернитесь на страницу обзора учетной записи пакетной службы. В разделе Основные компоненты страницы выберите Представление JSON. Представление управляемого удостоверения в формате JSON будет отображаться в одном из следующих форматов:

    Управляемое удостоверение, назначаемое системой
        "identity": {
            "principalId": "<principal-guid>",
            "tenantId": "<tenant-guid>",
            "type": "SystemAssigned"
        }
    
    Управляемое удостоверение, назначаемое пользователем
        "identity": {
            "type": "UserAssigned",
            "userAssignedIdentities": {
                "/subscriptions/<subscription-guid>/resourceGroups/<resource-group-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<user-assigned-identity-name>": {
                    "principalId": "<principal-guid>",
                    "clientId": "<client-guid>"
                }
            }
        }
    

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

Функция управляемого удостоверения учетной записи пакетной службы будет использоваться для определенных задач, таких как отправка пакета приложения в учетную запись пакетной службы. Чтобы отправить пакет приложения, перейдите на страницу обзора учетной записи пакетной службы в портал Azure, выберите Добавить приложения>, а затем следуйте инструкциям на портале, чтобы завершить отправку. пакетная служба Azure хранит пакет приложения в учетной записи автоматического создания. Так как вы ранее установили режим проверки подлинности учетной записи пакетной службы , управляемое удостоверение учетной записи пакетной службы, система получает учетные данные из управляемого удостоверения учетной записи пакетной службы для доступа к учетной записи автосбора.

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

  1. В портал Azure найдите и выберите Учетные записи хранения.

  2. В списке учетных записей хранения выберите имя учетной записи автоматического хранения.

  3. В области навигации учетной записи хранения выберите контроль доступа (IAM).

  4. На странице контроль доступа (IAM) нажмите кнопку Проверить доступ.

  5. В области Проверка доступа выберите параметр Управляемое удостоверение .

  6. В поле Управляемое удостоверение выберите управляемое удостоверение, для которого требуется просмотреть разрешения.

  7. На вкладке Текущие назначения ролей проверка, есть ли назначенная роль с достаточными разрешениями для отправки пакета приложения. Если такого назначения ролей нет, в уведомлениях портал Azure появится следующее сообщение об ошибке при попытке отправить пакет приложения в учетную запись пакетной службы:

    Ошибка отправки для <.zipимени> пакета

    Во время отправки файла возникла непредвиденная ошибка.

При возникновении этой ошибки проверка АРХИВ HTTP-файл (.har) запроса на отправку. Появится запрос POST, содержащий префикс batch имени (например, batch?api-version=2020-06-01), и вы увидите состояние HTTP 200. В полезных данных вы заметите фактический запрос PUT, отправленный в учетную запись пакетной службы. В ответе на запрос PUT будет отображаться состояние HTTP 409. Полный ответ об ошибке будет выглядеть следующим образом:

{responses: [{name: "<response-guid>", httpStatusCode: 409,...}]}
  {responses: [{name: "<response-guid>", httpStatusCode: 409,...}]}
    0: {name: "<response-guid>", httpStatusCode, 409,...}
      content: {error: {code: "AutoStorageNoPermission",...}}
        error: {code: "AutoStorageNoPermission",...}
          code: "AutoStorageNoPermission"
          message: "The managed identity does not have permission to access auto storage account. Please use Azure RBAC to assign the managed identity access to auto storage."
          target: "BatchAccount"
        contentLength: 318

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

Использование управляемого удостоверения для доступа к хранилищу ключей

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

Настройка управляемого удостоверения в пакетном пуле

Примечание.

Взаимодействие, описанное в этом разделе, — это взаимодействие между пакетным узлом и другими ресурсами Azure. Сведения о взаимодействии между учетной записью пакетной службы и службой хранилища Azure или Key Vault Azure см. в предыдущем разделе (Настройка управляемого удостоверения в учетной записи пакетной службы).

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

Если для режима проверки подлинности учетной записи автосбора задано управляемое удостоверение учетной записи пакетной службы, пакетная служба Azure узлы получают маркеры управляемого удостоверения. Узлы используют маркеры управляемых удостоверений для проверки подлинности Microsoft Entra с помощью службы метаданных экземпляров Azure (IMDS).

Пул пакетной службы Azure поддерживает только назначаемую пользователем версию управляемого удостоверения. Поэтому необходимо создать управляемое удостоверение, назначаемое пользователем, в том же клиенте, что и учетная запись пакетная служба Azure. Кроме того, необходимо предоставить разрешение в плоскости данных хранилища (например, через владельца данных BLOB-объекта хранилища) управляемому удостоверению, назначаемому пользователем.

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

Для назначаемого пользователем удостоверения, используемого вычислительными узлами для доступа к автосхранилище, необходимо назначить эту ссылку на удостоверение пулам с вычислительными узлами, которым требуется доступ к автосбору. (Сведения об этом требовании описаны в REST API для учетной записи пакетной службы — Update's AutoStorageBaseProperties, в свойствеnodeIdentityReference.) Поэтому необходимо настроить ссылку на удостоверение узла в двух местах на портал Azure:

  • Ссылка на удостоверение узла в учетной записи автосбора пакетной учетной записи

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

Важно!

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

Настройка ссылки на удостоверение узла учетной записи автоматического ведения журналов

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

  1. В портал Azure найдите и выберите Учетные записи пакетной службы.

  2. В списке учетных записей пакетной службы выберите имя учетной записи пакетной службы.

  3. В области навигации учетной записи пакетной службы найдите заголовок Параметры и выберите Учетная запись хранения.

  4. В разделе Сведения об учетной записи хранения выберите Выберите учетную запись хранения, а затем выберите учетную запись автоматического хранения.

  5. Перейдите в заголовок Ссылка на удостоверение узла и нажмите кнопку Добавить.

  6. Завершите процесс добавления новой ссылки на удостоверение узла, назначаемого пользователем.

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

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

  1. В портал Azure найдите и выберите Учетные записи пакетной службы.

  2. В списке учетных записей пакетной службы выберите имя учетной записи пакетной службы.

  3. В области навигации учетной записи пакетной службы найдите заголовок Компоненты и выберите Пулы.

  4. На странице пула пакетов выберите Добавить.

  5. На странице Добавление пула введите идентификатор пула. В поле Удостоверение выберите Назначено пользователю.

  6. Найдите заголовок Управляемое удостоверение, назначаемое пользователем , и нажмите кнопку Добавить.

  7. Завершите процесс добавления ранее созданной ссылки на удостоверения узла в пул пакетной службы.

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

Управляемое удостоверение в пакетном узле можно использовать разными способами, например для следующих функций:

  • Скачивание пакетов приложений из пула пакетной службы
  • Скачивание файлов ресурсов задач из пула пакетной службы

Скачивание пакетов приложений из пула пакетной службы

При создании пула пакетной службы можно указать пакеты приложений на уровне пула. Пакеты приложений будут загружены из учетной записи автосторации и установлены на всех узлах этого пула. Дополнительные сведения см. в разделе Отправка приложений и управление ими. Передайте пакеты приложений в учетную запись пакетной службы, прежде чем ссылаться на них во время создания пула пакетной службы. Чтобы добавить пакеты приложений в пул пакетной службы, перейдите на страницу Добавление пула учетной записи пакетной службы, найдите заголовок OPTIONAL SETTINGS (Необязательные параметры), а затем выберите Пакеты приложений.

Сценарии поведения

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

  • Указывает, задано ли управляемое удостоверение в ссылке на удостоверение узла

  • Имеет ли управляемое удостоверение достаточные разрешения в учетной записи автосбора.

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

В портал Azure состояния загрузки узла и пакета можно найти на странице обзора узла пакетной службы. Чтобы открыть эту страницу, найдите заголовок Общие в области навигации пула пакетов, выберите Узлы, а затем выберите имя узла, который нужно просмотреть.

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

Номер сценария Использование управляемого удостоверения Разрешения управляемого удостоверения в учетной записи автоматического заполнения Спецификация создания пула Состояние узла Состояние загрузки пакета
1 Дано в справочнике по удостоверениям узла Достаточные разрешения Создано в пуле с помощью того же управляемого удостоверения Успешно запущено Скачан на узел в корневом каталоге или каталоге приложений
2 Дано в справочнике по удостоверениям узла Недостаточно разрешений Создано в пуле с помощью того же управляемого удостоверения Запущено успешно, но в состоянии простоя Не загружено на узел
3 Не указан в справочнике по удостоверениям узла Достаточные или недостаточные разрешения Создано в пуле с использованием того же или другого управляемого удостоверения Зависание в начальном состоянии на неопределенный срок Не загружено на узел
4 Дано в справочнике по удостоверениям узла Достаточные или недостаточные разрешения Создано в пуле с использованием другого управляемого удостоверения Неиспользуемое состояние Не загружено на узел

В сценарии 3, когда служба пакетная служба Azure пытается запустить узел, ссылка на удостоверение узла становится null. Это приводит к тому, что узел зависает в начальном состоянии. Чтобы проверить это состояние, перейдите на страницу обзор узла пула пакетов и выберите Отправить журналы пакетной службы, чтобы отправить журналы пакетной службы в контейнер хранилища. В области Отправка журналов пакетной службы выберите контейнер службы хранилища Azure, нажмите кнопку Выбрать контейнер хранилища , а затем выберите и скачайте файл agent-debug.log из контейнера хранилища. Файл журнала будет содержать несколько записей с сообщением "Пул еще не полностью присоединен, health=Status.TvmJoinPoolInProgress".

В сценарии 4 можно определить несколько управляемых удостоверений при создании пула пакетной службы. Что делать, если управляемое удостоверение, которое вы определяете в ссылке на удостоверение узла, не добавляется в удостоверение пула? В этом случае служба пакетная служба Azure не может найти правильное управляемое удостоверение, соответствующее тому, которое определено в ссылке на узел. Вместо этого служба отобразит следующее сообщение об ошибке узла:

Узел имеет 1 ошибку.

Произошла ошибка на узле

Код: ApplicationPackageError

Сообщение:
Один или несколько пакетов приложений, указанных для пула, недопустимы

Скачивание файлов ресурсов задач из пула пакетной службы

При создании задачи можно указать файлы ресурсов для использования в задаче. Эти файлы автоматически скачиваются на узел из учетной записи автосбора перед выполнением команды задачи. Дополнительные сведения см. в разделе Задачи в пакетная служба Azure. Чтобы указать файлы ресурсов задачи, выполните следующие действия.

  1. В портал Azure найдите и выберите Учетные записи пакетной службы.

  2. В списке учетных записей пакетной службы выберите имя учетной записи пакетной службы.

  3. В области навигации учетной записи пакетной службы найдите заголовок Компоненты и выберите Задания.

  4. На странице Задания выберите Добавить.

  5. Заполните обязательные поля в области Добавление заданий и нажмите кнопку ОК.

  6. В области навигации пакетного задания найдите заголовок Общие и выберите Задачи.

  7. На странице Задачи выберите Добавить.

  8. В области Добавление задач заполните все обязательные поля. Затем найдите заголовок РАСШИРЕННЫЕ ПАРАМЕТРЫ и выберите Файлы ресурсов.

    портал Azure снимок экрана: страница

Файлы ресурсов можно указать с помощью методов, описанных в следующей таблице.

Метод Заметки
Контейнер autostorage Ссылка на удостоверение отображается как Нет, и ее нельзя изменить. Узел обращается к учетной записи автосбора для получения файлов ресурсов.
URL-адрес контейнера или URL-адрес HTTP Вы можете определить URL-адрес другой учетной записи хранения Azure, если в этой учетной записи хранения Azure было настроено достаточно разрешений для ссылки на удостоверение, и удостоверение было добавлено в пул пакетной службы.

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

При указании определений файлов ресурсов параметры префикса BLOB-объекта и пути к файлу являются необязательными. Префикс большого двоичного объекта используется для фильтрации определенных BLOB-объектов. Путь к файлу используется для создания вложенной папки в узле для хранения файлов BLOB-объектов. Если путь к файлу не определен, файлы будут храниться по пути для каждой задачи (root/wd).

Тип файла ресурса Значение Префикс BLOB-объекта Путь к файлу Режим файла (только для Linux) Справочник по удостоверениям
AutoStorageContainerName <name-of-app> mypath1
StorageContainerUrl <https:// account-name.blob.core.windows.net/con> mypath2 /subscriptions/<subscription-guid>/resourceGroups/<resource-group-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<user-assigned-identity-name>
HttpUrl <https:// account-name.blob.core.windows.net/con/api.crt> mypath3 /subscriptions/<subscription-guid>/resourceGroups/<resource-group-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<user-assigned-identity-name>

Сценарии поведения

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

Номер сценария Использование управляемого удостоверения Разрешения управляемого удостоверения в учетной записи автоматического заполнения Спецификация создания пула Результат
1 Дано в справочнике по удостоверениям узла Достаточные разрешения Создано в пуле с помощью того же управляемого удостоверения Файл BLOB-объекта успешно скачан на узел в каталоге root/wd/<file-path> , как показано на странице обзора задачи.
2 Дано в справочнике по удостоверениям узла Недостаточно разрешений Создано в пуле с помощью того же управляемого удостоверения Сбой задачи из-за ошибки ResourceContainerAccessDenied , сообщения об ошибке "Доступ для одного из указанных контейнеров BLOB-объектов Azure запрещен"
3 Не указан в справочнике по удостоверениям узла Достаточные или недостаточные разрешения Создано в пуле с использованием того же или другого управляемого удостоверения Сбой задачи из-за ошибки ResourceContainerAccessDenied , сообщения об ошибке "Доступ для одного из указанных контейнеров BLOB-объектов Azure запрещен"
4 Дано в справочнике по удостоверениям узла Достаточные или недостаточные разрешения Создано в пуле с использованием другого управляемого удостоверения Сбой задачи из-за ошибки ResourceContainerListMiscError , сообщение об ошибке "Другая ошибка, обнаруженная при перечислении одного из указанных контейнеров BLOB-объектов Azure"

В сценариях, в которых задача извлечения BLOB-объекта завершается сбоем, перейдите на страницу Задачи портал Azure, а затем выберите имя задачи, которое отображается рядом с кодом ошибки. Затем в области навигации страницы задач найдите заголовок Общие , выберите Свойства, а затем — Представление JSON. При отображении свойств в формате JSON отображается соответствующее сообщение об ошибке и другие сведения о сбое задачи. Например, в сценарии 4 ошибка ResourceContainerListMiscError завершается сбоем из-за ошибки "Http 400 Bad Request". Это связано с тем, что управляемое удостоверение, определенное в ссылке на удостоверение узла, не соответствует ни одному из управляемых удостоверений, определенных в конфигурации удостоверений пула.

Убедитесь, что управляемое удостоверение может получить доступ к ресурсам Azure

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

Примечание.

Эта процедура эмулирует последний шаг, который необходимо выполнить, чтобы получить маркер с допустимым идентификатором удостоверения для доступа к учетной записи хранения и проверка для получения достаточных разрешений. Если удостоверение не определено в ссылке на удостоверение узла, узел не может получить идентификатор удостоверения. В этом случае весь процесс уже заблокирован, прежде чем вы сможете выполнить последний шаг. Перед выполнением этой процедуры убедитесь, что удостоверение определено в ссылке на удостоверение узла.

  1. Используйте протокол удаленного рабочего стола (RDP) для подключения к узлу.

  2. В Postman отправьте запрос GET, содержащий Metadata: true заголовок, по следующему URL-адресу:

    http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01& resource=https://storage.azure.com/& mi_res_id=/subscriptions/<subscription-guid>/resourceGroups/<resource-group-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<user-assigned-identity-name>

    IP-адрес 169.254.169.254 также называется службой метаданных экземпляров Azure (IMDS). IMDS предоставляет сведения об экземпляре виртуальной машины. Если у вас есть сведения об этом экземпляре виртуальной машины, вы можете использовать виртуальную машину для запроса маркеров для управляемого удостоверения.

    Значение mi_res_id параметра в URL-адресе выделено полужирным шрифтом. Это идентификатор ресурса управляемого удостоверения, назначаемого пользователем, определенного в удостоверении пула. Чтобы найти этот идентификатор ресурса вместе с идентификатором клиента и идентификатором субъекта, выполните следующие действия.

    1. В портал Azure найдите и выберите Учетные записи пакетной службы.

    2. В списке учетных записей пакетной службы выберите имя учетной записи пакетной службы.

    3. В области навигации учетной записи пакетной службы найдите заголовок Компоненты и выберите Пулы.

    4. В списке пулов пакетной службы выберите имя пула пакетной службы.

    5. В области навигации пула пакетов найдите заголовок Общие и выберите Свойства.

    6. На странице свойств пула выберите Представление JSON.

    7. В тексте JSON найдите identity/userAssignedIdentities список. Для назначаемого пользователем управляемого удостоверения, которое вы используете, скопируйте значения следующих свойств:

      • resourceId
      • clientId (guid)
      • principalId (guid)

    После отправки URL-адреса в Postman текст ответа JSON будет содержать записи для access_token (длинной текстовой строки, также известной как токен носителя) и client_id (GUID). Значение client_id ответа должно совпадать со значением clientId , скопированным на странице свойств пула пакетов.

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

    Вы определили несколько управляемых удостоверений в удостоверении пула, но не указали управляемое удостоверение в URL-адресе? В этом случае Postman отображает состояние 400 Bad Request :

    Снимок экрана Postman: состояние

  3. Скопируйте полный токен носителя, а затем протестируйте его в Postman, извлекая большой двоичный объект из учетной записи автоматического создания. В этом примере управляемое удостоверение не имеет разрешения на доступ к хранилищу. Таким образом, учетная запись autostorage возвращает ошибку HTTP 403 (ошибка AuthorizationPermissionMismatch, сообщение "Этот запрос не авторизован на выполнение этой операции с помощью этого разрешения").

    Примечание.

    Для получения большого двоичного объекта требуется заголовок x-ms-version . Дополнительные сведения см. в разделе API получения BLOB-объектов службы хранилища Azure.

    Снимок экрана Postman: состояние 403 AuthorizationPermissionMismatch, если управляемое удостоверение не авторизовано для доступа к учетной записи автоматического заполнения.

Заявление об отказе от ответственности за сведения о продуктах сторонних производителей

В этой статье упомянуты программные продукты независимых производителей. Корпорация Майкрософт не дает никаких гарантий, подразумеваемых и прочих, относительно производительности и надежности этих продуктов.

Заявление об отказе от ответственности за контактные данные сторонней организации

Корпорация Майкрософт предоставляет сторонние контактные данные, чтобы помочь вам найти дополнительные сведения по этой теме. Эти данные могут быть изменены без предварительного уведомления. Корпорация Майкрософт не гарантирует точность контактной информации сторонних поставщиков.

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

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