1. نظرة عامة
هل أنت مستعد لتعزيز أمان وخصوصية أعباء العمل المُسرَّعة باستخدام وحدة معالجة الرسومات؟ سيرشدك هذا الدرس التطبيقي حول الترميز إلى إمكانات مساحة الثقة، وهي ميزة يوفّرها مشغلو الخدمات لتوفير عزل قوي للمشغّلين ودعم مسرعات لأعمالك الحسّاسة المستندة إلى الذكاء الاصطناعي (AI) أو تعلُّم الآلة (ML).
أصبحت حماية البيانات والنماذج والمفاتيح القيّمة أكثر أهمية من أي وقت مضى. يوفّر "المساحات الموثوق بها" حلًا من خلال ضمان تشغيل أحمال العمل في بيئة آمنة وموثوقة لا يمكن حتى لمشغّل أحمال العمل الوصول إليها.
في ما يلي الميزات التي يوفّرها "المساحة الموثوق بها":
- الخصوصية والأمان المحسَّنان: توفّر "المساحة الموثوق بها" بيئة تنفيذ موثوق بها تظل فيها أصولك الحسّاسة (مثل النماذج والبيانات القيّمة والمفاتيح) محمية، وذلك بفضل إثبات التشفير.
- عزل المشغّل: يمكنك التخلص من المخاوف بشأن تدخل المشغّل. باستخدام "المساحة الموثوق بها"، لا يمكن حتى لمشغّلي حمولتك الوصول إلى البيانات، ما يمنع وصولهم إلى البيانات أو تثبيت البرامج أو التلاعب بالرمز البرمجي.
- التوافق مع مسرعات الأجهزة: تم تصميم "المساحة الموثوق بها" للعمل بسلاسة مع مجموعة كبيرة من مسرعات الأجهزة، بما في ذلك وحدات معالجة الرسومات مثل H100 وA100 وT4 وL4. يضمن ذلك تشغيل تطبيقات الذكاء الاصطناعي (AI) أو تعلُّم الآلة (ML) التي تعتمد على الأداء بسلاسة.
ما ستتعرّف عليه
- التعرّف على العروض الرئيسية في "المساحة الموثوق بها"
- تعرَّف على كيفية نشر بيئة "مساحة موثوق بها" وضبطها لتأمين مواد العرض القيّمة في حِزمة عمل الذكاء الاصطناعي/التعلم الآلي.
المتطلبات
- مشروع على Google Cloud Platform
- معرفة أساسية عن Google Compute Engine والمسرّعات
- معرفة أساسية بحسابات الخدمة وإدارة المفاتيح واتحاد هوية "حملات العمل" وشروط السمات
- معرفة أساسية بالحاويات ومستودع العناصر
حماية طلبات إنشاء الرموز الحساسة مع شركة Primus
في هذا الدليل التعليمي حول رموز البرامج، سنحلّ محلّ شركة Primus، وهي شركة تعطي الأولوية لخصوصية بيانات موظفيها وأمانها. تريد شركة Primus نشر نموذج لإنشاء الرموز البرمجية لمساعدة مطوّريها في مهام الترميز. ومع ذلك، يهتمون بحماية سرية الطلبات التي يرسلها موظفوهم، لأنّ هذه الطلبات غالبًا ما تحتوي على مقتطفات رموز برمجية حساسة أو تفاصيل داخلية للمشروع أو خوارزميات خاصة.
لماذا لا تثق شركة Primus في مشغّل شبكة الجوَّال؟
تعمل شركة Primus Corp في سوق تنافسي للغاية. تحتوي قاعدة بياناتها على ملكية فكرية قيّمة، بما في ذلك الخوارزميات الحصرية ومقتطفات الرموز الحسّاسة التي تمنح الشركة ميزة تنافسية. ويشعرون بالقلق بشأن احتمالية تجسّس الشركات من قِبل مشغّلي "أحمال العمل". بالإضافة إلى ذلك، قد تتضمّن طلبات الموظفين أجزاء رمز برمجي سرية "للمعلومات التي يجب معرفتها" تريد شركة Primus Corp حمايتها.
لحلّ هذه المشكلة، ستستفيد شركة Primus Corp من "المساحة الموثوق بها" لعزل خادم الاستنتاج الذي يشغّل النموذج لإنشاء الرموز البرمجية. إليك آلية العمل:
- تشفير الطلب: قبل إرسال طلب إلى خادم الاستنتاج، سيشفّره كل موظف باستخدام مفتاح إدارة مفاتيح التشفير الذي تديره شركة Primus Corp في Google Cloud. يضمن ذلك أنّه لا يمكن لأحد غير بيئة "المساحة الموثوق بها"، حيث يتوفّر مفتاح فك التشفير المقابل، فك تشفير الرسالة والوصول إلى طلب النص العادي. في سيناريو واقعي، يمكن أن تعالج المكتبات المتاحة عملية التشفير من جهة العميل (مثل tink). كجزء من هذا الدليل التعليمي حول الرموز البرمجية، سنستخدم نموذج تطبيق العميل هذا مع التشفير بطبقتَين.
- عزل مشغل الخدمة: يمكن فقط لخادم الاستنتاج، الذي يعمل ضمن بيئة "مساحة موثوق بها"، الوصول إلى المفتاح المستخدَم في التشفير، وسيكون بإمكانه فك تشفير الطلب في بيئة موثوق بها. ستحمي مجموعة Workload Identity Pool إمكانية الوصول إلى مفتاح التشفير. بسبب ضمانات العزل في "المساحة الموثوق بها"، لا يمكن حتى لمشغّل حِزمة العمل الوصول إلى المفتاح المستخدَم في التشفير والمحتوى الذي تم فك تشفيره.
- الاستنتاج الآمن باستخدام مُسرِّعات: سيتم تشغيل خادم الاستنتاج على جهاز افتراضي محمي (كجزء من إعداد "المساحة الموثوق بها") ما يضمن عدم اختراق مثيل "حمل العمل" من خلال برامج ضارة أو برامج تجسّس على مستوى التشغيل أو النواة. يفكّ هذا الخادم تشفير الطلب ضمن بيئة "المساحة الموثوق بها"، وينفّذ الاستنتاج باستخدام نموذج إنشاء الرموز، ويعرض الرمز الذي تم إنشاؤه على الموظف.
2. إعداد "موارد السحابة"
قبل البدء
- يمكنك استنساخ هذا المستودع باستخدام الأمر أدناه للحصول على النصوص البرمجية المطلوبة التي يتم استخدامها كجزء من هذا الدليل التعليمي.
git clone https://github.com/GoogleCloudPlatform/confidential-space.git
- غيِّر دليل هذا الدليل التعليمي.
cd confidential-space/codelabs/trusted_space_codelab/scripts
- تأكَّد من ضبط متغيّرات بيئة المشروع المطلوبة كما هو موضّح أدناه. لمزيد من المعلومات عن إعداد مشروع على Google Cloud Platform، يُرجى الرجوع إلى هذا الدليل التعليمي حول الرموز البرمجية. يمكنك الرجوع إلى هذا الرابط للحصول على تفاصيل عن كيفية استرداد رقم تعريف المشروع واختلافه عن اسم المشروع ورقمه.
export PRIMUS_PROJECT_ID=<GCP project id of Primus>
- فعِّل ميزة "الفوترة" لمشاريعك.
- فعِّل واجهة برمجة التطبيقات Confidential Computing API وواجهات برمجة التطبيقات التالية لكلا المشروعَين.
gcloud services enable \
cloudapis.googleapis.com \
cloudresourcemanager.googleapis.com \
cloudkms.googleapis.com \
cloudshell.googleapis.com \
container.googleapis.com \
containerregistry.googleapis.com \
iam.googleapis.com \
confidentialcomputing.googleapis.com
- حدِّد قيمًا للمتغيّرات الخاصة بأسماء الموارد المحدّدة أعلاه باستخدام الأمر التالي. تتيح لك هذه المتغيّرات تخصيص أسماء الموارد حسب الحاجة واستخدام الموارد الحالية أيضًا إذا سبق إنشاؤها. (مثلاً
export PRIMUS_SERVICE_ACCOUNT='my-service-account'
)
- يمكنك ضبط المتغيّرات التالية باستخدام أسماء موارد السحابة الإلكترونية الحالية في مشروع Primus. في حال ضبط المتغيّر، سيتم استخدام مورد السحابة الإلكترونية الحالي المقابل من مشروع Primus. في حال عدم ضبط المتغيّر، سيتم إنشاء اسم مورد السحابة الإلكترونية من اسم المشروع وسيتم إنشاء مورد جديد للسحابة الإلكترونية بهذا الاسم. في ما يلي المتغيّرات المتوافقة لأسماء الموارد:
| المنطقة التي سيتم إنشاء الموارد الإقليمية فيها لشركة Primus |
| الموقع الجغرافي الذي سيتم إنشاء الموارد فيه لشركة Primus |
| المنطقة التي سيتم إنشاء موارد منطقة لها لشركة Primus |
| مجموعة المعلومات التعريفية لأعمال شركة Primus لحماية موارد السحابة الإلكترونية |
| موفِّر مجموعة معرّفات أعباء العمل لشركة Primus الذي يتضمّن شرط التفويض لاستخدام الرموز المميزة التي وقّعت عليها خدمة التحقّق من المصادقة. |
| حساب الخدمة لشركة Primus الذي يستخدمه "فريد" للوصول إلى الموارد المحمية. |
| يُستخدَم مفتاح إدارة الخدمات الرئيسية (KMS) لتشفير الطلبات المقدَّمة من موظفي شركة Primus. |
| سلسلة مفاتيح إدارة الخدمات الرئيسية (KMS) التي سيتم استخدامها لإنشاء مفتاح التشفير |
| نسخة مفتاح KMS لمفتاح التشفير |
| مستودع العناصر التي سيتمّ دفع صورة Docker لوحدة العمل إليه |
| منطقة مستودع العناصر التي ستحتوي على صورة Docker لوحدة العمل المنشورة. |
| اسم الجهاز الافتراضي لوحدة العمل. |
| اسم صورة Docker لوحدة العمل |
| علامة صورة حاوية "حملات العمل" |
| حساب الخدمة الذي لديه إذن بالوصول إلى "الخادم الافتراضي السري" الذي يشغّل "حمل العمل". |
| اسم جهاز افتراضي للعميل الذي سيشغّل تطبيق العميل لخادم الاستنتاج |
| حساب الخدمة المستخدَم من قِبل |
- ستحتاج إلى أدوار "مشرف مساحة التخزين" و"مشرف سجلّ العناصر" و"مشرف Cloud KMS" و"مشرف حساب الخدمة" و"مشرف Workload Identity Pool في إدارة الهوية وإمكانية الوصول" للمشروع
$PRIMUS_PROJECT_ID
. يمكنك الرجوع إلى هذا الدليل حول كيفية منح أدوار "إدارة الهوية وإمكانية الوصول" باستخدام وحدة تحكّم Google Cloud Platform. - بالنسبة إلى
$PRIMUS_PROJECT_ID
، شغِّل النص البرمجي التالي لضبط أسماء المتغيّرات المتبقية على قيم استنادًا إلى رقم تعريف مشروعك لأسماء الموارد.
source config_env.sh
إعداد موارد شركة Primus
كجزء من هذه الخطوة، عليك إعداد موارد السحابة الإلكترونية المطلوبة لخدمة Primus. شغِّل النص البرمجي التالي لإعداد الموارد لخدمة Primus. سيتم إنشاء الموارد التالية كجزء من تنفيذ النص البرمجي:
- مفتاح التشفير (
$PRIMUS_ENC_KEY
) ومفتاح سلسلة المفاتيح ($PRIMUS_ENC_KEYRING
) في خدمة إدارة مفاتيح التشفير (KMS) لتشفير ملف بيانات العملاء لشركة Primus - Workload Identity Pool (
$PRIMUS_WORKLOAD_IDENTITY_POOL
) للتحقّق من صحة المطالبات استنادًا إلى شروط السمات التي تم ضبطها ضمن موفّرها - يملك حساب الخدمة (
$PRIMUS_SERVICE_ACCOUNT
) المرتبط بحزمة تعريفات "وحدة العمل" المذكورة أعلاه ($PRIMUS_WORKLOAD_IDENTITY_POOL
) إذن الوصول إلى فك تشفير البيانات باستخدام مفتاح KMS (باستخدام دورroles/cloudkms.cryptoKeyDecrypter
)، وتشفير البيانات باستخدام مفتاح KMS (باستخدام دورroles/cloudkms.cryptoKeyEncrypter
)، وقراءة البيانات من حزمة التخزين في السحابة الإلكترونية (باستخدام دورobjectViewer
)، وربط حساب الخدمة بحزمة تعريفات "وحدة العمل" (باستخدام دورroles/iam.workloadIdentityUser
).
./setup_primus_resources.sh
3- إنشاء "حمل عمل"
إنشاء حساب خدمة "وحدة العمل"
الآن، عليك إنشاء حساب خدمة للعمل محمّل مع الأدوار والأذونات المطلوبة. شغِّل النص البرمجي التالي لإنشاء حساب خدمة "وحدة العمل" في مشروع Primus. ستستخدم الآلة الافتراضية التي تعمل بخادم الاستنتاج حساب الخدمة هذا.
سيتضمّن حساب الخدمة هذا ($WORKLOAD_SERVICEACCOUNT
) للأحمال المهام الأدوار التالية:
confidentialcomputing.workloadUser
للحصول على رمز إثبات الهويةlogging.logWriter
لكتابة السجلّات في Cloud Logging
./create_workload_service_account.sh
إنشاء حمل عمل
كجزء من هذه الخطوة، عليك إنشاء صورة Docker لوحدة العمل. سيتم إنشاء "عبء العمل" من قِبل شركة Primus. إنّ عبء العمل المستخدَم في هذا الدرس التطبيقي حول الترميز هو رمز Python الذي يستخدم نموذج codegemma من حزمة GCS المتاحة للجميع (من حديقة نماذج الرؤوس). ستحمِّل "وحدة العمل" نموذج codegemma وستعمل على تشغيل خادم الاستنتاج الذي سيقدّم طلبات إنشاء الرموز البرمجية من مطوّري Primus.
في طلب إنشاء الرمز، ستتلقّى Workload مفتاح التشفير العمودي المُغلف مع طلب مشفَّر. ستطلب "وحدة العمل" بعد ذلك من واجهة برمجة التطبيقات KMS API فك تشفير مفتاح DEK، ثم ستفك تشفير الطلب باستخدام مفتاح DEK هذا. سيتم حماية مفاتيح التشفير (لمفتاح التشفير العمومي) من خلال مجموعة معرّفات أعباء العمل، وسيتم منح الإذن بالوصول إلى أعباء العمل التي تستوفي شروط السمات. يتم وصف شروط السمات هذه بمزيد من التفصيل في القسم التالي حول تفويض سير العمل. بعد أن يحصل خادم الاستنتاج على الطلب الذي تم فك تشفيره، سينشئ الرمز باستخدام نموذج محمَّل وسيعيد عرض الاستجابة.
شغِّل النص البرمجي التالي لإنشاء حمولة يتم فيها تنفيذ الخطوات التالية:
- أنشئ Artifact Registry(
$PRIMUS_ARTIFACT_REGISTRY
) مملوكًا لشركة Primus. - عدِّل رمز "عبء العمل" باستخدام أسماء الموارد المطلوبة.
- أنشئ ملف Dockerfile لإنشاء صورة Docker من رمز معالجة البيانات في خادم الاستنتاج. هنا ملف Dockerfile المستخدَم في هذا الدرس التطبيقي حول الترميز.
- أنشئ صورة Docker وانشرها في "مستودع العناصر" (
$PRIMUS_ARTIFACT_REGISTRY
) الذي تملكه شركة Primus. - امنح
$WORKLOAD_SERVICEACCOUNT
إذن القراءة لـ$PRIMUS_ARTIFACT_REGISTRY
. هذا الإجراء مطلوب لكي تسحب حاوية "حمولة العمل" صورة Docker الخاصة بها من "مستودع العناصر".
./create_workload.sh
يُرجى الاطّلاع على طريقة generate() لوحدة العمل التي تم إنشاؤها واستخدامها في هذا الدرس التطبيقي حول الترميز (يمكنك العثور على رمز وحدة العمل بالكامل هنا).
def generate():
try:
data = request.get_json()
ciphertext = base64.b64decode(data["ciphertext"])
wrapped_dek = base64.b64decode(data["wrapped_dek"])
unwrapped_dek_response = kms_client.decrypt(
request={"name": key_name, "ciphertext": wrapped_dek}
)
unwrapped_dek = unwrapped_dek_response.plaintext
f = Fernet(unwrapped_dek)
plaintext = f.decrypt(ciphertext)
prompt = plaintext.decode("utf-8")
tokens = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(**tokens, max_new_tokens=128)
generated_code = tokenizer.decode(outputs[0])
generated_code_bytes = generated_code.encode("utf-8")
response = f.encrypt(generated_code_bytes)
ciphertext_base64 = base64.b64encode(response).decode("utf-8")
response = {"generated_code_ciphertext": ciphertext_base64}
return jsonify(response)
except (ValueError, TypeError, KeyError) as e:
return jsonify({"error": str(e)}), 500
4. تفويض "حمل العمل" وتشغيله
منح الإذن لـ Workload
تريد شركة Primus تفويض أعباء العمل للوصول إلى مفتاح إدارة الخدمات الرئيسية (KMS) المستخدَم في التشفير الفوري استنادًا إلى سمات الموارد التالية:
- المحتوى: الرمز الذي تم التحقّق منه
- المكان: بيئة آمنة
- المشغّل: مشغّل موثوق به
يستخدم Primus إدارة الهوية في Workload Identity لفرض سياسة وصول استنادًا إلى هذه المتطلبات. يتيح لك اتحاد هوية أعباء العمل تحديد شروط السمات. تحدّ هذه الشروط من الهويات التي يمكنها المصادقة باستخدام مجموعة معرّفات أعباء العمل (WIP). يمكنك إضافة خدمة التحقّق من الإثبات إلى مجموعة المعلومات التعريفية لتحميل العمل كـ موفِّر مجموعة معلومات تعريفية لتحميل العمل لتقديم القياسات وفرض السياسة.
سبق أن تم إنشاء مجموعة المعلومات التعريفية للمعالجة كجزء من خطوة إعداد موارد السحابة الإلكترونية. سينشئ Primus الآن موفِّرًا جديدًا لمجموعة المعلومات التعريفية لمعالجة معيار OpenID Connect. يمنح --attribute-condition
المحدّد الإذن بالوصول إلى حاوية عبء العمل. يتطلب ذلك ما يلي:
- المحتوى: أحدث
$WORKLOAD_IMAGE_NAME
تم تحميله إلى مستودع$PRIMUS_ARTIFACT_REPOSITORY
- المكان: يتم تشغيل بيئة التنفيذ الموثوقة في Confidential Space على صورة جهاز Confidential Space الافتراضي المتوافقة بالكامل.
- المُرسِل: حساب خدمة Primus
$WORKLOAD_SERVICE_ACCOUNT
.
export WORKLOAD_IMAGE_DIGEST=$(gcloud artifacts docker images describe ${PRIMUS_PROJECT_REPOSITORY_REGION}-docker.pkg.dev/$PRIMUS_PROJECT_ID/$PRIMUS_ARTIFACT_REPOSITORY/$WORKLOAD_IMAGE_NAME:$WORKLOAD_IMAGE_TAG --format="value(image_summary.digest)" --project ${PRIMUS_PROJECT_ID})
gcloud iam workload-identity-pools providers create-oidc $PRIMUS_WIP_PROVIDER \
--location="global" \
--project="$PRIMUS_PROJECT_ID" \
--workload-identity-pool="$PRIMUS_WORKLOAD_IDENTITY_POOL" \
--issuer-uri="https://confidentialcomputing.googleapis.com/" \
--allowed-audiences="https://sts.googleapis.com" \
--attribute-mapping="google.subject='assertion.sub'" \
--attribute-condition="assertion.swname == 'HARDENED_SHIELDED' && assertion.hwmodel == 'GCP_SHIELDED_VM' &&
assertion.submods.container.image_digest == '${WORKLOAD_IMAGE_DIGEST}' &&
assertion.submods.container.image_reference == '${PRIMUS_PROJECT_REPOSITORY_REGION}-docker.pkg.dev/$PRIMUS_PROJECT_ID/$PRIMUS_ARTIFACT_REPOSITORY/$WORKLOAD_IMAGE_NAME:$WORKLOAD_IMAGE_TAG' &&
'$WORKLOAD_SERVICEACCOUNT@$PRIMUS_PROJECT_ID.iam.gserviceaccount.com' in assertion.google_service_accounts"
يُثبت الأمر أعلاه أنّه يتم تشغيل حمولة العمل في بيئة مساحة موثوق بها من خلال التحقّق من ضبط hwmodel
على "GCP_SHIELDED_VM" وswname
على "HARDENED_SHIELDED". بالإضافة إلى ذلك، يتضمّن تأكيدات خاصة بحمولة العمل، مثل image_digest
وimage_reference
، لتعزيز الأمان وضمان سلامة حمولة العمل التي يتم تشغيلها.
تشغيل "حمل العمل"
كجزء من هذه الخطوة، سنشغّل سير العمل في جهاز افتراضي في "المساحة الموثوق بها" سيكون مُرفقًا بمسرع. يتم تمرير وسيطات TEE المطلوبة باستخدام علامة البيانات الوصفية. يتم تمرير الوسائط لحاوية "وحدة العمل" باستخدام الجزء "tee-cmd
" من العلامة. لتجهيز الجهاز الافتراضي لوحدة العمل بوحدة معالجة رسومات Nvidia Tesla T4، سنستخدم العلامة --accelerator=type=nvidia-tesla-t4,count=1
. سيؤدي ذلك إلى إرفاق وحدة معالجة رسومات واحدة بالجهاز الافتراضي. سنحتاج أيضًا إلى تضمين tee-install-gpu-driver=true
في علامات البيانات الوصفية لبدء تثبيت برنامج تشغيل وحدة معالجة الرسومات المناسب.
gcloud compute instances create ${WORKLOAD_VM} \
--accelerator=type=nvidia-tesla-t4,count=1 \
--machine-type=n1-standard-16 \
--shielded-secure-boot \
--image-project=conf-space-images-preview \
--image=confidential-space-0-gpupreview-796705b \
--zone=${PRIMUS_PROJECT_ZONE} \
--maintenance-policy=TERMINATE \
--boot-disk-size=40 \
--scopes=cloud-platform \
--service-account=${WORKLOAD_SERVICEACCOUNT}@${PRIMUS_PROJECT_ID}.iam.gserviceaccount.com \
--metadata="^~^tee-image-reference=${PRIMUS_PROJECT_REPOSITORY_REGION}-docker.pkg.dev/${PRIMUS_PROJECT_ID}/${PRIMUS_ARTIFACT_REPOSITORY}/${WORKLOAD_IMAGE_NAME}:${WORKLOAD_IMAGE_TAG}~tee-install-gpu-driver=true~tee-restart-policy=Never"
تنفيذ طلب الاستنتاج
بعد تشغيل خادم الاستنتاج عن حمولة العمل بنجاح، يمكن الآن لموظفي شركة Primus إرسال طلبات إنشاء الرموز إلى خادم الاستنتاج.
كجزء من هذا الدرس التطبيقي حول الترميز، سنستخدم النص البرمجي التالي لإعداد تطبيق العميل الذي سيتفاعل مع خادم الاستنتاج. شغِّل هذا النص البرمجي لإعداد الجهاز الظاهري للعميل.
./setup_client.sh
توضِّح الخطوات التالية كيفية استخدام بروتوكول SSH للوصول إلى جهاز العميل الظاهري وتنفيذ نموذج لتطبيق العميل ضمن بيئة Python الافتراضية. يستخدم مثال التطبيق هذا تشفير المظروف باستخدام مكتبة Fernet، ولكن يُرجى العِلم أنّه يمكن تعديل مكتبات التشفير المحدّدة لتلائم حالات الاستخدام المختلفة.
gcloud compute ssh ${CLIENT_VM} --zone=${PRIMUS_PROJECT_ZONE}
نفِّذ الأوامر التالية لتفعيل بيئة Python الافتراضية في جهاز العميل الظاهري وتنفيذ تطبيق العميل.
source venv/bin/activate
python3 inference_client.py
سيعرض الناتج من نموذج تطبيق العميل هذا طلبات التشفير والنص العادي وطلبات الإذن بالوصول إلى البيانات وطلبات فك التشفير والتشفير المقابلة لها.
5- تنظيف
في ما يلي البرنامج النصي الذي يمكن استخدامه لتنظيف الموارد التي أنشأناها كجزء من هذا الدرس التطبيقي حول الترميز. كجزء من عملية التنظيف هذه، سيتم حذف الموارد التالية:
- حساب الخدمة في Primus (
$PRIMUS_SERVICEACCOUNT
) - مفتاح تشفير Primus (
$PRIMUS_ENC_KEY
) - مستودع العناصر في Primus (
$PRIMUS_ARTIFACT_REPOSITORY
) - مجموعة المعلومات التعريفية لمعالجة Primus (
$PRIMUS_WORKLOAD_IDENTITY_POOL
) مع موفِّرها - حساب خدمة "حملات العمل" لشركة Primus (
$WORKLOAD_SERVICEACCOUNT
). - جهاز افتراضي للحِمولة (
$WORKLOAD_VM
) وجهاز افتراضي للعميل ($CLIENT_VM
).
./cleanup.sh
إذا انتهيت من الاستكشاف، يُرجى التفكير في حذف مشروعك.
- انتقِل إلى وحدة تحكّم Cloud Platform.
- اختَر المشروع الذي تريد إيقافه، ثم انقر على "حذف" في أعلى الصفحة: سيؤدي ذلك إلى جدولة المشروع للحذف.