Блокировка образа контейнера в реестре контейнеров 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 manifest list-metadata.)
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".