Usare un'identità gestita da Azure in Attività del Registro Azure Container

Abilitare un'identità gestita per le risorse di Azure in un'attività del Registro Azure Container, in modo che l'attività possa accedere ad altre risorse di Azure, senza dover fornire o gestire le credenziali. Ad esempio, usare un'identità gestita per consentire a un passaggio attività di eseguire il pull o il push di immagini del contenitore in un altro registro.

Questo articolo illustra come usare l'interfaccia della riga di comando di Azure per abilitare un'identità gestita assegnata dall'utente o assegnata dal sistema in un'attività del Registro Azure Container. È possibile usare Azure Cloud Shell o un'installazione locale dell'interfaccia della riga di comando di Azure. Se si vuole usarlo in locale, è necessaria la versione 2.0.68 o successiva. Eseguire az --version per trovare la versione. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.

A scopo illustrativo, i comandi di esempio in questo articolo usano az acr task create per creare un'attività di compilazione di immagini di base che abilita un'identità gestita. Per scenari di esempio per accedere alle risorse protette da un'attività del Registro Azure Container tramite un'identità gestita, vedere:

Perché usare un'identità gestita?

Un'identità gestita per le risorse di Azure fornisce servizi di Azure selezionati con un'identità gestita automaticamente nell'ID Microsoft Entra. È possibile configurare un'attività del Registro Azure Container con un'identità gestita in modo che l'attività possa accedere ad altre risorse di Azure protette, senza passare le credenziali nei passaggi dell'attività.

Esistono due tipi di identità gestite:

  • Identità assegnate dall'utente, che è possibile assegnare a più risorse e rendere persistenti per tutto il tempo desiderato. Le identità assegnate dall'utente sono attualmente in anteprima.

  • Identità assegnata dal sistema, univoca per una risorsa specifica, ad esempio un'attività del Registro Azure Container e dura per la durata della risorsa.

È possibile abilitare uno o entrambi i tipi di identità in un'attività del Registro Azure Container. Concedere all'identità l'accesso a un'altra risorsa, proprio come qualsiasi entità di sicurezza. Quando l'attività viene eseguita, usa l'identità per accedere alla risorsa in tutti i passaggi dell'attività che richiedono l'accesso.

Procedura per usare un'identità gestita

Seguire questi passaggi generali per usare un'identità gestita con un'attività registro Azure Container.

1. (Facoltativo) Creare un'identità assegnata dall'utente

Se si prevede di usare un'identità assegnata dall'utente, usare un'identità esistente o creare l'identità usando l'interfaccia della riga di comando di Azure o altri strumenti di Azure. Ad esempio, usare il comando az identity create .

Se si prevede di usare solo un'identità assegnata dal sistema, ignorare questo passaggio. Quando si crea l'attività Registro Azure Container, si crea un'identità assegnata dal sistema.

2. Abilitare l'identità in un'attività del Registro Azure Container

Quando si crea un'attività registro Azure Container, abilitare facoltativamente un'identità assegnata dall'utente, un'identità assegnata dal sistema o entrambe. Ad esempio, passare il --assign-identity parametro quando si esegue il comando az acr task create nell'interfaccia della riga di comando di Azure.

Per abilitare un'identità assegnata dal sistema, passare --assign-identity senza valore o assign-identity [system]. Il comando di esempio seguente crea un'attività Linux da un repository GitHub pubblico che compila l'immagine e abilita un'identità hello-world gestita assegnata dal sistema:

az acr task create \
    --image hello-world:{{.Run.ID}} \
    --name hello-world --registry MyRegistry \
    --context https://github.com/Azure-Samples/acr-build-helloworld-node.git#main \
    --file Dockerfile \
    --commit-trigger-enabled false \
    --assign-identity

Per abilitare un'identità assegnata dall'utente, passare --assign-identity con un valore dell'ID risorsa dell'identità. Il comando di esempio seguente crea un'attività Linux da un repository GitHub pubblico che compila l'immagine hello-world e abilita un'identità gestita assegnata dall'utente:

az acr task create \
    --image hello-world:{{.Run.ID}} \
    --name hello-world --registry MyRegistry \
    --context https://github.com/Azure-Samples/acr-build-helloworld-node.git#main \
    --file Dockerfile \
    --commit-trigger-enabled false
    --assign-identity <resourceID>

È possibile ottenere l'ID risorsa dell'identità eseguendo il comando az identity show . L'ID risorsa per l'ID myUserAssignedIdentity nel gruppo di risorse myResourceGroup è nel formato seguente:

"/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUserAssignedIdentity"

3. Concedere le autorizzazioni di identità per accedere ad altre risorse di Azure

A seconda dei requisiti dell'attività, concedere le autorizzazioni di identità per accedere ad altre risorse di Azure. Alcuni esempi:

  • Assegnare l'identità gestita a un ruolo con autorizzazioni pull, push e pull o altre autorizzazioni a un registro contenitori di destinazione in Azure. Per un elenco completo dei ruoli di registro, vedere Ruoli e autorizzazioni di Registro Azure Container.
  • Assegnare l'identità gestita a un ruolo per leggere i segreti in un insieme di credenziali delle chiavi di Azure.

Usare l'interfaccia della riga di comando di Azure o altri strumenti di Azure per gestire l'accesso basato sui ruoli alle risorse. Ad esempio, eseguire il comando az role assignment create per assegnare l'identità a un ruolo alla risorsa.

Nell'esempio seguente viene assegnata un'identità gestita le autorizzazioni di pull da un registro contenitori. Il comando specifica l'ID entità dell'identità dell'attività e l'ID risorsa del Registro di sistema di destinazione.

az role assignment create \
  --assignee <principalID> \
  --scope <registryID> \
  --role acrpull

4. (Facoltativo) Aggiungere credenziali all'attività

Se l'attività richiede credenziali per eseguire il pull o il push di immagini in un altro registro personalizzato o per accedere ad altre risorse, aggiungere le credenziali all'attività. Eseguire il comando az acr task credential add per aggiungere credenziali e passare il --use-identity parametro per indicare che l'identità può accedere alle credenziali.

Ad esempio, per aggiungere credenziali per un'identità assegnata dal sistema per l'autenticazione con il registro azure container targetregistry, passare use-identity [system]:

az acr task credential add \
    --name helloworld \
    --registry myregistry \
    --login-server targetregistry.azurecr.io \
    --use-identity [system]

Per aggiungere le credenziali per un'identità assegnata dall'utente per l'autenticazione con il registro targetregistry, passare use-identity con un valore dell'ID client dell'identità. Ad esempio:

az acr task credential add \
    --name helloworld \
    --registry myregistry \
    --login-server targetregistry.azurecr.io \
    --use-identity <clientID>

È possibile ottenere l'ID client dell'identità eseguendo il comando az identity show . L'ID client è un GUID del formato xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.

Il --use-identity parametro non è facoltativo, se nel Registro di sistema è disabilitato l'accesso alla rete pubblica e si basa solo su determinati servizi attendibili per eseguire attività del Registro Azure Container. Vedere, esempio di Attività del Registro Azure Container come servizio attendibile.

5. Eseguire l'attività

Dopo aver configurato un'attività con un'identità gestita, eseguire l'attività. Ad esempio, per testare una delle attività create in questo articolo, attivarla manualmente usando il comando az acr task run . Se sono stati configurati trigger di attività aggiuntivi e automatizzati, l'attività viene eseguita quando viene attivata automaticamente.

Passaggi successivi

In questo articolo si è appreso come abilitare e usare un'identità gestita assegnata dall'utente o assegnata dal sistema in un'attività del Registro Azure Container. Per gli scenari per accedere alle risorse protette da un'attività del Registro Azure Container tramite un'identità gestita, vedere: