Использование управляемых удостоверений в учетной записи или пуле пакетная служба Azure
В этой статье объясняется, как использовать управляемые удостоверения в учетной записи microsoft пакетная служба Azure или пакетном пуле. В статье описывается, когда следует настроить управляемые удостоверения в учетной записи пакетной службы и пул пакетной службы. Он также описывает различные сценарии поведения, так как использование управляемого удостоверения может привести к путанице в некоторых ситуациях сбоя.
Предварительные требования
- Учетная запись пакетная служба Azure.
- Учетная запись хранения Azure.
- Постман.
Настройка учетной записи хранения для использования с учетной записью пакетной службы
Если вы хотите настроить управляемые удостоверения в учетной записи пакетной службы, необходимо сначала настроить учетную запись хранения, чтобы она использовалась в качестве автоматической записи пакетной службы. Эта автоматическая история используется для хранения пакетов приложений и файлов ресурсов задач. Чтобы настроить автоматическое создание журналов, необходимо связать учетную запись хранения с учетной записью пакетной службы. Кроме того, необходимо задать учетную запись автосбора для использования управляемых удостоверений пакетной учетной записи в качестве режима проверки подлинности.
Чтобы завершить эту настройку, выполните следующие действия.
В портал Azure найдите и выберите учетные записи пакетной службы.
В списке учетных записей пакетной службы выберите имя учетной записи пакетной службы.
В области навигации учетной записи пакетной службы найдите заголовок "Параметры " и выберите учетную запись хранения.
В разделе "СВЕДЕНИЯ ОБ УЧЕТНОЙ ЗАПИСИ ХРАНЕНИЯ" выберите "Выбрать учетную запись хранения".
После завершения выбора учетной записи хранения вернитесь в раздел "СВЕДЕНИЯ ОБ УЧЕТНОЙ ЗАПИСИ ХРАНЕНИЯ" и измените поле режима проверки подлинности на управляемое удостоверение учетной записи пакетной службы.
Настройка управляемого удостоверения в учетной записи пакетной службы
Примечание.
Взаимодействие, описанное в этом разделе, состоит из учетной записи пакетной службы и служба хранилища Azure или Azure Key Vault. Сведения о взаимодействии между узлами пакетной службы и другими ресурсами Azure см. в следующем разделе (настройка управляемого удостоверения в пуле пакетной службы).
Настраивая управляемое удостоверение в учетной записи пакетной службы, вы предоставляете разрешение для учетной записи пакетной службы для проверки подлинности только в других службах. Эта конфигурация не позволяет проходить проверку подлинности на пакетных узлах или виртуальных машинах пула пакетных пулов (виртуальных машинах).
При настройке управляемого удостоверения в учетной записи пакетной службы можно настроить два варианта: включить управляемое удостоверение, назначаемое системой, или создать отдельное управляемое удостоверение , назначаемое пользователем, для учетной записи пакетной службы.
Чтобы настроить управляемое удостоверение в учетной записи пакетной службы, выполните следующие действия.
В портал Azure найдите и выберите учетные записи пакетной службы.
В списке учетных записей пакетной службы выберите имя учетной записи пакетной службы.
В области навигации учетной записи пакетной службы найдите заголовок "Параметры " и выберите "Удостоверение".
В заголовке типа удостоверения выберите " Назначенная системой" (для управляемого удостоверения, назначаемого системой) или " Пользователь" (для управляемого удостоверения, назначаемого пользователем).
После завершения этой настройки вернитесь на страницу обзора учетной записи пакетной службы. В разделе "Основные сведения" страницы выберите "Представление 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 хранит пакет приложения в своей учетной записи автосбора. Так как вы ранее установили режим проверки подлинности учетной записи пакетной службы на управляемое удостоверение учетной записи пакетной службы, система извлекает учетные данные из управляемого удостоверения учетной записи пакетной службы для доступа к учетной записи автосбора.
Возможно, потребуется проверить, имеет ли управляемое удостоверение достаточно разрешений для учетной записи автосбора. Чтобы проверить наличие этих разрешений, выполните следующие действия.
В портал Azure найдите и выберите учетные записи хранения.
В списке учетных записей хранения выберите имя учетной записи автосбора.
В области навигации учетной записи хранения выберите контроль доступа (IAM).
На странице контроль доступа (IAM) нажмите кнопку "Проверить доступ".
В области "Проверить доступ" выберите параметр "Управляемое удостоверение".
В поле "Управляемое удостоверение" выберите управляемое удостоверение , для которого требуется просмотреть разрешения.
На вкладке "Назначение текущих ролей" проверьте, есть ли назначенная роль с достаточными разрешениями для отправки пакета приложения. Если такого назначения роли нет, в уведомлениях портал Azure при попытке отправить пакет приложения в учетную запись пакетной службы появится следующее сообщение об ошибке:
Ошибка отправки для <имени> пакета.zip
При отправке файла произошла непредвиденная ошибка.
При возникновении этой ошибки отправки проверьте файл HTTP Archive (.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
Эта ошибка означает, что управляемое удостоверение, назначаемое системой или назначаемое пользователем, в учетной записи пакетной службы не имеет достаточно разрешений для выполнения действий в учетной записи автоматического анализа данных.
Использование управляемого удостоверения для доступа к хранилищу ключей
Сведения об использовании управляемого удостоверения для доступа к Azure Key Vault см. в статье "Настройка управляемых клиентом ключей для учетной записи пакетная служба Azure с помощью Azure Key Vault и управляемого удостоверения".
Настройка управляемого удостоверения в пуле пакетной службы
Примечание.
Взаимодействие, описанное в этом разделе, находится между пакетным узлом и другими ресурсами Azure. Сведения о взаимодействии между учетной записью пакетной службы и служба хранилища Azure или Azure Key Vault см. в предыдущем разделе (настройка управляемого удостоверения в учетной записи пакетной службы).
Если вы хотите разрешить пакетная служба Azure узлам доступ к другим ресурсам Azure, используйте управляемое удостоверение, настроенное в пуле пакетная служба Azure.
Если для режима проверки подлинности учетной записи автосбора задано управляемое удостоверение учетной записи пакетной службы, пакетная служба Azure узлы получают маркеры управляемого удостоверения. Узлы используют маркеры управляемого удостоверения для проверки подлинности через проверку подлинности Microsoft Entra с помощью службы метаданных экземпляра Azure (IMDS).
Пул пакетной службы Azure поддерживает только назначенную пользователем версию управляемого удостоверения. Поэтому необходимо создать управляемое удостоверение, назначаемое пользователем, в том же клиенте, что и ваша учетная запись пакетная служба Azure. Кроме того, необходимо предоставить разрешение на плоскость данных хранилища (например, через владельца данных BLOB-объектов хранилища) управляемому удостоверению, назначенному пользователем.
Связывание управляемого удостоверения с узлом, который обращается к учетной записи автосбора
Для удостоверения, назначаемого пользователем, используемого вычислительными узлами для доступа к автосторажу, необходимо назначить эту ссылку на удостоверения пулам с вычислительными узлами, которым требуется доступ к автосбору. (Сведения об этом требовании описаны в REST API для Учетная запись пакетной службы — обновление autoStorageBaseProperties в свойствеnodeIdentityReference
.) Поэтому необходимо настроить ссылку на удостоверение узла в двух местах в портал Azure:
Ссылка на удостоверение узла в учетной записи автоматического управления учетной записью пакетной службы
Назначаемое пользователем управляемое удостоверение в пуле пакетной службы
Внимание
В удостоверении пула можно определить несколько управляемых удостоверений, назначаемых пользователем. Однако тот, который определен в ссылке на удостоверение узла, также должен быть определен в идентификаторе пула.
Настройка ссылки на удостоверение узла учетной записи autostorage
Чтобы настроить ссылку на удостоверение узла в учетной записи автосторжа, выполните следующие действия:
В портал Azure найдите и выберите учетные записи пакетной службы.
В списке учетных записей пакетной службы выберите имя учетной записи пакетной службы.
В области навигации учетной записи пакетной службы найдите заголовок "Параметры " и выберите учетную запись хранения.
В разделе "СВЕДЕНИЯ ОБ УЧЕТНОЙ ЗАПИСИ ХРАНЕНИЯ" выберите "Выбрать учетную запись хранения" и выберите учетную запись автоподбора.
Перейдите к заголовку ссылки на удостоверение узла и нажмите кнопку "Добавить".
Завершите процесс добавления новой ссылки на удостоверение узла, назначаемого пользователем.
Настройка управляемого удостоверения, назначаемого пользователем пула пакетной службы
Чтобы настроить управляемое удостоверение, назначаемое пользователем в пуле пакетной службы, выполните следующие действия.
В портал Azure найдите и выберите учетные записи пакетной службы.
В списке учетных записей пакетной службы выберите имя учетной записи пакетной службы.
В области навигации учетной записи пакетной службы найдите заголовок компонентов и выберите пулы.
На странице пакетного пула нажмите кнопку "Добавить".
На странице "Добавление пула" введите идентификатор пула. В поле "Удостоверение" выберите "Назначаемый пользователь".
Найдите заголовок управляемого удостоверения, назначаемого пользователем, и нажмите кнопку "Добавить".
Завершите процесс добавления ссылки на удостоверение узла, созданного ранее в пул пакетной службы.
Варианты использования управляемого удостоверения в пакетном узле
Управляемое удостоверение можно использовать в пакетном узле разными способами, например для следующих функций:
- Скачивание пакетов приложений из пула пакетных пакетов
- Скачивание файлов ресурсов задач из пула пакетной службы
Скачивание пакетов приложений из пула пакетных пакетов
При создании пакетного пула можно указать пакеты приложений на уровне пула. Пакеты приложений будут скачаны из учетной записи автосбора и установлены на всех узлах в этом пуле. Дополнительные сведения см. в статье "Отправка приложений и управление ими". Перед тем как отправить пакеты приложений в учетную запись пакетной службы, перед их использованием во время создания пула пакетной службы. Чтобы добавить пакеты приложений в пул пакетной службы, перейдите на страницу "Добавить пул" учетной записи пакетной службы, найдите заголовок OPTIONAL SETTINGS и выберите пакеты приложений.
Сценарии поведения
В этом разделе описывается состояние работы узла и состояние скачивания пакета приложения для следующих параметров управляемого удостоверения:
Указывает, задано ли управляемое удостоверение в справочнике по удостоверениям узла
Имеет ли управляемое удостоверение достаточные разрешения в учетной записи автосбора
Создание пула пакетной службы с помощью одного управляемого удостоверения или другого управляемого удостоверения
В портал Azure можно найти состояния загрузки узла и пакета на странице обзора узла пакетной службы. Чтобы добраться до этой страницы, найдите заголовок области навигации пула пакетной службы, выберите узлы и выберите имя узла, который вы хотите просмотреть.
В следующей таблице описаны четыре сценария поведения, которые включают управляемые удостоверения и пакеты приложений в пакетном пуле.
Номер сценария | Использование управляемого удостоверения | Разрешения управляемого удостоверения в учетной записи автосбора | Спецификация создания пула | Состояние узла | Состояние скачивания пакета |
---|---|---|---|---|---|
1 | Дано в справочнике по удостоверениям узла | Достаточные разрешения | Создание в пуле с помощью того же управляемого удостоверения | Успешно запущен | Скачанный на узел в каталоге root/applications |
2 | Дано в справочнике по удостоверениям узла | Недостаточно разрешений | Создание в пуле с помощью того же управляемого удостоверения | Успешно запущен, но в состоянии простоя | Не скачанный на узел |
3 | Не указан в справочнике по удостоверениям узла | Достаточно или недостаточно разрешений | Создание в пуле с помощью одного или другого управляемого удостоверения | Застрял на неопределенный срок в начальном состоянии | Не скачанный на узел |
4 | Дано в справочнике по удостоверениям узла | Достаточно или недостаточно разрешений | Создание в пуле с помощью другого управляемого удостоверения | Неиспользуемое состояние | Не скачанный на узел |
В сценарии 3, когда служба пакетная служба Azure пытается запустить узел, ссылка на удостоверение узла становится null. Это приводит к тому, что узел остается застрял в начальном состоянии. Чтобы проверить это состояние, перейдите на страницу обзора узла пула пакетного пула, а затем выберите "Отправить журналы пакетной службы", чтобы отправить журналы пакетной службы в контейнер хранилища. В области "Отправить пакетные журналы" выберите контейнер служба хранилища Azure, нажмите кнопку "Выбрать контейнер хранилища", а затем выберите и скачайте файл agent-debug.log из контейнера хранилища. Файл журнала будет содержать несколько записей, имеющих сообщение "пул не полностью присоединен, health=Status.TvmJoinPoolInProgress".
В сценарии 4 можно определить несколько управляемых удостоверений при создании пула пакетной службы. Что делать, если управляемое удостоверение, которое вы определяете в ссылке на удостоверения узла, не добавляется в удостоверение пула? В этом случае служба пакетная служба Azure не может найти правильное управляемое удостоверение, соответствующее указанному в ссылке на узел. Вместо этого служба отобразит следующее сообщение об ошибке узла:
Узел имеет 1 ошибки.
На узле возникла ошибка
Код: ApplicationPackageError
Сообщение:
Один или несколько пакетов приложений, указанных для пула, недопустимы
Скачивание файлов ресурсов задач из пула пакетной службы
При создании задачи можно указать файлы ресурсов, которые будут использоваться в задаче. Эти файлы загружаются автоматически на узел из учетной записи автосбора перед выполнением команды задачи. Дополнительные сведения см. в разделе "Задачи" в пакетная служба Azure. Чтобы указать файлы ресурсов задач, выполните следующие действия.
В портал Azure найдите и выберите учетные записи пакетной службы.
В списке учетных записей пакетной службы выберите имя учетной записи пакетной службы.
В области навигации учетной записи пакетной службы найдите заголовок "Компоненты " и выберите "Задания".
На странице "Задания" нажмите кнопку "Добавить".
Заполните обязательные поля в области "Добавление заданий " и нажмите кнопку "ОК".
В области навигации пакетного задания найдите заголовок "Общие " и выберите "Задачи".
На странице "Задачи" нажмите кнопку "Добавить".
В области "Добавление задач" заполните все обязательные поля. Затем найдите заголовок ADVANCED SETTINGS и выберите файлы ресурсов.
Файлы ресурсов можно указать с помощью методов, описанных в следующей таблице.
Способ | Примечания. |
---|---|
Контейнер autostorage | Ссылка на удостоверение отображается как None, и ее нельзя изменить. Узел обращается к учетной записи автосбора для получения файлов ресурсов. |
URL-адрес контейнера или URL-адрес HTTP | Можно определить другой URL-адрес учетной записи служба хранилища Azure, если в этой служба хранилища Azure учетной записи для ссылки на удостоверение было настроено достаточно разрешений, а удостоверение было добавлено в пул пакетной службы. |
Если вам нужен доступ к учетной записи автосбора, удостоверение должно быть определено как в ссылке на удостоверение узла, так и в удостоверениях пула.
При указании определений файлов ресурсов префикс 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> |
Сценарии поведения
В следующей таблице описаны четыре сценария поведения, которые могут возникать при использовании управляемого удостоверения для создания пакетного пула, а затем создания задачи с файлами ресурсов для извлечения большого двоичного объекта из контейнера автосбора.
Номер сценария | Использование управляемого удостоверения | Разрешения управляемого удостоверения в учетной записи автосбора | Спецификация создания пула | Результат |
---|---|---|---|---|
1 | Дано в справочнике по удостоверениям узла | Достаточные разрешения | Создание в пуле с помощью того же управляемого удостоверения | Файл BLOB-объектов успешно скачан на узел в каталоге корневого /wd/<file-path> , как показано на странице обзора задачи |
2 | Дано в справочнике по удостоверениям узла | Недостаточно разрешений | Создание в пуле с помощью того же управляемого удостоверения | Задача завершается ошибкой из-за ошибки ResourceContainerAccessDenied , сообщение об ошибке "Доступ для одного из указанных контейнеров BLOB-объектов Azure запрещено". |
3 | Не указан в справочнике по удостоверениям узла | Достаточно или недостаточно разрешений | Создание в пуле с помощью одного или другого управляемого удостоверения | Задача завершается ошибкой из-за ошибки ResourceContainerAccessDenied , сообщение об ошибке "Доступ для одного из указанных контейнеров BLOB-объектов Azure запрещено". |
4 | Дано в справочнике по удостоверениям узла | Достаточно или недостаточно разрешений | Создание в пуле с помощью другого управляемого удостоверения | Задача завершается сбоем из-за ошибки ResourceContainerListMiscError , сообщение об ошибке "Ошибка, обнаруженная при перечислении одного из указанных контейнеров BLOB-объектов Azure)" |
В сценариях, в которых задача извлечения БОЛЬШОго двоичного объекта завершается сбоем, перейдите на страницу "Задачи" портал Azure, а затем выберите имя задачи, которая отображается рядом с кодом ошибки. Затем на панели навигации страницы задачи найдите заголовок "Общие ", выберите "Свойства" и выберите "Представление JSON". Отображение свойств JSON отображает соответствующее сообщение об ошибке и другие сведения о неудачной задаче. Например, в сценарии 4 ошибка ResourceContainerListMiscError завершается ошибкой из-за ошибки HTTP 400 Bad Request. Это связано с тем, что управляемое удостоверение, определенное в ссылке на удостоверение узла, не соответствует ни одному из управляемых удостоверений, определенных в конфигурации удостоверения пула.
Убедитесь, что управляемое удостоверение может получить доступ к ресурсам Azure
Чтобы проверить в Windows, что управляемое удостоверение, назначаемое узлом пакетная служба Azure, имеет достаточно разрешений для доступа к ресурсам Azure (например, учетной записи хранения), выполните следующие действия.
Примечание.
Эта процедура эмулирует последний шаг, который необходимо выполнить для получения маркера с допустимым идентификатором удостоверения для доступа к учетной записи хранения и проверки достаточного количества разрешений. Если удостоверение не определено в ссылке на удостоверение узла, узел не может получить идентификатор удостоверения. В этом случае весь процесс уже заблокирован, прежде чем выполнить последний шаг. Перед выполнением этой процедуры убедитесь, что удостоверение определено в справочнике по удостоверениям узла.
Используйте протокол удаленного рабочего стола (RDP) для подключения к узлу.
В 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/resourceGroups/<resource-group-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<user-assigned-identity-name>
169.254.169.254
IP-адрес также называется службой метаданных экземпляра Azure (IMDS). IMDS предоставляет сведения об экземпляре виртуальной машины. Если у вас есть сведения об экземпляре виртуальной машины, можно использовать виртуальную машину для запроса маркеров управляемого удостоверения.mi_res_id
Значение параметра в URL-адресе полужирным шрифтом. Это идентификатор ресурса управляемого удостоверения, назначаемого пользователем, определенного в удостоверении пула. Чтобы найти этот идентификатор ресурса вместе с идентификатором клиента и идентификатором субъекта, выполните следующие действия:В портал Azure найдите и выберите учетные записи пакетной службы.
В списке учетных записей пакетной службы выберите имя учетной записи пакетной службы.
В области навигации учетной записи пакетной службы найдите заголовок компонентов и выберите пулы.
В списке пулов пакетной службы выберите имя пула пакетной службы.
В области навигации пула пакетной службы найдите заголовок "Общие " и выберите "Свойства".
На странице свойств пула выберите представление Json.
В тексте JSON найдите
identity
/userAssignedIdentities
список. Для управляемого удостоверения, назначаемого пользователем, скопируйте значения для следующих свойств:resourceId
clientId
(GUID)principalId
(GUID)
После отправки URL-адреса в Postman текст ответа JSON будет содержать записи
access_token
(длинная текстовая строка, также известная как маркер носителя) иclient_id
(GUID). Значениеclient_id
ответа должно совпадать со значениемclientId
, скопированным на странице свойств пула пакетной службы.Скопируйте полный маркер носителя, а затем протестируйте его в Postman, извлекая большой двоичный объект из учетной записи автосбора. В этом примере управляемое удостоверение не имеет разрешения на доступ к хранилищу. Таким образом, учетная запись автосбора отвечает, возвращая ошибку HTTP 403 (ошибка AuthorizationPermissionMismatch, сообщение "Этот запрос не авторизован для выполнения этой операции с помощью этого разрешения").
Примечание.
Для получения большого двоичного объекта требуется заголовок x-ms-version . Дополнительные сведения см. в служба хранилища Azure API получения BLOB-объектов.
Заявление об отказе от ответственности за сведения о продуктах сторонних производителей
В этой статье упомянуты программные продукты независимых производителей. Корпорация Microsoft не дает никаких гарантий, подразумеваемых и прочих, относительно производительности и надежности этих продуктов.
Заявление об отказе от ответственности за контактные данные сторонней организации
Корпорация Майкрософт предоставляет контактные данные сторонних производителей в целях получения дополнительных сведений по данной теме. Эти данные могут быть изменены без предварительного уведомления. Корпорация Майкрософт не гарантирует точность контактных данных сторонних производителей.
Свяжитесь с нами для получения помощи
Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.