Configurer des identités managées dans des pools Batch
Les identités gérées pour les ressources Azure éliminent la gestion complexe des identités et des informations d'identification en fournissant une identité pour la ressource Azure dans Microsoft Entra ID (Azure AD ID). Cette identité est utilisée pour obtenir des jetons Microsoft Entra pour s'authentifier auprès des ressources cibles dans Azure.
Lors de l’ajout d’une identité managée affectée par l’utilisateur à un pool Batch, il est indispensable de définir la propriété Identité dans votre configuration. Cette propriété lie l’identité managée au pool, ce qui l’autorise à accéder aux ressources Azure en toute sécurité. Un paramétrage incorrect de la propriété Identité peut entraîner des erreurs courantes, comme des problèmes d’accès ou des erreurs de chargement.
Pour découvrir plus d’informations sur la configuration des identités managées dans Azure Batch, veuillez consulter la Documentation Azure Batch sur les identités managées.
Cette rubrique explique comment activer des identités managées affectées par l’utilisateur sur des pools Batch et comment utiliser des identités managées dans les nœuds.
Important
La création de pools avec des identités managées ne peut être effectuée qu’avec les API de plan de gestion par lot à l’aide de l’authentification Entra. Il n’est pas possible de créer des pools avec des identités managées à l’aide des API de service par lot ou des sdk. Pour plus d’informations, consultez la documentation de vue d’ensemble pour API et outils de lot.
Créer une identité managée attribuée par l’utilisateur
Tout d’abord, créez votre identité managée affectée par l’utilisateur dans le même locataire que votre compte Batch. Vous pouvez créer l’identité à l’aide du portail Azure, de l’interface de ligne de commande Azure (Azure CLI), de PowerShell, d’Azure Resource Manager ou de l’API REST Azure. Cette identité managée n’a pas besoin d’être dans le même groupe de ressources ni même dans le même abonnement.
Conseil
Une identité managée affectée par le système créée pour un compte Batch pour le chiffrement des données client ne peut pas être utilisée comme identité managée affectée par l’utilisateur sur un pool Batch, comme décrit dans ce document. Si vous souhaitez utiliser la même identité managée sur le compte Batch et le pool Batch, utilisez plutôt une identité managée commune affectée par l’utilisateur.
Créer un pool Batch avec des identités managées affectées par l’utilisateur
Une fois que vous avez créé une ou plusieurs identités managées affectées par l’utilisateur(-trice), vous pouvez créer un pool de lots pour ces identités. Vous pouvez :
- Utiliser le portail Azure pour créer le pool Batch
- Utiliser la bibliothèque de gestion Batch .NET pour créer le pool Batch
Avertissement
Les mises à jour sur place des identités managées du pool ne sont pas prises en charge lorsque le pool a des nœuds actifs. Les nœuds de calcul existants ne seront pas mis à jour et n’afficheront pas les modifications. Il est recommandé d’effectuer un scale-down du pool à zéro nœud de calcul avant de modifier la collecte d’identités pour vous assurer que toutes les machines virtuelles se voient attribuer le même ensemble d’identités.
Créer un pool Batch dans le portail Azure
Pour créer un pool Batch avec une identité managée affectée par l’utilisateur via le portail Azure :
- Connectez-vous au portail Azure.
- Dans la barre de recherche, entrez et sélectionnez Comptes Batch.
- Dans la page Comptes Batch, sélectionnez le compte Batch dans lequel vous souhaitez créer un pool Batch.
- Dans le menu d du compte Batch, sous Fonctionnalités, sélectionnez Pools.
- Dans le menu Pools, sélectionnez Ajouter pour ajouter un nouveau pool Batch.
- Pour ID du pool, entrez un identificateur pour votre pool.
- Pour Identité, remplacez le paramètre par Affectée par l’utilisateur.
- Sous Identité managée affectée par l’utilisateur, sélectionnez Ajouter.
- Sélectionnez l’identité managée affectée par l’utilisateur ou les identités à utiliser. Sélectionnez ensuite Ajouter.
- Sous Système d’exploitation, sélectionnez l’éditeur, l’offre et la référence SKU à utiliser.
- Si vous le souhaitez, activez l’identité managée dans le registre de conteneurs :
- Pour Configuration du conteneur, remplacez le paramètre par Personnalisé. Sélectionnez ensuite votre configuration personnalisée.
- Pour Démarrer la tâche, sélectionnez Activé. Ensuite, sélectionnez Fichiers de ressources et ajoutez les informations de votre conteneur de stockage.
- Activer les Paramètres du conteneur
- Modifier Registre de conteneurs pour Personnalisé
- Pour référence d’identité, sélectionnez le conteneur de stockage.
Créer un pool Batch avec .NET
Pour créer un pool Batch avec une identité managée affectée par l’utilisateur avec la bibliothèque de gestion Batch .NET, utilisez l’exemple de code suivant :
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;
Remarque
Pour inclure la propriété Identité, utilisez l’exemple de code suivant :
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() }
}
));
Utiliser des identités managées affectées par l’utilisateur dans des nœuds Batch
De nombreuses fonctions Azure Batch qui accèdent à d’autres ressources Azure directement sur les nœuds d’ordinateur, comme le Stockage Azure ou Azure Container Registry, prennent en charge les identités managées. Pour en savoir plus sur l’utilisation des identités managées avec Azure Batch, consultez les liens suivants :
- Fichiers de ressources
- Fichiers de sortie
- Azure Container Registry
- Système de fichiers du conteneur d’objets BLOB Azure
Vous pouvez également configurer vos tâches manuellement afin que les identités managées puissent accéder directement aux ressources Azure qui prennent en charge les identités managées.
Dans les nœuds Batch, vous pouvez obtenir des jetons d'identité gérés et les utiliser pour vous authentifier via l'authentification Microsoft Entra via le Instance Metadata Service Azure.
Pour Windows, le script PowerShell permettant d’obtenir un jeton d’accès pour l’authentification est le suivant :
$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"}
Pour Linux, le script Bash est le suivant :
curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource={Resource App Id Url}' -H Metadata:true
Pour plus d’informations, consultez Guide pratique de l’utilisation d’identités managées pour les ressources Azure sur une machine virtuelle Azure afin d’acquérir un jeton d’accès.
Étapes suivantes
- En savoir plus sur les identités managées pour les ressources Azure.
- Découvrez comment utiliser des clés gérées par le client avec des identités managées par l’utilisateur.
- Découvrez comment activer la rotation automatique des certificats dans un pool Batch.