Bloquear uma imagem de contentor num registo de contentor do Azure
Num registo de contentor do Azure, pode bloquear uma versão de imagem ou um repositório para que não possa ser eliminado ou atualizado. Para bloquear uma imagem ou um repositório, atualize os atributos com o comando da CLI do Azure az acr repository update.
Este artigo requer que execute a CLI do Azure no Azure Cloud Shell ou localmente (versão 2.0.55 ou posterior recomendada). Executar az --version
para localizar a versão. Se precisar de instalar ou atualizar, veja Install Azure CLI (Instalar o Azure CLI).
Importante
Este artigo não se aplica ao bloqueio de um registo inteiro, por exemplo, ao utilizar Bloqueios de Definições > no portal do Azure ou az lock
comandos na CLI do Azure. Bloquear um recurso de registo não o impede de criar, atualizar ou eliminar dados em repositórios. Bloquear um registo só afeta operações de gestão, como adicionar ou eliminar replicaçãos ou eliminar o próprio registo. Mais informações em Bloquear recursos para evitar alterações inesperadas.
Cenários
Por predefinição, uma imagem etiquetada no Azure Container Registry é mutável, pelo que, com as permissões adequadas, pode atualizar e enviar repetidamente uma imagem com a mesma etiqueta para um registo. As imagens de contentor também podem ser eliminadas conforme necessário. Este comportamento é útil quando desenvolve imagens e precisa de manter um tamanho para o seu registo.
No entanto, quando implementa uma imagem de contentor na produção, poderá precisar de uma imagem de contentor imutável . Uma imagem imutável é aquela que não pode eliminar ou substituir acidentalmente.
Veja Recomendações para etiquetar e controlo de versões de imagens de contentor para obter estratégias para etiquetar e copiar imagens no seu registo.
Utilize o comando az acr repository update para definir atributos de repositório para que possa:
Bloquear uma versão de imagem ou um repositório inteiro
Proteger uma versão de imagem ou repositório contra eliminação, mas permitir atualizações
Impedir operações de leitura (pull) numa versão de imagem ou num repositório inteiro
Veja as secções seguintes, por exemplo.
Bloquear uma imagem ou repositório
Mostrar os atributos do repositório atual
Para ver os atributos atuais de um repositório, execute o seguinte comando az acr repository show :
az acr repository show \
--name myregistry --repository myrepo \
--output jsonc
Mostrar os atributos de imagem atuais
Para ver os atributos atuais de uma etiqueta, execute o seguinte comando az acr repository show :
az acr repository show \
--name myregistry --image myrepo:tag \
--output jsonc
Bloquear uma imagem por etiqueta
Para bloquear a imagem myrepo:tag na myregistry, execute o seguinte comando az acr repository update :
az acr repository update \
--name myregistry --image myrepo:tag \
--write-enabled false
Bloquear uma imagem por resumo do manifesto
Para bloquear uma imagem myrepo identificada pelo resumo do manifesto (hash SHA-256, representado como sha256:...
), execute o seguinte comando. (Para localizar o resumo do manifesto associado a uma ou mais etiquetas de imagem, execute o comando az acr manifest list-metadata .)
az acr repository update \
--name myregistry --image myrepo@sha256:123456abcdefg \
--write-enabled false
Bloquear um repositório
Para bloquear o repositório myrepo e todas as imagens nele contidas, execute o seguinte comando:
az acr repository update \
--name myregistry --repository myrepo \
--write-enabled false
Listar os atributos do repositório atual
Para atualizar os atributos do repositório para indicar a listagem de bloqueio de imagem, execute o comando az acr repository update .
az acr repository update \
--name myregistry --repository myrepo \
--list-enabled false
Mostrar os atributos da imagem no bloqueio de imagem
Para consultar as etiquetas num bloqueio de imagem com --list-enabled false
ativado no atributo, execute o comando az acr repository show .
az acr repository show-manifests \
--name myregistry --repository myrepo \
--query "[?listEnabled==null].tags"
--output table
Verifique os atributos de imagem da etiqueta e o respetivo manifesto correspondente.
Nota
- Os atributos alteráveis das etiquetas e do manifesto são geridos separadamente. Ou seja, definir atributo
deleteEnabled=false
para a etiqueta não definirá o mesmo para o manifesto correspondente.
- Consulte os atributos com o script abaixo:
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 os atributos da imagem estiverem definidos com writeEnabled=false
ou deleteEnabled=false
, bloqueará a eliminação de imagens.
Proteger uma imagem ou repositório contra a eliminação
Proteger uma imagem contra eliminação
Para permitir que a imagem myrepo:tag seja atualizada, mas não eliminada, execute o seguinte comando:
az acr repository update \
--name myregistry --image myrepo:tag \
--delete-enabled false --write-enabled true
Proteger um repositório contra eliminação
O comando seguinte define o repositório myrepo para que não possa ser eliminado. As imagens individuais ainda podem ser atualizadas ou eliminadas.
az acr repository update \
--name myregistry --repository myrepo \
--delete-enabled false --write-enabled true
Impedir operações de leitura numa imagem ou repositório
Para impedir operações de leitura (pull) na imagem myrepo:tag , execute o seguinte comando:
az acr repository update \
--name myregistry --image myrepo:tag \
--read-enabled false
Para impedir operações de leitura em todas as imagens no repositório myrepo , execute o seguinte comando:
az acr repository update \
--name myregistry --repository myrepo \
--read-enabled false
Desbloquear uma imagem ou repositório
Para restaurar o comportamento predefinido da imagem myrepo:tag para que possa ser eliminada e atualizada, execute o seguinte comando:
az acr repository update \
--name myregistry --image myrepo:tag \
--delete-enabled true --write-enabled true
Para restaurar o comportamento predefinido do repositório myrepo e de todas as imagens para que possam ser eliminados e atualizados, execute o seguinte comando:
az acr repository update \
--name myregistry --repository myrepo \
--delete-enabled true --write-enabled true
Passos seguintes
Neste artigo, aprendeu a utilizar o comando az acr repository update para impedir a eliminação ou atualização de versões de imagens num repositório. Para definir atributos adicionais, veja az acr repository update command reference (Referência do comando az acr repository update ).
Para ver os atributos definidos para uma versão de imagem ou repositório, utilize o comando az acr repository show .
Para obter detalhes sobre as operações de eliminação, veja Eliminar imagens de contentor no Azure Container Registry.