Azure 컨테이너 레지스트리의 컨테이너 이미지 잠금
Azure Container Registry에서 이미지 버전 또는 리포지토리를 삭제하거나 업데이트할 수 없도록 잠글 수 있습니다. 이미지나 리포지토리를 잠그려면 Azure CLI 명령 az acr repository update를 사용하여 해당 특성을 업데이트합니다.
이 문서에서는 Azure Cloud Shell에서 또는 로컬로 Azure CLI를 실행해야 합니다(버전 2.0.55 이상 권장). az --version
을 실행하여 버전을 찾습니다. 설치 또는 업그레이드해야 하는 경우 Azure CLI 설치를 참조하세요.
Important
이 문서는 Azure Portal의 설정 > 잠금 또는 Azure CLI의 az lock
명령을 사용하는 것처럼 전체 레지스트리를 잠그는 경우에는 적용되지 않습니다. 레지스트리 리소스를 잠그더라도 리포지토리에서 데이터를 생성, 업데이트 또는 삭제할 수 있습니다. 레지스트리를 잠그면 복제를 추가 또는 삭제하거나 레지스트리 자체를 삭제하는 등의 관리 작업에만 영향을 줍니다. 자세한 내용은 예기치 않은 변경이 생기지 않도록 리소스 잠금을 참조하세요.
시나리오
기본적으로 Azure Container Registry의 태그가 지정된 이미지는 변경 가능하므로 적절한 사용 권한이 있으면 동일한 태그가 있는 이미지를 반복적으로 업데이트하고 레지스트리로 푸시할 수 있습니다. 필요에 따라 컨테이너 이미지를 삭제할 수도 있습니다. 이 동작은 이미지를 개발하고 레지스트리의 크기를 유지해야 하는 경우에 유용합니다.
그러나 컨테이너 이미지를 프로덕션에 배포하는 경우에는 변경 불가능한 컨테이너 이미지가 필요할 수 있습니다. 변경 불가능한 이미지는 실수로 삭제하거나 덮어쓸 수 없는 이미지입니다.
레지스트리에서 이미지에 태그를 지정하고 버전을 지정하는 전략은 컨테이너 이미지 태그 지정 및 버전 지정 권장 사항을 참조하세요.
다음을 수행할 수 있도록 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 myrepo:tag \
--output jsonc
태그로 이미지 잠금
myregistry에서 myrepo:tag 이미지를 잠그려면 다음 az acr repository update 명령을 실행합니다.
az acr repository update \
--name myregistry --image myrepo:tag \
--write-enabled false
매니페스트 다이제스트로 이미지 잠금
매니페스트 다이제스트(sha256:...
으로 표시되는 SHA-256 해시)로 식별되는 myrepo 이미지를 잠그려면 다음 명령을 실행합니다. (하나 이상의 이미지 태그와 연결된 매니페스트 다이제스트를 찾으려면 az acr manifest list-metadata 명령을 실행합니다.)
az acr repository update \
--name myregistry --image myrepo@sha256:123456abcdefg \
--write-enabled false
리포지토리 잠금
myrepo 리포지토리 및 모든 이미지를 잠그려면 다음 명령을 실행합니다.
az acr repository update \
--name myregistry --repository myrepo \
--write-enabled false
현재 리포지토리 특성 나열
이미지 잠금 목록을 나타내도록 리포지토리 특성을 업데이트하려면 az acr repository update 명령을 실행합니다.
az acr repository update \
--name myregistry --repository myrepo \
--list-enabled false
이미지 잠금 시 이미지 특성 표시
특성에서 --list-enabled false
가 사용하도록 설정된 이미지 잠금의 태그를 쿼리하려면 az acr repository show 명령을 실행합니다.
az acr repository show-manifests \
--name myregistry --repository myrepo \
--query "[?listEnabled==null].tags"
--output table
태그 및 해당 매니페스트에 대한 이미지 특성을 확인합니다.
참고 항목
- 태그와 매니페스트의 변경 가능한 특성은 별도로 관리됩니다. 즉, 태그에 대한 특성
deleteEnabled=false
를 설정해도 해당 매니페스트에 대해 동일하게 설정되지 않습니다.
- 아래 스크립트를 사용하여 특성을 쿼리합니다.
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"
참고 항목
이미지 특성이 writeEnabled=false
또는 deleteEnabled=false
로 설정되면 이미지 삭제가 차단됩니다.
이미지 또는 리포지토리가 삭제되지 않도록 보호
이미지가 삭제되지 않도록 보호
myrepo:tag 이미지가 업데이트되지만 삭제되지 않도록 하려면 다음 명령을 실행합니다.
az acr repository update \
--name myregistry --image myrepo:tag \
--delete-enabled false --write-enabled true
리포지토리가 삭제되지 않도록 보호
다음 명령은 myrepo 리포지토리가 삭제되지 않도록 설정합니다. 개별 이미지는 계속 업데이트하거나 삭제할 수 있습니다.
az acr repository update \
--name myregistry --repository myrepo \
--delete-enabled false --write-enabled true
이미지 또는 리포지토리에서 읽기 작업 방지
myrepo:tag 이미지에 대한 읽기(가져오기) 작업을 방지하려면 다음 명령을 실행합니다.
az acr repository update \
--name myregistry --image myrepo:tag \
--read-enabled false
myrepo 리포지토리의 모든 이미지에서 읽기(끌어오기) 작업을 방지하려면 다음 명령을 실행합니다.
az acr repository update \
--name myregistry --repository myrepo \
--read-enabled false
이미지 또는 리포지토리 잠금 해제
myrepo:tag 이미지를 삭제하고 업데이트할 수 있도록 기본 동작을 복원하려면 다음 명령을 실행합니다.
az acr repository update \
--name myregistry --image myrepo: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 \
--name myregistry --image $repo@$digest \
--delete-enabled true --write-enabled true
다음 단계
이 문서에서는 az acr repository update 명령을 사용하여 리포지토리의 이미지 버전 삭제 또는 업데이트를 방지하는 방법을 배웠습니다. 추가 특성을 설정하려면 az acr repository update 명령 참조를 참조하세요.
이미지 버전 또는 리포지토리에 설정된 특성을 보려면 az acr repository show 명령을 사용합니다.
삭제 작업에 대한 자세한 내용은 Azure Container Registry에서 컨테이너 이미지 삭제를 참조하세요.