إن دفع البيانات الاصطناعية لسلسلة التوريد وسحبها باستخدام Azure Registry (معاينة)
استخدم سجل حاويات Azure لتخزين وإدارة رسم بياني للبيانات الاصطناعية لسلسلة التوريد، بما في ذلك التواقيع وفاتورة البرامج للمواد (SBOM) ونتائج فحص الأمان وأنواع أخرى.
لتوضيح هذه الإمكانية، توضح هذه المقالة كيفية استخدام OCI Registry ك Storage (ORAS) CLI إلى push
، discover
ورسم pull
بياني للبيانات الاصطناعية لسلسلة التوريد إلى سجل حاوية Azure.
يتم تغطية تخزين البيانات الاصطناعية OCI الفردية (الجذر) في دفع وسحب البيانات الاصطناعية OCI.
لتخزين رسم بياني للبيانات الاصطناعية، يتم تعريف مرجع إلى subject
أداة باستخدام بيان البيانات الاصطناعية OCI، الذي يعد جزءا من مواصفات توزيع OCI 1.1 قبل الإصدار.
دعم بيان البيانات الاصطناعية OCI 1.1 هو ميزة معاينة ACR وتخضع للقيود.
المتطلبات الأساسية
- سجل حاوية Azure - أنشئ سجل حاوية في اشتراك Azure الخاص بك. على سبيل المثال، استخدم مدخل Azure أو Azure CLI.
راجع قيود المعاينة لدعم سحابة Azure. - Azure CLI - الإصدار أو الإصدار
2.29.1
الأحدث مطلوب. راجع تثبيت Azure CLI للتثبيت و/أو الترقية. - ORAS CLI - الإصدار
v0.16.0
مطلوب. راجع: تثبيت ORAS. - Docker (اختياري) - لإكمال المعاينة، تتم الإشارة إلى صورة حاوية.
يمكنك استخدام Docker المثبت محليا لإنشاء صورة حاوية ودفعها، أو استخدام
acr build
للبناء عن بعد في Azure.
في حين أن Docker Desktop غير مطلوب،oras
يستخدم cli مخزن بيانات اعتماد سطح المكتب Docker لتخزين بيانات الاعتماد. إذا تم تثبيت Docker Desktop، يجب أن يكون قيد التشغيل لoras login
.
قيود المعاينة
يتوفر دعم بيان البيانات الاصطناعية ل OCI (مواصفات OCI 1.1) في جميع مناطق Azure العامة. Microsoft Azure التي تديرها 21Vianet والسحب الحكومية غير مدعومة حتى الآن.
تكوين السجل
تكوين متغيرات البيئة لنسخ/لصق الأوامر بسهولة في قوقعتك. يمكن تشغيل الأوامر محليا أو في Azure Cloud Shell.
ACR_NAME=myregistry
REGISTRY=$ACR_NAME.azurecr.io
REPO=net-monitor
TAG=v1
IMAGE=$REGISTRY/${REPO}:$TAG
المصادقة باستخدام هوية Microsoft Entra الفردية باستخدام رمز AD المميز. استخدم دائما "000..." ل USER_NAME
حيث يتم تحليل الرمز المميز من خلال PASSWORD
المتغير .
# Login to Azure
az login
# Login to ACR, using a token based on your Azure identity
USER_NAME="00000000-0000-0000-0000-000000000000"
PASSWORD=$(az acr login --name $ACR_NAME --expose-token --output tsv --query accessToken)
إشعار
يدعم ACR وORAS خيارات مصادقة متعددة للمستخدمين وأتمتة النظام. تستخدم هذه المقالة الهوية الفردية، باستخدام رمز Azure المميز. لمزيد من خيارات المصادقة، راجع المصادقة باستخدام سجل حاوية Azure
تسجيل الدخول مع ORAS
قم بتوفير بيانات الاعتماد إلى oras login
.
oras login $REGISTRY \
--username $USER_NAME \
--password $PASSWORD
دفع صورة حاوية
يربط هذا المثال رسماً بالبيانات الاصطناعية بصورة حاوية.
إنشاء صورة حاوية ودفعها، أو تخطي هذه الخطوة إذا كانت $IMAGE
تشير إلى صورة موجودة في السجل.
az acr build -r $ACR_NAME -t $IMAGE https://github.com/wabbit-networks/net-monitor.git#main
إنشاء نموذج توقيع لصورة الحاوية
echo '{"artifact": "'${IMAGE}'", "signature": "jayden hancock"}' > signature.json
إرفاق التوقيع إلى السجل، كمرجع لصورة الحاوية
oras attach
ينشئ الأمر مرجعا بين الملف (./signature.json
) إلى $IMAGE
. يوفر --artifact-type
إمكانية تمييز العناصر الملموسة، على غرار ملحقات الملفات التي تتيح أنواعاً مختلفة من الملفات. يمكن إرفاق ملف أو أكثر بتحديد [file]:[mediaType]
.
oras attach $IMAGE \
--artifact-type signature/example \
./signature.json:application/json
لمزيد من المعلومات حول إرفاق oras، راجع وثائق ORAS.
إرفاق البيانات الاصطناعية متعددة الملفات كمرجع
عند دفع عناصر OCI إلى سجل باستخدام ORAS، يتم دفع كل مرجع ملف ككائن ثنائي كبير الحجم. لدفع الكائنات الثنائية كبيرة الحجم المنفصلة، قم بالإشارة إلى الملفات بشكل فردي، أو مجموعة من الملفات عن طريق الرجوع إلى دليل.
لمزيد من المعلومات حول كيفية دفع مجموعة من الملفات، راجع دفع البيانات الاصطناعية مع ملفات متعددة.
إنشاء بعض الوثائق حول البيانات الاصطناعية:
echo 'Readme Content' > readme.md
mkdir details/
echo 'Detailed Content' > details/readme-details.md
echo 'More detailed Content' > details/readme-more-details.md
إرفاق البيانات الاصطناعية متعددة الملفات كمرجع إلى $IMAGE
:
Linux أو WSL2 أو macOS
oras attach $IMAGE \
--artifact-type readme/example \
./readme.md:application/markdown \
./details
Windows
.\oras.exe attach $IMAGE ^
--artifact-type readme/example ^
.\readme.md:application/markdown ^
.\details
اكتشاف المراجع الاصطناعية
تحدد مواصفات OCI v1.1 واجهة برمجة تطبيقات المراجع لاكتشاف المراجع إلى البيانات الاصطناعيةsubject
. يمكن للأمر oras discover
إظهار قائمة المراجع لصورة الحاوية.
باستخدام oras discover
، اعرض الرسم البيانات الاصطناعية المخزنة الآن في التسجيل.
oras discover -o tree $IMAGE
يُظهر الإخراج بداية رسم البيانات الاصطناعية، حيث يُنظر إلى التوقيع والمستندات على أنها عناصر فرعية لصورة الحاوية.
myregistry.azurecr.io/net-monitor:v1
├── signature/example
│ └── sha256:555ea91f39e7fb30c06f3b7aa483663f067f2950dcb...
└── readme/example
└── sha256:1a118663d1085e229ff1b2d4d89b5f6d67911f22e55...
إنشاء رسوم بيانية عميقة من البيانات الاصطناعية
تتيح مواصفات OCI v1.1 الرسوم البيانية العميقة، مما يتيح فاتورة البرامج الموقعة للمواد (SBOM) وأنواع البيانات الاصطناعية الأخرى.
إنشاء نموذج SBOM
echo '{"version": "0.0.0.0", "artifact": "'${IMAGE}'", "contents": "good"}' > sbom.json
إرفاق نموذج SBOM بالصورة في السجل
Linux أو WSL2 أو macOS
oras attach $IMAGE \
--artifact-type sbom/example \
./sbom.json:application/json
Windows
.\oras.exe attach $IMAGE ^
--artifact-type sbom/example ^
./sbom.json:application/json
توقيع SBOM
البيانات الاصطناعية التي يتم دفعها كمراجع، عادة لا تحتوي على علامات لأنها تعتبر جزءا من البيانات الاصطناعية subject
. لدفع توقيع إلى عنصر اصطناعي تابع لقطعة اصطناعية أخرى، استخدم تصفية oras discover
مع --artifact-type
للعثور على الملخص.
SBOM_DIGEST=$(oras discover -o json \
--artifact-type sbom/example \
$IMAGE | jq -r ".manifests[0].digest")
إنشاء توقيع SBOM
echo '{"artifact": "'$IMAGE@$SBOM_DIGEST'", "signature": "jayden hancock"}' > sbom-signature.json
إرفاق توقيع SBOM
oras attach $IMAGE@$SBOM_DIGEST \
--artifact-type 'signature/example' \
./sbom-signature.json:application/json
عرض الرسم البياني
oras discover -o tree $IMAGE
يولد الإخراج التالي:
myregistry.azurecr.io/net-monitor:v1
├── sbom/example
│ └── sha256:4f1843833c029ecf0524bc214a0df9a5787409fd27bed2160d83f8cc39fedef5
│ └── signature/example
│ └── sha256:3c43b8cb0c941ec165c9f33f197d7f75980a292400d340f1a51c6b325764aa93
├── readme/example
│ └── sha256:5fafd40589e2c980e2864a78818bff51ee641119cf96ebb0d5be83f42aa215af
└── signature/example
└── sha256:00da2c1c3ceea087b16e70c3f4e80dbce6f5b7625d6c8308ad095f7d3f6107b5
ترقية الرسم البياني
سيعزز سير عمل DevOps النموذجي البيانات الاصطناعية من التطوير من خلال التقسيم المرحلي، إلى بيئة الإنتاج، تعمل مهام سير عمل سلسلة التوريد الآمنة على ترقية المحتوى العام إلى بيئات آمنة بشكل خاص. في كلتا الحالتين، ستحتاج إلى ترقية التواقيع وSBOMs ونتائج الفحص وغيرها من البيانات الاصطناعية ذات الصلة باستخدام البيانات الاصطناعية الجذرية للحصول على رسم بياني كامل للتبعيات.
باستخدام الأمر ، يمكنك ترقية oras copy
رسم بياني مصفاة للبيانات الاصطناعية عبر السجلات.
انسخ net-monitor:v1
الصورة، وهي البيانات الاصطناعية ذات الصلة إلى sample-staging/net-monitor:v1
:
TARGET_REPO=$REGISTRY/sample-staging/$REPO
oras copy -r $IMAGE $TARGET_REPO:$TAG
إخراج oras copy
:
Copying 6bdea3cdc730 sbom-signature.json
Copying 78e159e81c6b sbom.json
Copied 6bdea3cdc730 sbom-signature.json
Copied 78e159e81c6b sbom.json
Copying 7cf1385c7f4d signature.json
Copied 7cf1385c7f4d signature.json
Copying 3e797ecd0697 details
Copying 2fdeac43552b readme.md
Copied 3e797ecd0697 details
Copied 2fdeac43552b readme.md
Copied demo42.myregistry.io/net-monitor:v1 => myregistry.azurecr.io/sample-staging/net-monitor:v1
Digest: sha256:ff858b2ea3cdf4373cba65d2ca6bcede4da1d620503a547cab5916614080c763
اكتشاف الرسم البياني المصطنع الذي تمت ترقيته
oras discover -o tree $TARGET_REPO:$TAG
oras discover
إخراج :
myregistry.azurecr.io/sample-staging/net-monitor:v1
├── sbom/example
│ └── sha256:4f1843833c029ecf0524bc214a0df9a5787409fd27bed2160d83f8cc39fedef5
│ └── signature/example
│ └── sha256:3c43b8cb0c941ec165c9f33f197d7f75980a292400d340f1a51c6b325764aa93
├── readme/example
│ └── sha256:5fafd40589e2c980e2864a78818bff51ee641119cf96ebb0d5be83f42aa215af
└── signature/example
└── sha256:00da2c1c3ceea087b16e70c3f4e80dbce6f5b7625d6c8308ad095f7d3f6107b5
سحب القطعة الاصطناعية المشار إليها
لسحب أداة محددة مرجعية، يتم اكتشاف ملخص المرجع باستخدام oras discover
الأمر :
DOC_DIGEST=$(oras discover -o json \
--artifact-type 'readme/example' \
$TARGET_REPO:$TAG | jq -r ".manifests[0].digest")
إنشاء دليل نظيف للتنزيل
mkdir ./download
سحب المستندات إلى دليل التنزيل
oras pull -o ./download $TARGET_REPO@$DOC_DIGEST
عرض المستندات
tree ./download
إخراج tree
:
./download
├── details
│ ├── readme-details.md
│ └── readme-more-details.md
└── readme.md
عرض المستودع وقائمة العلامات
يتيح بيان البيانات الاصطناعية OCI دفع الرسوم البيانية للبيانات الاصطناعية، اكتشافها، سحبها ونسخها دون الحاجة إلى تعيين علامات. تمكن بيانات البيانات الاصطناعية قائمة العلامات من التركيز على البيانات الاصطناعية التي يفكر فيها المستخدمون، بدلا من التواقيع وSBOMs المقترنة بصور الحاوية ومخططات helm والبيانات الاصطناعية الأخرى.
عرض قائمة العلامات
oras repo tags $REGISTRY/$REPO
عرض قائمة البيانات
يمكن أن يحتوي المستودع على قائمة من البيانات التي تم وضع علامة عليها وغير المميزة. az acr manifest
باستخدام CLI، اعرض القائمة الكاملة للبيانات:
az acr manifest list-metadata \
--name $REPO \
--registry $ACR_NAME \
--output jsonc
لاحظ أن بيانات صورة الحاوية تحتوي على ، بينما لا تحتوي "tags"
الأنواع المرجعية ("mediaType": "application/vnd.oci.artifact.manifest.v1+json"
) على .
في الإخراج، يتم إلغاء علامة التوقيع، ولكن يتم تعقبه كمرجع oci.artifact.manifest
إلى صورة الحاوية:
{
"changeableAttributes": {
"deleteEnabled": true,
"listEnabled": true,
"readEnabled": true,
"writeEnabled": true
},
"createdTime": "2023-01-10T17:58:28.4403142Z",
"digest": "sha256:00da2c1c3ceea087b16e70c3f4e80dbce6f5b7625d6c8308ad095f7d3f6107b5",
"imageSize": 80,
"lastUpdateTime": "2023-01-10T17:58:28.4403142Z",
"mediaType": "application/vnd.oci.artifact.manifest.v1+json"
}
حذف كل البيانات الاصطناعية في الرسم البياني
يتيح دعم مواصفات OCI v1.1 حذف الرسم البياني للبيانات الاصطناعية المرتبطة بالبيانات الاصطناعية الجذرية. oras delete
استخدم الأمر لحذف الرسم البياني للبيانات الاصطناعية (التوقيع وSBOM وتوقيع SBOM).
oras manifest delete -f $REGISTRY/$REPO:$TAG
oras manifest delete -f $REGISTRY/sample-staging/$REPO:$TAG
عرض البيانات المتبقية
من خلال حذف البيانات الاصطناعية الجذر، يتم أيضا حذف جميع البيانات الاصطناعية ذات الصلة تاركة بيئة نظيفة:
az acr manifest list-metadata \
--name $REPO \
--registry $ACR_NAME -o jsonc
إخراج:
2023-01-10 18:38:45.366387 Error: repository "net-monitor" is not found.
الملخص
في هذه المقالة، يتم إنشاء رسم بياني للبيانات الاصطناعية لسلسلة التوريد، اكتشافها، تعزيزها وسحبها لتوفير إدارة دورة حياة البيانات الاصطناعية التي تبنيها وتعتمد عليها.