Share via


Pull di immagini di App contenitore di Azure con l'identità gestita

È possibile eseguire il pull delle immagini dai repository privati in Microsoft Registro Azure Container usando identità gestite per l'autenticazione per evitare l'uso di credenziali amministrative. È possibile usare un'identità gestita assegnata dal sistema o assegnata dall'utente per l'autenticazione con Registro Azure Container.

Con un'identità gestita assegnata dal sistema, l'identità viene creata e gestita da App Azure Container. L'identità è associata all'app contenitore e viene eliminata quando l'app viene eliminata. Con un'identità gestita assegnata dall'utente, si crea e si gestisce l'identità all'esterno di App Azure Container. Può essere assegnato a più risorse di Azure, incluse le app di Azure Container.

App contenitore verifica la presenza di una nuova versione dell'immagine ogni volta che viene avviato un contenitore. Nella terminologia di Docker o Kubernetes, App contenitore imposta i criteri di pull delle immagini di ogni contenitore su always.

Questo articolo descrive come usare il portale di Azure per configurare l'app contenitore in modo da usare le identità gestite assegnate dall'utente e assegnate dal sistema per eseguire il pull delle immagini dai repository Registro Azure Container privati.

Identità gestita assegnata dall'utente

I passaggi seguenti descrivono il processo per configurare l'app contenitore in modo da usare un'identità gestita assegnata dall'utente per eseguire il pull delle immagini dai repository Registro Azure Container privati.

  1. Creare un'app contenitore con un'immagine pubblica.
  2. Aggiungere l'identità gestita assegnata dall'utente all'app contenitore.
  3. Creare una revisione dell'app contenitore con un'immagine privata e l'identità gestita assegnata dall'utente.

Prerequisiti

  • Un account Azure con una sottoscrizione attiva.

  • Un Registro Azure Container privato contenente un'immagine da estrarre.

  • Il Registro Azure Container deve consentire ai token del gruppo di destinatari arm di eseguire l'autenticazione per usare l'identità gestita per eseguire il pull delle immagini. Usare il comando seguente per verificare se i token ARM sono autorizzati ad accedere al Registro Azure Container:

    az acr config authentication-as-arm show -r <REGISTRY>
    

    Se i token ARM non sono consentiti, è possibile consentirli con il comando seguente:

    az acr config authentication-as-arm update -r <REGISTRY> --status enabled
    
  • Creare un'identità gestita assegnata dall'utente. Per altre informazioni, vedere Creare un'identità gestita assegnata dall'utente.

Creare un'app contenitore

Usare la procedura seguente per creare un'app contenitore con l'immagine di avvio rapido predefinita.

  1. Passare alla home page del portale.

  2. Cercare App contenitore nella barra di ricerca superiore.

  3. Selezionare App contenitore nei risultati della ricerca.

  4. Selezionare il pulsante Crea.

  5. Nella scheda Informazioni di base eseguire le azioni seguenti.

    Impostazione Azione
    Abbonamento Seleziona la tua sottoscrizione di Azure.
    Gruppo di risorse Selezionare un gruppo di risorse esistente oppure creane uno nuovo.
    Nome dell'app contenitore Immettere il nome di un'app contenitore.
    Location Selezionare una località.
    Creare l'ambiente dell'app contenitore Creare un nuovo ambiente o selezionare un ambiente esistente.
  6. Selezionare il pulsante Rivedi e crea nella parte inferiore della pagina Crea app contenitore.

  7. Selezionare il pulsante Crea nella parte inferiore della finestra Crea app contenitore.

Attendere alcuni minuti per il completamento della distribuzione dell'app contenitore. Al termine della distribuzione, selezionare Vai alla risorsa.

Aggiungere l'identità gestita assegnata dall'utente

  1. Selezionare Identità dal menu a sinistra.
  2. Selezionare la scheda Assegnata dall'utente .
  3. Selezionare il pulsante Aggiungi identità gestita assegnata dall'utente.
  4. Selezionare la propria sottoscrizione.
  5. Selezionare l'identità creata.
  6. Selezionare Aggiungi.

Creare una revisione dell'app contenitore

Creare una revisione dell'app contenitore con un'immagine privata e l'identità gestita assegnata dal sistema.

  1. Selezionare Gestione revisioni dal menu a sinistra.

  2. Selezionare Crea nuova revisione.

  3. Selezionare l'immagine del contenitore dalla tabella Immagine contenitore.

  4. Immettere le informazioni nella finestra di dialogo Modifica un contenitore .

    Campo Azione
    Nome Immettere un nome per il contenitore.
    Origine immagine Selezionare Registro Azure Container.
    Autenticazione Selezionare Identità gestita.
    Identità Selezionare l'identità creata dal menu a discesa.
    Registro Selezionare il Registro di sistema che si vuole usare dal menu a discesa.
    Image Immettere il nome dell'immagine da usare.
    Tag immagine Immettere il nome e il tag dell'immagine da estrarre.

    Screen shot of the Edit a container dialog entering user assigned managed identity.

    Nota

    Se le credenziali amministrative non sono abilitate nel registro di Registro Azure Container, verrà visualizzato un messaggio di avviso e sarà necessario immettere manualmente il nome dell'immagine e le informazioni sul tag.

  5. Seleziona Salva.

  6. Selezionare Crea nella pagina Crea e distribuisci nuova revisione .

Verrà creata e distribuita una nuova revisione. Il portale tenterà automaticamente di aggiungere il acrpull ruolo all'identità gestita assegnata dall'utente. Se il ruolo non viene aggiunto, è possibile aggiungerlo manualmente.

È possibile verificare che il ruolo sia stato aggiunto controllando l'identità dal riquadro Identità della pagina dell'app contenitore.

  1. Selezionare Identità dal menu a sinistra.
  2. Selezionare la scheda Assegnata dall'utente .
  3. Selezionare l'identità gestita assegnata dall'utente.
  4. Selezionare Assegnazioni di ruolo di Azure dal menu nella pagina della risorsa di identità gestita.
  5. Verificare che il acrpull ruolo sia assegnato all'identità gestita assegnata dall'utente.

Creare un'app contenitore con un'immagine privata

Se non si vuole iniziare creando un'app contenitore con un'immagine pubblica, è anche possibile eseguire le operazioni seguenti.

  1. Creare un'identità gestita assegnata dall'utente.
  2. Aggiungere il acrpull ruolo all'identità gestita assegnata dall'utente.
  3. Creare un'app contenitore con un'immagine privata e l'identità gestita assegnata dall'utente.

Questo metodo è tipico negli scenari IaC (Infrastructure as Code).

Pulire le risorse

Se non si intende continuare a usare questa applicazione, è possibile eliminare l'istanza di App Azure Container e tutti i servizi associati rimuovendo il gruppo di risorse.

Avviso

L'eliminazione del gruppo di risorse eliminerà tutte le risorse nel gruppo. Se nel gruppo sono presenti altre risorse, verranno eliminate anche. Se si vogliono mantenere le risorse, è possibile eliminare l'istanza dell'app contenitore e l'ambiente dell'app contenitore.

  1. Selezionare il gruppo di risorse nella sezione Panoramica .
  2. Selezionare il pulsante Elimina gruppo di risorse nella parte superiore della panoramica del gruppo di risorse.
  3. Immettere il nome del gruppo di risorse nella finestra di dialogo di conferma.
  4. Selezionare Elimina.
    Il completamento del processo per eliminare il gruppo di risorse può richiedere alcuni minuti.

Identità gestita assegnata dal sistema

Il metodo per la configurazione di un'identità gestita assegnata dal sistema nel portale di Azure equivale alla configurazione di un'identità gestita assegnata dall'utente. L'unica differenza è che non è necessario creare un'identità gestita assegnata dall'utente. Al contrario, l'identità gestita assegnata dal sistema viene creata quando si crea l'app contenitore.

Il metodo per configurare un'identità gestita assegnata dal sistema nel portale di Azure è:

  1. Creare un'app contenitore con un'immagine pubblica.
  2. Creare una revisione dell'app contenitore con un'immagine privata e l'identità gestita assegnata dal sistema.

Prerequisiti

Creare un'app contenitore

Seguire questa procedura per creare un'app contenitore con l'immagine di avvio rapido predefinita.

  1. Passare alla home page del portale.

  2. Cercare App contenitore nella barra di ricerca superiore.

  3. Selezionare App contenitore nei risultati della ricerca.

  4. Selezionare il pulsante Crea.

  5. Nella scheda Informazioni di base eseguire le azioni seguenti.

    Impostazione Azione
    Abbonamento Seleziona la tua sottoscrizione di Azure.
    Gruppo di risorse Selezionare un gruppo di risorse esistente oppure creane uno nuovo.
    Nome dell'app contenitore Immettere il nome di un'app contenitore.
    Location Selezionare una località.
    Creare l'ambiente dell'app contenitore Creare un nuovo ambiente o selezionare un ambiente esistente.
  6. Selezionare il pulsante Rivedi e crea nella parte inferiore della pagina Crea app contenitore.

  7. Selezionare il pulsante Crea nella parte inferiore della pagina Crea app contenitore.

Attendere alcuni minuti per il completamento della distribuzione dell'app contenitore. Al termine della distribuzione, selezionare Vai alla risorsa.

Modificare e distribuire una revisione

Modificare il contenitore per usare l'immagine dal Registro Azure Container privato e configurare l'autenticazione per l'uso dell'identità assegnata dal sistema.

  1. Contenitori dal menu laterale a sinistra.

  2. Selezionare Modifica e distribuzione.

  3. Selezionare il contenitore simple-hello-world-container dall'elenco.

    Impostazione Azione
    Nome Immettere il nome dell'app contenitore.
    Origine immagine Selezionare Registro Azure Container.
    Autenticazione Selezionare Identità gestita.
    Identità Selezionare Sistema assegnato.
    Registro Immettere il nome del Registro di sistema.
    Image Immettere il nome dell'immagine.
    Tag immagine Immettere il tag .

    Screen shot Edit a container with system-assigned managed identity.

    Nota

    Se le credenziali amministrative non sono abilitate nel registro di Registro Azure Container, verrà visualizzato un messaggio di avviso e sarà necessario immettere manualmente il nome dell'immagine e le informazioni sul tag.

  4. Selezionare Salva nella parte inferiore della pagina.

  5. Selezionare Crea nella parte inferiore della pagina Crea e distribuisci nuova revisione

  6. Dopo alcuni minuti, selezionare Aggiorna nella pagina Gestione revisioni per visualizzare la nuova revisione.

Verrà creata e distribuita una nuova revisione. Il portale tenterà automaticamente di aggiungere il acrpull ruolo all'identità gestita assegnata dal sistema. Se il ruolo non viene aggiunto, è possibile aggiungerlo manualmente.

È possibile verificare che il ruolo sia stato aggiunto controllando l'identità nel riquadro Identità della pagina dell'app contenitore.

  1. Selezionare Identità dal menu a sinistra.
  2. Selezionare la scheda Assegnata dal sistema .
  3. Selezionare Assegnazioni di ruolo di Azure.
  4. Verificare che il acrpull ruolo sia assegnato all'identità gestita assegnata dal sistema.

Pulire le risorse

Se non si intende continuare a usare questa applicazione, è possibile eliminare l'istanza di App Azure Container e tutti i servizi associati rimuovendo il gruppo di risorse.

Avviso

L'eliminazione del gruppo di risorse eliminerà tutte le risorse nel gruppo. Se nel gruppo sono presenti altre risorse, verranno eliminate anche. Se si vogliono mantenere le risorse, è possibile eliminare l'istanza dell'app contenitore e l'ambiente dell'app contenitore.

  1. Selezionare il gruppo di risorse nella sezione Panoramica .
  2. Selezionare il pulsante Elimina gruppo di risorse nella parte superiore della panoramica del gruppo di risorse.
  3. Immettere il nome del gruppo di risorse nella finestra di dialogo di conferma.
  4. Selezionare Elimina.
    Il completamento del processo per eliminare il gruppo di risorse può richiedere alcuni minuti.

Questo articolo descrive come configurare l'app contenitore per l'uso di identità gestite per eseguire il pull delle immagini da un repository di Registro Azure Container privato usando l'interfaccia della riga di comando di Azure e Azure PowerShell.

Prerequisiti

Prerequisito Descrizione
Account di Azure Un account Azure con una sottoscrizione attiva. Se non ne hai uno, puoi crearne uno gratuitamente.
Interfaccia della riga di comando di Azure Se si usa l'interfaccia della riga di comando di Azure, installare l'interfaccia della riga di comando di Azure nel computer locale.
Azure PowerShell Se si usa PowerShell, installare Azure PowerShell nel computer locale. Verificare che la versione più recente del modulo Az.App sia installata eseguendo il comando Install-Module -Name Az.App.
Registro Azure Container Un Registro Azure Container privato contenente un'immagine da estrarre. Guida introduttiva: Creare un registro contenitori privato usando l'interfaccia della riga di comando di Azure o Avvio rapido: Creare un registro contenitori privato con Azure PowerShell

Attrezzaggio

Per prima cosa, accedere ad Azure dall'interfaccia della riga di comando o da PowerShell. Eseguire il comando seguente e seguire le istruzioni per completare il processo di autenticazione.

Installare l'estensione App contenitore di Azure per l'interfaccia della riga di comando.

az extension add --name containerapp --upgrade

Ora che l'estensione o il modulo corrente è installato, registrare lo Microsoft.App spazio dei nomi e il Microsoft.OperationalInsights provider se non sono stati registrati in precedenza.

az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights

Impostare quindi le variabili di ambiente seguenti. Sostituire i <SEGNAPOSTO> con i propri valori.

RESOURCE_GROUP="<YOUR_RESOURCE_GROUP_NAME>"
LOCATION="<YOUR_LOCATION>"
CONTAINERAPPS_ENVIRONMENT="<YOUR_ENVIRONMENT_NAME>"
REGISTRY_NAME="<YOUR_REGISTRY_NAME>"
CONTAINERAPP_NAME="<YOUR_CONTAINERAPP_NAME>"
IMAGE_NAME="<YOUR_IMAGE_NAME>"

Se si dispone già di un gruppo di risorse, ignorare questo passaggio. In caso contrario, creare un gruppo di risorse.

az group create \
  --name $RESOURCE_GROUP \
  --location $LOCATION

Creare un ambiente dell'app contenitore

Se l'ambiente non esiste, eseguire il comando seguente:

Per creare l'ambiente, eseguire il comando seguente:

az containerapp env create \
  --name $CONTAINERAPPS_ENVIRONMENT \
  --resource-group $RESOURCE_GROUP \
  --location $LOCATION

Passare alla sezione successiva per configurare l'identità gestita assegnata dall'utente o passare alla sezione Identità gestita assegnata dal sistema.

Identità gestita assegnata dall'utente

Seguire questa procedura per configurare l'identità gestita assegnata dall'utente:

  1. Creare un'identità gestita assegnata dall'utente.
  2. Se si usa PowerShell, assegnare un acrpull ruolo per il registro all'identità gestita. L'interfaccia della riga di comando di Azure effettua automaticamente questa assegnazione.
  3. Creare un'app contenitore con l'immagine dal registro privato autenticato con l'identità gestita assegnata dall'utente.

Creare un'identità gestita assegnata dall'utente

Creare un'identità gestita assegnata dall'utente. Sostituire PLACEHOLDERS <> con il nome dell'identità gestita.

IDENTITY="<YOUR_IDENTITY_NAME>"
az identity create \
  --name $IDENTITY \
  --resource-group $RESOURCE_GROUP

Ottenere l'ID risorsa dell'identità.

IDENTITY_ID=`az identity show \
  --name $IDENTITY \
  --resource-group $RESOURCE_GROUP \
  --query id`

Creare un'app contenitore

Creare l'app contenitore con l'immagine dal registro privato autenticato con l'identità.

Copiare l'ID risorsa dell'identità da incollare nei <segnaposto IDENTITY_ID> nel comando seguente. Se il tag immagine non latestè , sostituire 'latest' con il tag.

echo $IDENTITY_ID
az containerapp create \
  --name $CONTAINERAPP_NAME \
  --resource-group $RESOURCE_GROUP \
  --environment $CONTAINERAPPS_ENVIRONMENT \
  --user-assigned <IDENTITY_ID> \
  --registry-identity <IDENTITY_ID> \
  --registry-server "$REGISTRY_NAME.azurecr.io" \
  --image "$REGISTRY_NAME.azurecr.io/$IMAGE_NAME:latest"

Eseguire la pulizia

Attenzione

Il comando seguente elimina il gruppo di risorse specificato e tutte le risorse contenute al suo interno. Se nel gruppo di risorse specificato sono presenti anche risorse diverse da quelle usate in questa guida di avvio rapido, verranno eliminate.

az group delete --name $RESOURCE_GROUP

Identità gestita assegnata dal sistema

Per configurare un'identità assegnata dal sistema, è necessario:

  1. Creare un'app contenitore con un'immagine pubblica.
  2. Assegnare un'identità gestita assegnata dal sistema all'app contenitore.
  3. Aggiornare l'app contenitore con l'immagine privata.

Creare un'app contenitore

Creare un contenitore con un'immagine pubblica.

az containerapp create \
  --name $CONTAINERAPP_NAME \
  --resource-group $RESOURCE_GROUP \
  --environment $CONTAINERAPPS_ENVIRONMENT \
  --image mcr.microsoft.com/k8se/quickstart:latest \
  --target-port 80 \
  --ingress external

Aggiornare l'app contenitore

Aggiornare l'app contenitore con l'immagine dal registro contenitori privato e aggiungere un'identità assegnata dal sistema per autenticare l'Registro Azure Container pull. È anche possibile includere altre impostazioni necessarie per l'app contenitore, ad esempio l'ingresso, la scalabilità e le impostazioni dapr.

Impostare il server del Registro di sistema e attivare l'identità gestita assegnata dal sistema nell'app contenitore.

az containerapp registry set \
  --name $CONTAINERAPP_NAME \
  --resource-group $RESOURCE_GROUP \
  --identity system \
  --server "$REGISTRY_NAME.azurecr.io"
az containerapp update \
  --name $CONTAINERAPP_NAME \
  --resource-group $RESOURCE_GROUP \
  --image "$REGISTRY_NAME.azurecr.io/$IMAGE_NAME:latest"

Eseguire la pulizia

Attenzione

Il comando seguente elimina il gruppo di risorse specificato e tutte le risorse contenute al suo interno. Se nel gruppo di risorse specificato sono presenti anche risorse diverse da quelle usate in questa guida di avvio rapido, verranno eliminate.

az group delete --name $RESOURCE_GROUP

Passaggi successivi