Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.
Al agregar una identidad administrada asignada por el usuario a un grupo de lotes, es fundamental establecer la propiedad Identity en la configuración. Esta propiedad vincula la identidad administrada al grupo, lo que le permite acceder a los recursos de Azure de forma segura. La configuración incorrecta de la propiedad Identity puede producir errores comunes, como problemas de acceso o errores de carga.
Para más información sobre cómo configurar identidades administradas en Azure Batch, consulte la documentación de Identidades administradas de Azure Batch.
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
La creación de grupos con identidades administradas solo puede realizarse con las API o SDK del Plano de administración por lotes utilizando la autenticación Entra. No es posible crear agrupaciones con identidades administradas mediante las API o los SDK del servicio Batch. Para obtener más información, consulte la documentación de introducción sobre API y herramientas por lotes.
Crear una identidad administrada asignada por el usuario
Primero, cree su identidad administrada asignada por el usuario en el mismo tenant que su 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:
- Usar Azure Portal para crear el grupo de Batch
- Use la biblioteca de administración .NET de Batch para crear el grupo de Batch
Advertencia
No se admiten actualizaciones directas de las identidades administradas del pool mientras el pool tenga 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.
Crear un grupo de Batch en el portal de Azure
Para crear un grupo de Batch con una identidad administrada asignada por el usuario mediante Azure Portal:
- Inicie sesión en Azure Portal.
- En la barra de búsqueda, escriba y seleccione Cuentas de Batch.
- En la página Cuentas de Batch, seleccione la cuenta de Batch donde quiere crear un grupo de Batch.
- En el menú de la cuenta de Batch, en Características, seleccione Grupos.
- En el menú Grupos, seleccione Agregar para agregar un nuevo grupo de Batch.
- En Id. del grupo, escriba un identificador para el grupo.
- En Identidad, cambie la configuración a Asignada por el usuario.
- En Identidad administrada asignada por el usuario, seleccione Agregar.
- Seleccione la identidad administrada asignada por el usuario o las identidades administradas asignadas por el usuario que desea usar. Después, seleccione Agregar.
Nota:
Solo puede asignar una identidad administrada a la vez para el nivel de cuenta de almacenamiento automático y el nivel de cuenta por lotes. Sin embargo, en el nivel de grupo, tiene la flexibilidad de usar varias identidades administradas asignadas por el usuario.
- En Sistema operativo, seleccione el publicador, la oferta y la SKU que se van a usar.
- Opcionalmente, habilite la identidad administrada en el registro de contenedor:
- En Configuración del contenedor, cambie la configuración a Personalizado. A continuación, seleccione la configuración personalizada.
- En Tarea de inicio, seleccione Habilitada. A continuación, seleccione Archivos de recursos y agregue la información del contenedor de almacenamiento.
- Habilitar Configuración del contenedor.
- Cambie Registro de contenedor a Personalizado.
- En Referencia de identidad, seleccione el contenedor de almacenamiento.
Crear 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 credential = new DefaultAzureCredential();
ArmClient _armClient = new ArmClient(credential);
var batchAccountIdentifier = ResourceIdentifier.Parse("your-batch-account-resource-id");
BatchAccountResource batchAccount = _armClient.GetBatchAccountResource(batchAccountIdentifier);
var poolName = "HelloWorldPool";
var imageReference = new BatchImageReference()
{
Publisher = "canonical",
Offer = "0001-com-ubuntu-server-jammy",
Sku = "22_04-lts",
Version = "latest"
};
string nodeAgentSku = "batch.node.ubuntu 22.04";
var batchAccountPoolData = new BatchAccountPoolData()
{
VmSize = "Standard_DS1_v2",
DeploymentConfiguration = new BatchDeploymentConfiguration()
{
VmConfiguration = new BatchVmConfiguration(imageReference, nodeAgentSku)
},
ScaleSettings = new BatchAccountPoolScaleSettings()
{
FixedScale = new BatchAccountFixedScaleSettings()
{
TargetDedicatedNodes = 1
}
}
};
ArmOperation<BatchAccountPoolResource> armOperation = batchAccount.GetBatchAccountPools().CreateOrUpdate(
WaitUntil.Completed, poolName, batchAccountPoolData);
BatchAccountPoolResource pool = armOperation.Value;
Nota:
Para incluir la propiedad Identity, use el código de ejemplo siguiente:
var identityResourceId = new ResourceIdentifier(
"/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identity-name}");
var poolData = new BatchAccountPoolData()
{
VmSize = "STANDARD_D2_V2",
DeploymentConfiguration = new BatchDeploymentConfiguration()
{
VmConfiguration = new BatchVmConfiguration(
imageReference: new BatchImageReference()
{
Publisher = "canonical",
Offer = "0001-com-ubuntu-server-jammy",
Sku = "22_04-lts",
Version = "latest"
},
nodeAgentSkuId: "batch.node.ubuntu 22.04")
},
ScaleSettings = new BatchAccountPoolScaleSettings()
{
FixedScale = new BatchAccountFixedScaleSettings() { TargetDedicatedNodes = 1 }
},
Identity = new ManagedServiceIdentity(ManagedServiceIdentityType.UserAssigned)
{
UserAssignedIdentities =
{
[identityResourceId] = new UserAssignedIdentity()
}
}
};
ArmOperation<BatchAccountPoolResource> op = await batchAccount.GetBatchAccountPools()
.CreateOrUpdateAsync(WaitUntil.Completed, "myPool", poolData);
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:
- Archivos de recursos
- archivos de salida
- Azure Container Registry
- Sistema de archivos del contenedor Blob de Azure
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 identidad administrada y usarlos para autenticarse mediante 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
- Obtenga más información sobre las identidades administradas para recursos de Azure.
- Aprende a monitorizar nodos de cómputo en pools de batch con Azure Monitor Agent.
- Aprenda a usar claves administradas por el cliente con identidades administradas por el usuario.
- Aprenda a habilitar la rotación automática de certificados en un grupo de Batch.