Bloquear uma imagem de contentor num registo de contentor do Azure
Em um registro de contêiner do Azure, você pode bloquear uma versão de imagem ou um repositório para que ela não possa ser excluída ou atualizada. Para bloquear uma imagem ou um repositório, atualize seus atributos usando o comando azur CLI az acr repository update.
Este artigo requer que você 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 registro inteiro, por exemplo, usando Bloqueios de Configurações > no portal do Azure ou az lock
comandos na CLI do Azure. Bloquear um recurso do Registro não impede que você crie, atualize ou exclua dados em repositórios. Bloquear um registro afeta apenas as operações de gerenciamento, como adicionar ou excluir replicações ou excluir o próprio registro. Mais informações em Bloquear recursos para evitar alterações inesperadas.
Cenários
Por padrão, uma imagem marcada no Registro de Contêiner do Azure é mutável, portanto, com as permissões apropriadas, você pode atualizar e enviar repetidamente uma imagem com a mesma marca para um Registro. As imagens de contêiner também podem ser excluídas conforme necessário. Esse comportamento é útil quando você desenvolve imagens e precisa manter um tamanho para o registro.
No entanto, quando você implanta uma imagem de contêiner na produção, pode precisar de uma imagem de contêiner imutável . Uma imagem imutável é aquela que você não pode excluir ou substituir acidentalmente.
Consulte Recomendações para marcação e controle de versão de imagens de contêiner para estratégias de marcação e versão de imagens em seu registro.
Use o comando az acr repository update para definir atributos de repositório para que você possa:
Bloquear uma versão da imagem ou um repositório inteiro
Proteja uma versão de imagem ou repositório contra exclusão, mas permita atualizações
Impedir operações de leitura (pull) em uma versão de imagem ou em um repositório inteiro
Consulte as seções a seguir para obter exemplos.
Bloquear uma imagem ou repositório
Mostrar os atributos atuais do repositório
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 da imagem atual
Para ver os atributos atuais de uma tag, 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 no 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 de 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 tags 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, execute o seguinte comando:
az acr repository update \
--name myregistry --repository myrepo \
--write-enabled false
Listar os atributos atuais do repositório
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 de imagem no bloqueio de imagem
Para consultar as tags em um 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 da imagem para a tag e seu manifesto correspondente.
Nota
- Os atributos mutáveis de tags e manifesto são gerenciados separadamente. Ou seja, definir o atributo
deleteEnabled=false
para a tag não definirá o mesmo para o manifesto correspondente.
- Consulte os atributos usando 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 de imagem forem definidos com writeEnabled=false
ou deleteEnabled=false
, ele bloqueará a exclusão da imagem.
Proteger uma imagem ou repositório contra exclusão
Proteger uma imagem contra eliminação
Para permitir que a imagem myrepo:tag seja atualizada, mas não excluída, execute o seguinte comando:
az acr repository update \
--name myregistry --image myrepo:tag \
--delete-enabled false --write-enabled true
Proteger um repositório contra exclusão
O comando a seguir define o repositório myrepo para que ele não possa ser excluído. As imagens individuais ainda podem ser atualizadas ou excluídas.
az acr repository update \
--name myregistry --repository myrepo \
--delete-enabled false --write-enabled true
Impedir operações de leitura em uma imagem ou repositório
Para evitar 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 padrão da imagem myrepo:tag para que ela possa ser excluída 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 padrão do repositório myrepo , permitindo que imagens individuais sejam excluídas e atualizadas, execute o seguinte comando:
az acr repository update \
--name myregistry --repository myrepo \
--delete-enabled true --write-enabled true
No entanto, se houver um bloqueio no manifesto, você precisará executar um comando adicional para desbloquear o manifesto.
az acr repository update \
--name myregistry --image $repo@$digest \
--delete-enabled true --write-enabled true
Próximos passos
Neste artigo, você aprendeu sobre como usar o comando az acr repository update para impedir a exclusão ou atualização de versões de imagem em um repositório. Para definir atributos adicionais, consulte a referência do comando az acr repository update .
Para ver os atributos definidos para uma versão de imagem ou repositório, use o comando az acr repository show .
Para obter detalhes sobre operações de exclusão, consulte Excluir imagens de contêiner no Registro de Contêiner do Azure.