Condividi tramite


Configurare le identità gestite nei pool 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

La creazione di pool con identità gestite può essere eseguita solo con le API del piano di gestione batch o gli SDK usando l'autenticazione Entra. Non è possibile creare pool con identità gestite usando le API del servizio Batch o gli SDK. Per altre informazioni, vedere la documentazione della panoramica per API e strumenti batch.

Creare un'identità gestita assegnata dall'utente

Prima di tutto, creare 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, PowerShell, Azure Resource Manager o l'API REST di Azure. Non è necessario che questa identità gestita sia nello stesso gruppo di risorse o nella stessa sottoscrizione.

Suggerimento

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:

Avviso

Gli aggiornamenti sul posto delle identità gestite del pool non sono supportati mentre il pool dispone di nodi attivi. I nodi di calcolo esistenti non verranno aggiornati con le modifiche. È consigliabile ridurre il pool a zero nodi di calcolo prima di modificare la raccolta di identità per assicurarsi che a tutte le macchine virtuali sia assegnato lo stesso set di identità.

Creare un pool di Batch nel portale di Azure

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

  1. Accedere 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 dell'account Batch, in Funzionalitàselezionare Pool.
  5. Nel menu Pool selezionare Aggiungi per aggiungere un nuovo pool di Batch.
  6. Per ID poolimmettere un identificatore per il pool.
  7. Per Identità, modificare l'impostazione su Utente assegnato.
  8. Selezionare Aggiungi nella sezione identità gestita assegnata dall'utente.
  9. Selezionare l'identità o le identità gestite assegnata 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 impostando su Custom. Selezionare quindi la configurazione personalizzata.
    2. Per Attività start selezionare Abilitato. Selezionare quindi File di risorse e aggiungere le informazioni sul contenitore di archiviazione.
    3. Abilitare Impostazioni del contenitore.
    4. Modificare Registro contenitori in Personalizzato
    5. Per Riferimento all'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 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;

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 risorse di Azure in una macchina virtuale di Azure per acquisire un token di accesso.

Passaggi successivi