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

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

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

Внимание

Для использования управляемых удостоверений необходимо настроить пулы с помощью конфигурации виртуальных машин.

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

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

Сначала создайте управляемое удостоверение, назначаемое пользователем, в одном клиенте с учетной записью пакетной службы. Удостоверение можно создать с помощью портала Azure, интерфейса командной строки Azure (Azure CLI), PowerShell, Azure Resource Manager или REST API Azure. Это управляемое удостоверение не должно находиться в одной группе ресурсов или даже в той же подписке.

Совет

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

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

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

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

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

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

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

  1. Войдите на портал Azure.
  2. В строке поиска введите и выберите Учетные записи пакетной службы.
  3. На странице Учетные записи пакетной службы выберите учетную запись пакетной службы, в которой нужно создать пул пакетной службы.
  4. В меню учетной записи пакетной службы в разделе Компоненты выберите Пулы.
  5. В меню Пулы выберите Добавить, чтобы добавить новый пул пакетной службы.
  6. В поле Идентификатор пула введите идентификатор пула.
  7. В поле Удостоверение измените параметр на Назначаемое пользователем.
  8. В разделе Управляемое удостоверение, назначаемое пользователем выберите команду Добавить.
  9. Выберите одно или несколько управляемых удостоверений, назначаемых пользователем, которые вы хотите использовать. а затем щелкните Добавить.
  10. В разделе Операционная система выберите издателя, предложение и номер SKU, которые нужно использовать.
  11. При необходимости включите управляемое удостоверение в реестре контейнеров:
    1. Для конфигурации контейнера измените параметр на Настраиваемый. Затем выберите настраиваемую конфигурацию.
    2. Для параметра Задача запуска выберите Включено. Затем выберите Файлы ресурсов и добавьте сведения о контейнере хранилища.
    3. Включите Параметры контейнера.
    4. Измените Реестр контейнеров на Настраиваемый.
    5. Для параметра Ссылка на удостоверение выберите контейнер хранилища.

Создание пула пакетной службы с помощью .NET

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

var poolParameters = new Pool(name: "yourPoolName")
    {
        VmSize = "standard_d2_v3",
        ScaleSettings = new ScaleSettings
        {
            FixedScale = new FixedScaleSettings
            {
                TargetDedicatedNodes = 1
            }
        },
        DeploymentConfiguration = new DeploymentConfiguration
        {
            VirtualMachineConfiguration = new VirtualMachineConfiguration(
                new ImageReference(
                    "Canonical",
                    "0001-com-ubuntu-server-jammy",
                    "22_04-lts",
                    "latest"),
                "batch.node.ubuntu 22.04")
        },
        Identity = new BatchPoolIdentity
        {
            Type = PoolIdentityType.UserAssigned,
            UserAssignedIdentities = new Dictionary<string, UserAssignedIdentities>
            {
                ["Your Identity Resource Id"] =
                    new UserAssignedIdentities()
            }
        }
    };

var pool = await managementClient.Pool.CreateWithHttpMessagesAsync(
    poolName:"yourPoolName",
    resourceGroupName: "yourResourceGroupName",
    accountName: "yourAccountName",
    parameters: poolParameters,
    cancellationToken: default(CancellationToken)).ConfigureAwait(false);

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

Многие функции пакетная служба Azure, которые обращаются к другим ресурсам Azure непосредственно на вычислительных узлах, например служба хранилища Azure или Реестр контейнеров Azure, поддерживают управляемые удостоверения. Для получения дополнительной информации по использованию управляемых удостоверений с помощью пакетной службы Microsoft Azure используйте следующие ссылки:

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

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

Сценарий PowerShell для Windows, получающий маркер доступа для проверки подлинности:

$Response = Invoke-RestMethod -Uri 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource={Resource App Id Url}' -Method GET -Headers @{Metadata="true"}

Сценарий Bash для Linux:

curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource={Resource App Id Url}' -H Metadata:true

Дополнительные сведения см. в статье Как использовать управляемые удостоверения для ресурсов Azure на виртуальной машине Azure для получения маркера доступа.

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