Beheerde identiteiten configureren in Batch-pools

Beheerde identiteiten voor Azure-resources elimineren gecompliceerd identiteits- en referentiebeheer door een identiteit op te geven voor de Azure-resource in Microsoft Entra ID (Azure AD ID). Deze identiteit wordt gebruikt om Microsoft Entra-tokens te verkrijgen voor verificatie met doelbronnen in Azure.

In dit onderwerp wordt uitgelegd hoe u door de gebruiker toegewezen beheerde identiteiten kunt inschakelen in Batch-pools en hoe u beheerde identiteiten binnen de knooppunten gebruikt.

Belangrijk

Pools moeten worden geconfigureerd met behulp van configuratie van virtuele machines om beheerde identiteiten te kunnen gebruiken.

Het maken van pools met beheerde identiteiten kan worden uitgevoerd met behulp van de Batch .NET-beheerbibliotheek, maar wordt momenteel niet ondersteund met de Batch .NET-clientbibliotheek.

Een door de gebruiker toegewezen beheerde identiteit maken

Maak eerst uw door de gebruiker toegewezen beheerde identiteit in dezelfde tenant als uw Batch-account. U kunt de identiteit maken met behulp van Azure Portal, de Azure-opdrachtregelinterface (Azure CLI), PowerShell, Azure Resource Manager of de Azure REST API. Deze beheerde identiteit hoeft zich niet in dezelfde resourcegroep of zelfs in hetzelfde abonnement te bevinden.

Tip

Een door het systeem toegewezen beheerde identiteit die is gemaakt voor een Batch-account voor versleuteling van klantgegevens kan niet worden gebruikt als een door de gebruiker toegewezen beheerde identiteit in een Batch-pool, zoals beschreven in dit document. Als u dezelfde beheerde identiteit wilt gebruiken voor zowel het Batch-account als de Batch-pool, gebruikt u in plaats daarvan een algemene door de gebruiker toegewezen beheerde identiteit.

Een Batch-pool maken met door de gebruiker toegewezen beheerde identiteiten

Nadat u een of meer door de gebruiker toegewezen beheerde identiteiten hebt gemaakt, kunt u een Batch-pool met die identiteit of die identiteiten maken. U kunt:

Waarschuwing

In-place updates van door pool beheerde identiteiten worden niet ondersteund terwijl de pool actieve knooppunten heeft. Bestaande rekenknooppunten worden niet bijgewerkt met wijzigingen. Het is raadzaam om de pool omlaag te schalen naar nul rekenknooppunten voordat u de identiteitsverzameling wijzigt om ervoor te zorgen dat aan alle VM's dezelfde set identiteiten is toegewezen.

Batch-pool maken in Azure Portal

Een Batch-pool maken met een door de gebruiker toegewezen beheerde identiteit via Azure Portal:

  1. Meld u aan bij het Azure-portaal.
  2. Typ en selecteer Batch-accounts in de zoekbalk.
  3. Selecteer op de pagina Batch-accounts het Batch-account waar u een Batch-pool wilt maken.
  4. Selecteer Pools in het menu voor het Batch-account onder Functies.
  5. Selecteer Toevoegen in het menu Pools om een nieuwe Batch-pool toe te voegen.
  6. Voer voor pool-id een id in voor uw pool.
  7. Wijzig voor Identiteit de instelling in Door de gebruiker toegewezen.
  8. Selecteer Toevoegen onder Door de gebruiker toegewezen beheerde identiteit.
  9. Selecteer de door de gebruiker toegewezen beheerde identiteit of identiteiten die u wilt gebruiken. Selecteer vervolgens Toevoegen.
  10. Selecteer onder Besturingssysteem de uitgever, aanbieding en SKU die u wilt gebruiken.
  11. Schakel desgewenst de beheerde identiteit in het containerregister in:
    1. Voor containerconfiguratie wijzigt u de instelling in Aangepast. Selecteer vervolgens uw aangepaste configuratie.
    2. Selecteer Ingeschakeld voor starttaak. Selecteer vervolgens Resourcebestanden en voeg uw opslagcontainergegevens toe.
    3. Containerinstellingen inschakelen.
    4. Containerregister wijzigen in Aangepast
    5. Als identiteitsreferentie selecteert u de opslagcontainer.

Batch-pool maken met .NET

Als u een Batch-pool wilt maken met een door de gebruiker toegewezen beheerde identiteit met de Batch .NET-beheerbibliotheek, gebruikt u de volgende voorbeeldcode:

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

Door de gebruiker toegewezen beheerde identiteiten gebruiken in Batch-knooppunten

Veel Azure Batch-functies die rechtstreeks toegang hebben tot andere Azure-resources op de rekenknooppunten, zoals Azure Storage of Azure Container Registry, ondersteunen beheerde identiteiten. Zie de volgende koppelingen voor meer informatie over het gebruik van beheerde identiteiten met Azure Batch:

U kunt uw taken ook handmatig configureren, zodat de beheerde identiteiten rechtstreeks toegang hebben tot Azure-resources die beheerde identiteiten ondersteunen.

Binnen de Batch-knooppunten kunt u tokens voor beheerde identiteiten ophalen en deze gebruiken om te verifiëren via Microsoft Entra-verificatie via de Azure Instance Metadata Service.

Voor Windows is het PowerShell-script voor het ophalen van een toegangstoken voor verificatie:

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

Voor Linux is het Bash-script:

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

Zie Beheerde identiteiten gebruiken voor Azure-resources op een Azure-VM om een toegangstoken te verkrijgen voor meer informatie.

Volgende stappen