Configuración de identidades administradas en grupos de Batch

Las identidades administradas para recursos de Azure eliminan la administración complicada de identidades y credenciales al proporcionar una identidad para el recurso de Azure en Microsoft Entra ID (id. de Azure AD). Esta identidad se usa para obtener tokens de Microsoft Entra para autenticarse con recursos de destino en Azure.

En este tema se explica cómo habilitar identidades administradas asignadas por el usuario en grupos de Batch y cómo usar identidades administradas en los nodos.

Importante

Los grupos deben configurarse con la opción Configuración de máquina virtual para poder usar identidades administradas.

La creación de grupos con identidades administradas se puede realizar mediante la biblioteca de administración de .NET de Batch, pero actualmente no es compatible con la biblioteca cliente de .NET de Batch.

Crear una identidad administrada asignada por el usuario

En primer lugar, cree la identidad administrada asignada por el usuario en el mismo inquilino que la cuenta de Batch. Puede crear la identidad mediante Azure Portal, la Interfaz de la línea de comandos de Azure (CLI de Azure), PowerShell, Azure Resource Manager o la API de REST de Azure. No es necesario que esta identidad administrada esté en el mismo grupo de recursos ni en la misma suscripción.

Sugerencia

Una identidad administrada asignada por el sistema creada para una cuenta de Batch para el cifrado de datos de cliente, tal y como se describe en este documento, no se puede usar como una identidad administrada asignada por el usuario en un grupo de Batch. Si desea usar la misma identidad administrada tanto en la cuenta de Batch como en el grupo de Batch, use en su lugar una identidad administrada asignada por el usuario común.

Creación de un grupo de Batch con identidades administradas asignadas por el usuario

Después de haber creado una o más identidades administradas asignadas por el usuario, puede crear un grupo de Batch con esa identidad o identidades. Puede:

Advertencia

Las actualizaciones en contexto de las identidades administradas del grupo no se admiten mientras el grupo tiene nodos activos. Los nodos de proceso existentes no se actualizarán con cambios. Se recomienda reducir verticalmente el grupo a cero nodos de proceso antes de modificar la colección de identidades para asegurarse de que todas las máquinas virtuales tienen asignado el mismo conjunto de identidades.

Creación de un grupo de Batch en Azure Portal

Para crear un grupo de Batch con una identidad administrada asignada por el usuario mediante Azure Portal:

  1. Inicie sesión en Azure Portal.
  2. En la barra de búsqueda, escriba y seleccione Cuentas de Batch.
  3. En la página Cuentas de Batch, seleccione la cuenta de Batch donde quiere crear un grupo de Batch.
  4. En el menú de la cuenta de Batch, en Características, seleccione Grupos.
  5. En el menú Grupos, seleccione Agregar para agregar un nuevo grupo de Batch.
  6. En Id. del grupo, escriba un identificador para el grupo.
  7. En Identidad, cambie la configuración a Asignada por el usuario.
  8. En Identidad administrada asignada por el usuario, seleccione Agregar.
  9. Seleccione la identidad o identidades administradas asignadas por el usuario que quiere administrar. Después, seleccione Agregar.
  10. En Sistema operativo, seleccione el publicador, la oferta y la SKU que se van a usar.
  11. Opcionalmente, habilite la identidad administrada en el registro de contenedor:
    1. En Configuración del contenedor, cambie la configuración a Personalizado. A continuación, seleccione la configuración personalizada.
    2. En Tarea de inicio, seleccione Habilitada. A continuación, seleccione Archivos de recursos y agregue la información del contenedor de almacenamiento.
    3. Habilite Configuración del contenedor.
    4. Cambie Registro de contenedor a Personalizado.
    5. En Referencia de identidad, seleccione el contenedor de almacenamiento.

Creación de un grupo de Batch con .NET

Para crear un grupo de Batch con una identidad administrada asignada por el usuario con la biblioteca de administración de .NET de Batch, use el código de ejemplo siguiente:

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);

Uso de identidades administradas asignadas por el usuario en nodos de Batch

Muchas funciones de Azure Batch que acceden a otros recursos de Azure directamente en los nodos de proceso, como Azure Storage o Azure Container Registry, admiten identidades administradas. Para obtener más información sobre cómo usar las identidades administradas con Azure Batch, consulte los siguientes vínculos:

También puede configurar las tareas manualmente para que las identidades administradas puedan acceder directamente a los recursos de Azure que admiten identidades administradas.

En los nodos de Batch, puede obtener tokens de identidades administradas y usarlos para autenticarse a través de la autenticación de Microsoft Entra a través de Azure Instance Metadata Service.

En Windows, el script de PowerShell para obtener un token de acceso para la autenticación es:

$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"}

Para Linux, el script de Bash es:

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

Para obtener más información, consulte Cómo usar identidades administradas de recursos de Azure en una máquina virtual de Azure para adquirir un token de acceso.

Pasos siguientes