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.
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 grupos con identidades administradas utilizando las API o SDK de servicio por lotes. Para más información, consulte la documentación general de Aplicaciones y herramientas de lotes.
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:
- Usar Azure Portal para crear el grupo de Batch
- Usar la biblioteca de administración de .NET de Batch para crear el grupo de Batch
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:
- 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 o identidades administradas asignadas por el usuario que quiere administrar. Después, seleccione Agregar.
- 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.
- Habilite Configuración del contenedor.
- Cambie Registro de contenedor a Personalizado.
- 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 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 pool = batchClient.PoolOperations.CreatePool(
poolId: "myPool",
virtualMachineSize: "STANDARD_D2_V2",
cloudServiceConfiguration: new CloudServiceConfiguration(osFamily: "4"),
targetDedicatedNodes: 1,
identity: new PoolIdentity(
type: PoolIdentityType.UserAssigned,
userAssignedIdentities: new Dictionary<string, UserAssignedIdentity>
{
{ "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identity-name}", new UserAssignedIdentity() }
}
));
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 de contenedor de blobs 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 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
- Obtenga más información sobre las identidades administradas para recursos de Azure.
- 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.