Konfigurera hanterade identiteter i Batch-pooler

Hanterade identiteter för Azure-resurser eliminerar komplicerad hantering av identiteter och autentiseringsuppgifter genom att tillhandahålla en identitet för Azure-resursen i Microsoft Entra-ID (Azure AD-ID). Den här identiteten används för att hämta Microsoft Entra-token för att autentisera med målresurser i Azure.

Det här avsnittet beskriver hur du aktiverar användartilldelade hanterade identiteter i Batch-pooler och hur du använder hanterade identiteter i noderna.

Viktigt!

Pooler måste konfigureras med hjälp av Konfiguration av virtuella datorer för att kunna använda hanterade identiteter.

Du kan skapa pooler med hanterade identiteter med hjälp av Batch .NET-hanteringsbiblioteket, men stöds för närvarande inte med Batch .NET-klientbiblioteket.

Skapa en användartilldelad hanterad identitet

Skapa först din användartilldelade hanterade identitet i samma klientorganisation som ditt Batch-konto. Du kan skapa identiteten med hjälp av Azure-portalen, Azure Command-Line Interface (Azure CLI), PowerShell, Azure Resource Manager eller Azure REST API. Den här hanterade identiteten behöver inte finnas i samma resursgrupp eller ens i samma prenumeration.

Dricks

En systemtilldelad hanterad identitet som skapats för ett Batch-konto för kunddatakryptering kan inte användas som en användartilldelad hanterad identitet i en Batch-pool enligt beskrivningen i det här dokumentet. Om du vill använda samma hanterade identitet på både Batch-kontot och Batch-poolen använder du en gemensam användartilldelad hanterad identitet i stället.

Skapa en Batch-pool med användartilldelade hanterade identiteter

När du har skapat en eller flera användartilldelade hanterade identiteter kan du skapa en Batch-pool med den identiteten eller dessa identiteter. Du kan:

Varning

Uppdateringar på plats av poolhanterade identiteter stöds inte medan poolen har aktiva noder. Befintliga beräkningsnoder uppdateras inte med ändringar. Vi rekommenderar att du skalar ned poolen till noll beräkningsnoder innan du ändrar identitetssamlingen för att säkerställa att alla virtuella datorer har samma uppsättning identiteter tilldelade.

Skapa Batch-pool i Azure-portalen

Så här skapar du en Batch-pool med en användartilldelad hanterad identitet via Azure-portalen:

  1. Logga in på Azure-portalen.
  2. I sökfältet anger och väljer du Batch-konton.
  3. På sidan Batch-konton väljer du det Batch-konto där du vill skapa en Batch-pool.
  4. På menyn för Batch-kontot går du till Funktioner och väljer Pooler.
  5. I menyn Pooler väljer du Lägg till för att lägga till en ny Batch-pool.
  6. För Pool-ID anger du en identifierare för din pool.
  7. För Identitet ändrar du inställningen till Användartilldelad.
  8. Under Användartilldelad hanterad identitet väljer du Lägg till.
  9. Välj den användartilldelade hanterade identiteten eller identiteterna som du vill använda. Välj sedan Lägg till.
  10. Under Operativsystem väljer du den utgivare, det erbjudande och den SKU som ska användas.
  11. Du kan också aktivera den hanterade identiteten i containerregistret:
    1. För Containerkonfiguration ändrar du inställningen till Anpassad. Välj sedan din anpassade konfiguration.
    2. För Startaktivitet väljer du Aktiverad. Välj sedan Resursfiler och lägg till information om lagringscontainern.
    3. Aktivera containerinställningar.
    4. Ändra containerregistret till Anpassat
    5. Som identitetsreferens väljer du lagringscontainern.

Skapa Batch-pool med .NET

Om du vill skapa en Batch-pool med en användartilldelad hanterad identitet med Batch .NET-hanteringsbiblioteket använder du följande exempelkod:

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

Använda användartilldelade hanterade identiteter i Batch-noder

Många Azure Batch-funktioner som har åtkomst till andra Azure-resurser direkt på beräkningsnoderna, till exempel Azure Storage eller Azure Container Registry, stöder hanterade identiteter. Mer information om hur du använder hanterade identiteter med Azure Batch finns i följande länkar:

Du kan också konfigurera dina uppgifter manuellt så att de hanterade identiteterna direkt kan komma åt Azure-resurser som stöder hanterade identiteter.

I Batch-noderna kan du hämta hanterade identitetstoken och använda dem för att autentisera via Microsoft Entra-autentisering via Azure Instance Metadata Service.

För Windows är PowerShell-skriptet för att hämta en åtkomsttoken för att autentisera:

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

För Linux är Bash-skriptet:

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

Mer information finns i Använda hanterade identiteter för Azure-resurser på en virtuell Azure-dator för att hämta en åtkomsttoken.

Nästa steg