Configurare le identità gestite nei pool di Batch

Le identità gestite per le risorse di Azure eliminano la gestione complessa delle identità e delle credenziali fornendo un'identità per la risorsa di Azure in MICROSOFT Entra ID (ID Azure AD). Questa identità viene usata per ottenere i token di Microsoft Entra per l'autenticazione con le risorse di destinazione in Azure.

Questo argomento illustra come abilitare le identità gestite assegnate dall'utente nei pool di Batch e come usare le identità gestite all'interno dei nodi.

Importante

I pool devono essere configurati usando la configurazione della macchina virtuale per usare le identità gestite.

La creazione di pool con identità gestite può essere eseguita usando la libreria di gestione batch .NET, ma non è attualmente supportata con la libreria client batch .NET.

Creare un'identità gestita assegnata dall'utente

Creare prima di tutto l'identità gestita assegnata dall'utente nello stesso tenant dell'account Batch. È possibile creare l'identità usando il portale di Azure, l'interfaccia della riga di comando di Azure (interfaccia della riga di comando di Azure), PowerShell, Azure Resource Manager o l'API REST di Azure. Questa identità gestita non deve trovarsi nello stesso gruppo di risorse o anche nella stessa sottoscrizione.

Importante

Un'identità gestita assegnata dal sistema creata per un account Batch per la crittografia dei dati dei clienti non può essere usata come identità gestita assegnata dall'utente in un pool di Batch, come descritto in questo documento. Se si vuole usare la stessa identità gestita sia nell'account Batch che nel pool di Batch, usare invece un'identità gestita assegnata dall'utente comune.

Creare un pool di Batch con identità gestite assegnate dall'utente

Dopo aver creato una o più identità gestite assegnate dall'utente, è possibile creare un pool di Batch con tale identità o con tali identità. È possibile:

Creare un pool di Batch in portale di Azure

Per creare un pool di Batch con un'identità gestita assegnata dall'utente tramite il portale di Azure:

  1. Accedi al portale di Azure.
  2. Nella barra di ricerca immettere e selezionare Account Batch.
  3. Nella pagina Account Batch selezionare l'account Batch in cui si vuole creare un pool di Batch.
  4. Nel menu per l'account Batch, in Funzionalità selezionare Pool.
  5. Nel menu Pool selezionare Aggiungi per aggiungere un nuovo pool di Batch.
  6. Per ID pool immettere un identificatore per il pool.
  7. Per Identità modificare l'impostazione su Assegnata dall'utente.
  8. In Identità gestita assegnata dall'utente selezionare Aggiungi.
  9. Selezionare l'identità o le identità gestite assegnate dall'utente da usare. Quindi selezionare Aggiungi.
  10. In Sistema operativo selezionare l'editore, l'offerta e lo SKU da usare.
  11. Facoltativamente, abilitare l'identità gestita nel registro contenitori:
    1. Per Configurazione del contenitore modificare l'impostazione su Personalizzato. Selezionare quindi la configurazione personalizzata.
    2. Per Avvia attività selezionare Abilitato. Selezionare quindi File di risorse e aggiungere le informazioni sul contenitore di archiviazione.
    3. Abilitare le impostazioni del contenitore.
    4. Modificare registro contenitori in Personalizzato
    5. Per Informazioni di riferimento sull'identità selezionare il contenitore di archiviazione.

Creare un pool di Batch con .NET

Per creare un pool di Batch con un'identità gestita assegnata dall'utente con la libreria di gestione Batch .NET, usare il codice di esempio seguente:

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

Importante

Le identità gestite non vengono aggiornate nelle macchine virtuali esistenti dopo l'avvio di un pool. È consigliabile ridimensionare il pool fino a zero prima di modificare la raccolta di identità per assicurarsi che a tutte le macchine virtuali sia assegnato lo stesso set di identità.

Usare le identità gestite assegnate dall'utente nei nodi batch

Molte funzioni di Azure Batch che accedono ad altre risorse di Azure direttamente nei nodi di calcolo, ad esempio Archiviazione di Azure o Registro Azure Container, supportano le identità gestite. Per altre informazioni sull'uso di identità gestite con Azure Batch, vedere i collegamenti seguenti:

È anche possibile configurare manualmente le attività in modo che le identità gestite possano accedere direttamente alle risorse di Azure che supportano le identità gestite.

All'interno dei nodi batch è possibile ottenere token di identità gestiti e usarli per eseguire l'autenticazione tramite l'autenticazione di Microsoft Entra tramite il servizio metadati dell'istanza di Azure.

Per Windows, lo script di PowerShell per ottenere un token di accesso per l'autenticazione è:

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

Per Linux, lo script Bash è:

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

Per altre informazioni, vedere Come usare le identità gestite per le risorse di Azure in una macchina virtuale di Azure per acquisire un token di accesso.

Passaggi successivi