Quando necessitiamo di un registry per Docker ci sono molti servizi disponibili, privati e pubblici, a pagamento o gratuiti. Azure Container Registry (ACR) è il servizio della piattaforma Microsoft Azure che offre la possibilità di storicizzare le nostre immagini in maniera privata, affidabile e geo distribuita. Offre inoltre funzionalità aggiuntive, come la possibilità di eseguire task per la creazione delle immagini e il supporto a Helm.
Per poter effettuare push e pull di immagini, però, ci si avvale degli stessi strumenti disponibili per gli altri registri. Nel caso di Docker, attraverso le istruzioni docker push e docker pull possiamo inviare o scaricare un'immagine, ma prima è fondamentale aver effettuato l'accesso. L'istruzione docker login permette di farlo specificando lo username e la password. Nel caso di ACR è disponibile una chiave d'accesso amministrativa, ma normalmente è disabilitata perché non permette di distinguere i permessi e chi ha effettuato l'operazione.
Il modo più semplice per effettuare l'accesso consiste quindi nell'utilizzare Azure CLI. Attraverso due semplice comandi possiamo prima di tutto entrare con le nostre credenziali Microsoft e successivamente ottenere la sessione di autenticazione per Docker.
az login az acr login --name ricciolo
Nell'esempio precedente vogliamo accedere all'istanza di nome ricciolo. Questa procedura richiede che l'utente utilizzato sia uno user o un guest configurato in Azure Active Directory (AAD) e abbia i permessi di accesso all'istanza da noi desiderata.
In alternativa possiamo utilizzare un service principal, cioè creare un applicativo che permetta l'accesso senza procedure web, ideale quindi per esecuzioni batch. Per farlo dobbiamo accedere nella sezione ADD e successivamente in App Registrations. Tramite il pulsante New registration diamo un nome al nostro principal.
Creato il principal accediamo alla sezione Certificates & secrets e generiamo un nuovo secret.
Annotiamolo perché questo rappresenta la password del principal. Nell'overview dell'app prendiamo inoltre nota del Application (client) ID, il quale rappresenta lo username.
L'ultimo step richiede l'assegnazione dei permessi, fondamentale nel caso dei principal, ma anche nel caso in cui utilizzassimo un utente AAD che non è amministratore dell'intera sottoscrizione. Nella sezione Access control (IAM) della nostra istanza ACR aggiungiamo quindi una nuova assegnazione per l'applicativo appena creato, indicando uno o più ruoli specifici, come per esempio, AcrPull e AcrPush.
Creato l'applicativo e dati i permessi, possiamo usare direttamente Docker per effettuare il login mediante client id e secret.
docker login ricciolo.azurecr.io --username 5100bea1-df8c-43d5-b4d5-05302fba74b4 --password fdgfdsgdsgdsgsdgf
In alternativa alla password è possibile anche usare i certificati dedicati alle applicazioni rendendo ancora più sicuro l'accesso. In generale è buona norma, come già detto, non usare l'utenza amministrativa predefinita, ma procedere con una delle due metodologie indicate.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare il trigger SQL con le Azure Function
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Effettuare il refresh dei dati di una QuickGrid di Blazor
Utilizzare Azure AI Studio per testare i modelli AI
Visualizzare le change sul plan di Terraform tramite le GitHub Actions
Utilizzare politiche di resiliency con Azure Container App
Filtrare i dati di una QuickGrid in Blazor con una drop down list
Come EF 8 ha ottimizzato le query che usano il metodo Contains
Generare HTML a runtime a partire da un componente Razor in ASP.NET Core
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Utilizzare Tailwind CSS all'interno di React: installazione