Блокировка образа контейнера в реестре контейнеров Azure

В реестре контейнеров Azure можно заблокировать версию образа или репозиторий, чтобы их нельзя было удалить или обновить. Чтобы заблокировать образ или репозиторий, обновите их атрибуты с помощью команды Azure CLI az acr repository update.

При работе с этой статьей требуется запустить Azure CLI в Azure Cloud Shell или локально (рекомендуется версия 2.0.55 или более поздняя). Чтобы узнать версию, выполните команду az --version. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0.

Важно!

Эта статья не применяется для блокировки всего реестра, например с помощью параметра Параметры > Блокировки на портале Azure или команд az lock в Azure CLI. Блокировка ресурса реестра не мешает создавать, обновлять или удалять данные в репозиториях. Блокировка реестра влияет только на операции управления, такие как добавление или удаление репликации, а также удаление самого реестра. Дополнительные сведения см. в статье Блокировка ресурсов для предотвращения непредвиденных изменений.

Сценарии

По умолчанию изображение с тегами в реестре контейнеров Azure является изменяемым, поэтому при соответствующих разрешениях можно многократно обновлять и отправлять в реестр образ с тем же тегом. Образы контейнеров также можно Удалить по мере необходимости. Такое поведение полезно при разработке образов и необходимости сохранять размер реестра.

Однако при развертывании образа контейнера в рабочей среде может потребоваться неизменяемый образ контейнера. Неизменяемый образ — это тот, который нельзя случайно удалить или перезаписать.

См. также рекомендации по созданию тегов и управлению версиями для образов контейнеров, чтобы ознакомиться со стратегиями создания тегов и управления версиями образов в реестре.

Используйте команду az acr repository update, чтобы задать атрибуты репозитория и получить следующие возможности.

  • Блокировка версии образа или всего репозитория

  • Защита версии или репозитория образа от удаления, но разрешение обновлений

  • Запрет операции чтения (извлечения) для версии образа или всего репозитория

Дополнительные сведения см. в следующих разделах.

Блокировка образа или репозитория

Отображение текущих атрибутов репозитория

Чтобы просмотреть текущие атрибуты репозитория, выполните следующую команду az acr repository show:

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

Отображение атрибутов текущего образа

Чтобы просмотреть текущие атрибуты тега, выполните следующую команду az acr repository show:

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

Блокировка образа по тегу

Чтобы заблокировать образ myimage:tag в myregistry, выполните следующую команду az acr repository update:

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

Блокировка образа с помощью дайджеста манифеста

Чтобы заблокировать образ myimage, определяемый дайджестом манифеста (SHA-256 hash, представленного в виде sha256:...), выполните следующую команду. (Чтобы найти дайджест манифеста, связанный с одним или несколькими тегами образов, выполните команду az acr repository show-manifests.)

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

Блокировка репозитория

Чтобы заблокировать репозиторий myrepo и все образы в нем, выполните следующую команду:

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

Защита образа или репозитория от удаления

Защита образа от удаления

Чтобы разрешить обновление образа myimage:tag, но не удаление, выполните следующую команду:

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

Защита репозитория от удаления

Следующая команда задает такие характеристики репозиторию myrepo, что его нельзя удалить. Отдельные образы по-прежнему могут обновляться или удаляться.

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

Запрет операций чтения для образа или репозитория

Чтобы запретить операции чтения (извлечения) для образа myimage:tag, выполните следующую команду:

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

Чтобы запретить операции чтения для всех образов в репозитории myrepo, выполните следующую команду:

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

Разблокировка образа или репозитория

Чтобы восстановить поведение по умолчанию для образа myimage:tag и сделать возможным его удаление и обновление, выполните следующую команду:

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

Чтобы восстановить поведение по умолчанию для репозитория и всех образов myrepo и сделать возможным их удаление и обновление, выполните следующую команду:

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

Дальнейшие действия

В этой статье вы узнали об использовании команды az acr repository update для предотвращения удаления или обновления версий изображений в репозитории. Чтобы задать дополнительные атрибуты, ознакомьтесь со справкой по команде az acr repository update.

Чтобы просмотреть атрибуты, заданные для версии образа или репозитория, используйте команду az acr repository show.

Дополнительные сведения об операциях удаления см. в статье Удаление образов контейнеров в службе "Реестр контейнеров Azure".