Configuración de identidades administradas en grupos de Batch
Article
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.
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.
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.
Suggeriment
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:
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:
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:
C#
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:
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:
PowerShell
$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:
Bash
curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource={Resource App Id Url}' -H Metadata:true
Muestre las características de Microsoft Entra ID para modernizar las soluciones de identidad, implementar soluciones híbridas e implementar la gobernanza de identidades.