Partilhar via


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.