قفل صورة حاوية في سجل حاوية Azure

في سجل حاويات Azure، يمكنك قفل إصدار الصورة أو المستودع بحيث لا يمكن حذفه أو تحديثه. لقفل صورة أو مستودع، قم بتحديث سماته باستخدام أمر Azure CLI «az acr repository update»

تتطلب هذه المقالة «run» Azure CLI في Azure Cloud Shell أو محليًّا (الإصدار 2.0.55 أو يوصى باستخدام إصدار أحدث). قم بتشغيل az --version للعثور على الإصدار. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت Azure CLI.

هام

لا تنطبق هذه المقالة على تأمين السجل بأكمله، على سبيل المثال، استخدام > في مدخل Microsoft Azure، أو أوامر az lock في Azure CLI. لا يمنعك قفل مصدر السجل من إنشاء أو تحديث أو حذف البيانات في المستودعات. تأمين سجل يؤثر فقط على عمليات الإدارة مثل إضافة أو حذف النسخ المتماثلة أو حذف السجل نفسه. لمزيد من المعلومات في قفل الموارد لمنع حدوث تغييرات غير متوقعة.

السيناريوهات

بشكل افتراضي، صورة موسومة في 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

قفل صورة بالعلامة

لتأمين صورة myrepo:tag في myregistry، قم بتشغيل الأمر التالي az acr repository update :

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

تأمين صورة من خلال تجزئة بيان التطبيق

لتأمين صورة myrepo التي تم تحديدها بواسطة ملخص البيان (تجزئة SHA-256، ممثلة باسم sha256:...)، قم بتشغيل الأمر التالي. (للعثور على تشفير رسالة بيان التطبيق المرتبط بواحدة أو أكثر من علامات الصور، قم بتشغيل الأمر 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» لمنع حذف أو تحديث إصدارات الصورة في مستودع. لتعيين سمات إضافية، راجع مرجع أمر «az acr repository update»

لمشاهدة السمات التي تم تعيينها لإصدار صورة أو مستودع، استخدم الأمر «az acr repository show».

لمزيد من المعلومات، راجع «Delete» صور الحاوية في Azure Container Registry.