Condividi tramite


Bloccare un'immagine del contenitore in un'istanza di Registro Azure Container

In un registro Azure Container è possibile bloccare una versione dell'immagine o un repository in modo che non possa essere eliminata o aggiornata. Per bloccare un'immagine o un repository, aggiornarne gli attributi usando il comando dell'interfaccia della riga di comando di Azure az acr repository update.

Questo articolo richiede l'esecuzione dell'interfaccia della riga di comando di Azure in Azure Cloud Shell o localmente (si consiglia la versione 2.0.55 o una versione 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.

Importante

Questo articolo non si applica al blocco di un intero registro, ad esempio usando Blocchi > Impostazioni nel portale di Azure o comandi az lock nell'interfaccia della riga di comando di Azure. Il blocco di una risorsa del Registro di sistema non impedisce di creare, aggiornare o eliminare dati nei repository. Il blocco di un Registro di sistema influisce solo sulle operazioni di gestione, ad esempio l'aggiunta o l'eliminazione di repliche o l'eliminazione del Registro di sistema stesso. Per altre informazioni sono disponibili in Bloccare le risorse per impedire modifiche impreviste.

Scenari

Per impostazione predefinita, un'immagine contrassegnata in Registro Azure Container è modificabile, quindi con le autorizzazioni appropriate è possibile aggiornare ed eseguire ripetutamente il push di un'immagine con lo stesso tag in un registro. Le immagini del contenitore possono anche essere eliminate in base alle esigenze. Questo comportamento è utile quando si sviluppano immagini ed è necessario mantenere una dimensione per il registro.

Tuttavia, quando si distribuisce un'immagine del contenitore nell'ambiente di produzione, potrebbe essere necessaria un'immagine del contenitore non modificabile. Un'immagine non modificabile è una che non è possibile eliminare o sovrascrivere accidentalmente.

Vedere Suggerimenti per l'assegnazione di tag e il controllo delle versioni delle immagini del contenitore per le strategie per l'assegnazione di tag e versioni delle immagini nel registro.

Usare il comando az acr repository update per impostare gli attributi del repository in modo che sia possibile:

  • Bloccare una versione dell'immagine o un intero repository

  • Proteggere una versione dell'immagine o un repository dall'eliminazione, ma consentire gli aggiornamenti

  • Impedire operazioni di lettura (pull) in una versione dell'immagine o in un intero repository

Per esempi, vedere le sezioni seguenti.

Bloccare un'immagine o un repository

Visualizzare gli attributi correnti del repository

Per visualizzare gli attributi correnti di un repository, eseguire il comando az acr repository showseguente:

az acr repository show \
    --name myregistry --repository myrepo \
    --output jsonc

Mostra gli attributi dell'immagine corrente

Per visualizzare gli attributi correnti di un tag, eseguire il comando az acr repository show seguente:

az acr repository show \
    --name myregistry --image myrepo:tag \
    --output jsonc

Bloccare un'immagine in base al tag

Per bloccare l'immagine myrepo:tag in myregistry, eseguire il comando az acr repository update seguente:

az acr repository update \
    --name myregistry --image myrepo:tag \
    --write-enabled false

Bloccare un'immagine in base al digest del manifesto

Per bloccare un'immagine myrepo identificata dal digest del manifesto (hash SHA-256, rappresentato come sha256:...), eseguire il comando seguente. Per trovare il digest del manifesto associato a uno o più tag di immagine, eseguire il comando az acr manifest list-metadata.

az acr repository update \
    --name myregistry --image myrepo@sha256:123456abcdefg \
    --write-enabled false

Bloccare un repository

Per bloccare il repository myrepo e tutte le immagini in esso contenute, eseguire il comando seguente:

az acr repository update \
    --name myregistry --repository myrepo \
    --write-enabled false

Elencare gli attributi correnti del repository

Per aggiornare gli attributi del repository per indicare l'elenco di blocchi delle immagini, eseguire il comando az acr repository update.

az acr repository update \
    --name myregistry --repository myrepo \ 
    --list-enabled false

Visualizzare gli attributi dell'immagine nel blocco immagine

Per eseguire una query sui tag in un blocco immagine con --list-enabled false abilitato nell'attributo, eseguire il comando az acr repository show.

az acr repository show-manifests \
    --name myregistry --repository myrepo \
    --query "[?listEnabled==null].tags" 
    --output table

Controllare gli attributi dell'immagine per il tag e il manifesto corrispondente.

Nota

  • Gli attributi modificabili dei tag e del manifesto vengono gestiti separatamente. Ovvero, l'impostazione dell'attributo deleteEnabled=false per il tag non imposta lo stesso per il manifesto corrispondente.
  • Eseguire una query sugli attributi usando lo script seguente:
registry="myregistry"
repo="myrepo"
tag="mytag"

az login
az acr repository show -n $registry --repository $repo
az acr manifest show-metadata -r $registry -n "$repo:$tag"
digest=$(az acr manifest show-metadata -r $registry -n "$repo:$tag" --query digest -o tsv)
az acr manifest show-metadata -r $registry -n "$repo@$digest"

Nota

Se gli attributi dell'immagine sono impostati con writeEnabled=false o deleteEnabled=false, bloccherà l'eliminazione dell'immagine.

Proteggere un'immagine o un repository dall'eliminazione

Proteggere un'immagine dall'eliminazione

Per consentire l'aggiornamento dell'immagine myrepo:tag ma non eliminata, eseguire il comando seguente:

az acr repository update \
    --name myregistry --image myrepo:tag \
    --delete-enabled false --write-enabled true

Proteggere un repository dall'eliminazione

Il comando seguente imposta il repository myrepo in modo che non possa essere eliminato. È comunque possibile aggiornare o eliminare singole immagini.

az acr repository update \
    --name myregistry --repository myrepo \
    --delete-enabled false --write-enabled true

Impedire operazioni di lettura su un'immagine o un repository

Per impedire operazioni di lettura (pull) nell'immagine myrepo:tag, eseguire il comando seguente:

az acr repository update \
    --name myregistry --image myrepo:tag \
    --read-enabled false

Per impedire operazioni di lettura su tutte le immagini nel repository myrepo, eseguire il comando seguente:

az acr repository update \
    --name myregistry --repository myrepo \
    --read-enabled false

Sbloccare un'immagine o un repository

Per ripristinare il comportamento predefinito dell'immagine myrepo:tag in modo che possa essere eliminato e aggiornato, eseguire il comando seguente:

az acr repository update \
    --name myregistry --image myrepo:tag \
    --delete-enabled true --write-enabled true

Per ripristinare il comportamento predefinito del repository myrepo, abilitare l'eliminazione e l'aggiornamento di singole immagini, eseguire il comando seguente:

az acr repository update \
    --name myregistry --repository myrepo \
    --delete-enabled true --write-enabled true

Tuttavia, se è presente un blocco nel manifesto, è necessario eseguire un comando aggiuntivo per sbloccare il manifesto.

az acr repository update \
   --name myregistry --image $repo@$digest \
   --delete-enabled true --write-enabled true

Passaggi successivi

In questo articolo si è appreso come usare il comando az acr repository update per impedire l'eliminazione o l'aggiornamento delle versioni delle immagini in un repository. Per impostare attributi aggiuntivi, vedere il riferimento al comando az acr repository update.

Per visualizzare gli attributi impostati per una versione dell'immagine o un repository, usare il comando az acr repository show.

Per informazioni dettagliate sulle operazioni di eliminazione, vedere Eliminare immagini del contenitore in Registro Azure Container.