Bloqueo de una imagen de contenedor en una instancia de Azure Container Registry

En Azure Container Registry, puede bloquear una versión de la imagen o un repositorio para que no pueda eliminarse o actualizarse. Para bloquear una imagen o un repositorio, actualice sus atributos mediante el comando az acr repository update de la CLI de Azure.

En este artículo se requiere que ejecute la CLI de Azure en Azure Cloud Shell o localmente (se recomienda la versión 2.0.55 o posterior). Ejecute az --version para encontrar la versión. Si necesita instalarla o actualizarla, vea Instalación de la CLI de Azure.

Importante

Este artículo no se aplica al bloqueo de un registro completo, por ejemplo, mediante el uso de Configuración > Bloqueos en Azure Portal o los comandos az lock de la CLI de Azure. El bloqueo de un recurso de registro no impide la creación, actualización o eliminación de datos en los repositorios. El bloqueo de un registro solo afecta a las operaciones de administración, como agregar o eliminar replicaciones o eliminar el propio registro. Para más información, consulte Bloqueo de recursos para impedir cambios inesperados.

Escenarios

De forma predeterminada, una imagen etiquetada en Azure Container Registry es mutable, por lo que con los permisos adecuados puede actualizar e insertar repetidamente una imagen con la misma etiqueta en un registro. Las imágenes de contenedor también se pueden eliminar según sea necesario. Este comportamiento es útil al desarrollar imágenes y es necesario mantener un tamaño para el registro.

Sin embargo, cuando implemente una imagen de contenedor en producción, puede que necesite una inmutable. Una imagen inmutable es aquella que no puede eliminar o sobrescribir por accidente.

Consulte Recomendaciones para el etiquetado y el control de versiones de las imágenes de contenedor para las estrategias de etiquetado y versión de las imágenes en el registro.

Use el comando az acr repository update para establecer los atributos del repositorio de forma que pueda:

  • Bloquear una versión de la imagen o un repositorio entero

  • Proteger una versión de la imagen o un repositorio de la eliminación, pero permitir actualizaciones

  • Evitar operaciones de lectura (extracción) en una versión de la imagen o en la totalidad del repositorio

Consulte las secciones siguientes para ver ejemplos.

Bloquear una imagen o un repositorio

Mostrar los atributos del repositorio actual

Para ver los atributos actuales de un repositorio, ejecute el siguiente comando az acr repository show:

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

Mostrar los atributos actuales de la imagen

Para ver los atributos actuales de una etiqueta, ejecute el siguiente comando az acr repository show:

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

Bloquear una imagen por etiqueta

Para bloquear la imagen myimage:tag en myregistry, ejecute el siguiente comando az acr repository update:

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

Bloquear una imagen por la síntesis del manifiesto

Para bloquear una imagen myimage identificada por la síntesis del manifiesto (hash de SHA-256, representado como sha256:...), ejecute el siguiente comando. (Para encontrar la síntesis del manifiesto asociada con una o varias etiquetas de imagen, ejecute el comando az acr repository show-manifests).

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

Bloqueo de un repositorio

Para bloquear el repositorio myrepo y todas las imágenes que contiene, ejecute el siguiente comando:

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

Proteger una imagen o un repositorio de la eliminación

Proteger una imagen de la eliminación

Para permitir que la imagen myimage:tag se actualice pero no se elimine, ejecute el siguiente comando:

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

Proteger un repositorio de la eliminación

El comando siguiente establece el repositorio myrepo para que no se pueda eliminar. Sin embargo, se pueden actualizar o eliminar imágenes individuales.

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

Evitar operaciones de lectura en una imagen o un repositorio

Para evitar operaciones de lectura (extracción) en la imagen myimage:tag, ejecute el siguiente comando:

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

Para evitar operaciones de lectura en todas las imágenes del repositorio myimage, ejecute el siguiente comando:

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

Desbloquear una imagen o un repositorio

Para restaurar el comportamiento predeterminado de la imagen myimage:tag para que se pueda eliminar y actualizar, ejecute el siguiente comando:

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

Para restaurar el comportamiento predeterminado del repositorio myrepo y de todas las imágenes para que se puedan eliminar y actualizar, ejecutan el siguiente comando:

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

Pasos siguientes

En este artículo, ha aprendido sobre el uso del comando az acr repository update para evitar la eliminación o la actualización de versiones de imágenes de un repositorio. Para establecer atributos adicionales, consulte la referencia del comando az acr repository update.

Para ver los atributos establecidos para un repositorio o una versión de la imagen, use el comando az acr repository show.

Para más información sobre las operaciones de eliminación, consulte Eliminación de imágenes de contenedor en Azure Container Registry.