آزمایشگاه کد فضایی مورد اعتماد

1. بررسی اجمالی

آیا آماده‌اید تا امنیت و حریم خصوصی بارهای کاری شتاب‌دهی شده توسط GPU خود را افزایش دهید؟ این آزمایشگاه کد شما را از طریق قابلیت‌های Trusted Space راهنمایی می‌کند، پیشنهادی برای ارائه ایزوله‌سازی قوی اپراتور و پشتیبانی شتاب‌دهنده برای بارهای کاری حساس AI/ML شما.

حفاظت از داده‌ها، مدل‌ها و کلیدهای ارزشمند از همیشه مهم‌تر است. Trusted Space با اطمینان از اینکه بارهای کاری شما در یک محیط امن و قابل اعتماد کار می کنند که حتی اپراتور حجم کاری نیز به آن دسترسی ندارد، راه حلی ارائه می دهد.

در اینجا چیزی است که Trusted Space ارائه می دهد:

  • حفظ حریم خصوصی و امنیت پیشرفته: Trusted Space یک محیط اجرایی قابل اعتماد را فراهم می‌کند که در آن دارایی‌های حساس شما (مانند مدل‌ها، داده‌های ارزشمند و کلیدها) محافظت می‌شوند، که توسط اثبات رمزنگاری پشتیبانی می‌شود.
  • جداسازی اپراتور: نگرانی در مورد تداخل اپراتور را از بین ببرید. با Trusted Space، حتی اپراتورهای حجم کاری شما نیز دسترسی ندارند و از SSHing، دسترسی به داده‌ها، نصب نرم‌افزار یا دستکاری کد شما جلوگیری می‌کند.
  • پشتیبانی از شتاب دهنده: Trusted Space برای کار یکپارچه با طیف گسترده ای از شتاب دهنده های سخت افزاری، از جمله GPU هایی مانند H100، A100، T4 و L4 طراحی شده است. این تضمین می‌کند که برنامه‌های کاربردی AI/ML که از نظر عملکرد حیاتی هستند، به خوبی اجرا شوند.

چیزی که یاد خواهید گرفت

  • درک پیشنهادات کلیدی Trusted Space را به دست آورید.
  • با نحوه استقرار و پیکربندی یک محیط Trusted Space برای ایمن سازی دارایی های ارزشمند از حجم کاری AI/Ml خود آشنا شوید.

آنچه شما نیاز دارید

حفاظت از درخواست های تولید کد حساس با شرکت Primus

در این کد لبه، ما به جای شرکت Primus قدم می گذاریم، شرکتی که حریم خصوصی و امنیت داده های کارکنان خود را در اولویت قرار می دهد. Primus می خواهد یک مدل تولید کد را برای کمک به توسعه دهندگان خود در وظایف کدنویسی خود مستقر کند. با این حال، آنها نگران محافظت از محرمانه بودن درخواست‌های ارسال شده توسط کارکنان خود هستند، زیرا این درخواست‌ها اغلب حاوی کدهای حساس، جزئیات پروژه داخلی یا الگوریتم‌های اختصاصی هستند.

چرا شرکت پریموس به اپراتور اعتماد ندارد؟

Primus Corp در یک بازار بسیار رقابتی فعالیت می کند. پایگاه کد آنها حاوی دارایی معنوی ارزشمندی است، از جمله الگوریتم‌های اختصاصی و کدهای حساس که مزیت رقابتی را فراهم می‌کنند. آنها در مورد امکان جاسوسی شرکتی توسط اپراتورهای حجم کاری نگران هستند. علاوه بر این، درخواست‌های کارکنان ممکن است شامل بخش‌های محرمانه «نیاز به دانستن» از کدهایی باشد که Primus Corp می‌خواهد از آن محافظت کند.

برای رفع این نگرانی، Primus Corp از Trusted Space استفاده می کند تا سرور استنتاجی را که مدل را برای تولید کد اجرا می کند، جدا کند. در اینجا نحوه کار آن آمده است:

  • رمزگذاری سریع: قبل از ارسال درخواست به سرور استنتاج، هر کارمند آن را با استفاده از یک کلید KMS که توسط Primus Corp در Google Cloud مدیریت می‌شود، رمزگذاری می‌کند. این تضمین می‌کند که فقط محیط Trusted Space، جایی که کلید رمزگشایی مربوطه در دسترس است، می‌تواند آن را رمزگشایی کند و به درخواست متن ساده دسترسی پیدا کند. در یک سناریوی دنیای واقعی، رمزگذاری سمت سرویس گیرنده را می توان توسط کتابخانه های موجود (به عنوان مثال tink ) مدیریت کرد. به عنوان بخشی از این کد، ما از این نمونه برنامه مشتری با رمزگذاری پاکت استفاده خواهیم کرد.
  • جداسازی اپراتور: فقط سرور استنتاج که در یک محیط Trusted Space اجرا می‌شود، به کلید مورد استفاده برای رمزگذاری دسترسی خواهد داشت و می‌تواند درخواست را در یک محیط مطمئن رمزگشایی کند. دسترسی به کلید رمزگذاری توسط Workload Identity Pool محافظت می شود. با توجه به تضمین های ایزوله Trusted Space، حتی اپراتور حجم کاری نیز نمی تواند به کلید مورد استفاده برای رمزگذاری و محتوای رمزگشایی شده دسترسی داشته باشد.
  • استنتاج امن با استفاده از شتاب دهنده(ها): سرور استنتاج بر روی یک ماشین مجازی محافظت شده (به عنوان بخشی از راه اندازی فضای مطمئن) راه اندازی می شود که این اطمینان را ایجاد می کند که نمونه حجم کار توسط بدافزارها یا روت کیت ها در سطح بوت یا هسته در معرض خطر قرار نگرفته است. این سرور درخواست را در محیط Trusted Space رمزگشایی می کند، استنتاج را با استفاده از مدل تولید کد انجام می دهد و کد تولید شده را به کارمند برمی گرداند.

2. منابع ابری را راه اندازی کنید

قبل از شروع

  • این مخزن را با استفاده از دستور زیر کلون کنید تا اسکریپت های مورد نیازی که به عنوان بخشی از این کد لبه استفاده می شود را دریافت کنید.
git clone https://github.com/GoogleCloudPlatform/confidential-space.git
  • دایرکتوری این کد لبه را تغییر دهید.
cd confidential-space/codelabs/trusted_space_codelab/scripts
  • اطمینان حاصل کنید که متغیرهای محیط پروژه مورد نیاز را مطابق شکل زیر تنظیم کرده اید. برای اطلاعات بیشتر در مورد راه اندازی یک پروژه GCP، لطفاً به این کد لبه مراجعه کنید. برای دریافت جزئیات در مورد نحوه بازیابی شناسه پروژه و تفاوت آن با نام پروژه و شماره پروژه می توانید به این قسمت مراجعه کنید.
export PRIMUS_PROJECT_ID=<GCP project id of Primus>
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' )
  1. می توانید متغیرهای زیر را با نام منابع ابری موجود در پروژه Primus تنظیم کنید. اگر متغیر تنظیم شده باشد، منبع ابری مربوطه از پروژه Primus استفاده خواهد شد. اگر متغیر تنظیم نشده باشد، نام منبع ابری از نام پروژه ایجاد می‌شود و یک منبع ابری جدید با آن نام ایجاد می‌شود. در زیر متغیرهای پشتیبانی شده برای نام منابع آمده است:

$PRIMUS_PROJECT_REGION

منطقه ای که تحت آن منابع منطقه ای برای شرکت پریموس ایجاد می شود.

$PRIMUS_SERVICE_LOCATION

مکانی که در آن منابع برای شرکت Primus ایجاد می شود.

$PRIMUS_PROJECT_ZONE

منطقه ای که تحت آن منابع منطقه ای برای شرکت پریموس ایجاد می شود.

$PRIMUS_WORKLOAD_IDENTITY_POOL

استخر هویت بار کاری شرکت Primus برای محافظت از منابع ابری.

$PRIMUS_WIP_PROVIDER

ارائه‌دهنده Workload Identity Pool شرکت Primus که شامل شرایط مجوز برای استفاده برای نشانه‌های امضا شده توسط سرویس تأییدکننده گواهی است.

$PRIMUS_SERVICEACCOUNT

حساب خدمات شرکت Primus که $PRIMUS_WORKLOAD_IDENTITY_POOL از آن برای دسترسی به منابع محافظت شده استفاده می کند. در این مرحله اجازه مشاهده داده های مشتری که در سطل $PRIMUS_INPUT_STORAGE_BUCKET ذخیره شده است را دارد.

$PRIMUS_ENC_KEY

کلید KMS برای رمزگذاری دستورات ارائه شده توسط کارکنان شرکت Primus استفاده می شود.

$PRIMUS_ENC_KEYRING

کلید KMS که برای ایجاد کلید رمزگذاری $PRIMUS_ENC_KEY برای شرکت Primus استفاده خواهد شد.

$PRIMUS_ENC_KEYVERSION

نسخه کلید KMS کلید رمزگذاری $PRIMUS_ENC_KEY . مقدار پیش‌فرض 1 است. اگر از کلید موجودی استفاده می‌کنید که در گذشته چرخانده شده و نسخه آن به‌روزرسانی شده است، این را به‌روزرسانی کنید.

$PRIMUS_ARTIFACT_REPOSITORY

مخزن مصنوع که در آن تصویر بارانداز بار کار در آن قرار می گیرد.

$PRIMUS_PROJECT_REPOSITORY_REGION

منطقه ای برای مخزن مصنوع که دارای تصویر بارگزاری منتشر شده است.

$WORKLOAD_VM

نام حجم کار VM.

$WORKLOAD_IMAGE_NAME

نام تصویر داکر حجم کار.

$WORKLOAD_IMAGE_TAG

برچسب تصویر ظرف حجم کاری.

$WORKLOAD_SERVICEACCOUNT

حساب سرویسی که اجازه دسترسی به VM محرمانه را دارد که حجم کار را اجرا می کند.

$CLIENT_VM

نام مشتری VM که برنامه مشتری سرور استنتاج را اجرا می کند.

$CLIENT_SERVICEACCOUNT

حساب سرویس مورد استفاده توسط $CLIENT_VM

  • شما برای پروژه $PRIMUS_PROJECT_ID به Storage Admin، Artifact Registry Administrator، Cloud KMS Admin، Service Account Admin، IAM Workload Identity Pool Admin نیاز دارید. می توانید در مورد نحوه اعطای نقش های IAM با استفاده از کنسول GCP به این راهنما مراجعه کنید.
  • برای $PRIMUS_PROJECT_ID ، اسکریپت زیر را اجرا کنید تا نام متغیرهای باقیمانده را بر اساس شناسه پروژه خود برای نام منابع، مقادیری تنظیم کنید.
source config_env.sh

منابع شرکت Primus را تنظیم کنید

به عنوان بخشی از این مرحله، منابع ابری مورد نیاز را برای Primus تنظیم خواهید کرد. اسکریپت زیر را برای تنظیم منابع Primus اجرا کنید. منابع زیر به عنوان بخشی از اجرای اسکریپت ایجاد خواهند شد:

  • کلید رمزگذاری ( $PRIMUS_ENC_KEY ) و کلید ( $PRIMUS_ENC_KEYRING ) در KMS برای رمزگذاری فایل اطلاعات مشتری شرکت Primus.
  • مجموعه شناسایی حجم کاری ( $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 اجرا کنید. این حساب سرویس توسط VM که سرور استنتاج را اجرا می کند استفاده می شود.

این حساب سرویس حجم کاری ( $WORKLOAD_SERVICEACCOUNT ) نقش های زیر را خواهد داشت:

  • confidentialcomputing.workloadUser برای دریافت نشانه گواهی
  • logging.logWriter برای نوشتن گزارش در Cloud Logging.
./create_workload_service_account.sh

حجم کاری ایجاد کنید

به عنوان بخشی از این مرحله، شما یک تصویر داکر حجم کاری ایجاد خواهید کرد. حجم کار توسط شرکت Primus نوشته می شود. حجم کاری مورد استفاده در این کد لبه کد پایتون است که از مدل codegemma از سطل GCS در دسترس عموم (از باغ مدل راس) استفاده می کند. Workload مدل codegemma را بارگیری می کند و سرور استنتاج را راه اندازی می کند که درخواست های تولید کد از توسعه دهندگان Primus را ارائه می دهد.

در درخواست تولید کد، Workload DEK پیچیده شده را همراه با یک درخواست رمزگذاری شده دریافت می کند. Workload سپس KMS API را برای رمزگشایی DEK فراخوانی می‌کند و سپس با استفاده از این DEK دستور را رمزگشایی می‌کند. کلیدهای رمزگذاری (برای DEK) از طریق مخزن هویت بار کاری محافظت می شوند و دسترسی به بارهای کاری که شرایط ویژگی را دارند اعطا می شود. این شرایط ویژگی با جزئیات بیشتر در بخش بعدی در مورد مجوز بار کاری توضیح داده شده است. هنگامی که سرور استنتاج اعلان رمزگشایی شده را داشته باشد، کد را با استفاده از یک مدل بارگذاری شده تولید می کند و پاسخ را برمی گرداند.

اسکریپت زیر را اجرا کنید تا یک بار کاری ایجاد کنید که در آن مراحل زیر در حال انجام است:

  • ایجاد رجیستری مصنوع ( $PRIMUS_ARTIFACT_REGISTRY ) متعلق به Primus.
  • کد حجم کار را با نام منابع مورد نیاز به روز کنید.
  • بار کاری سرور استنتاج را بسازید و Dockerfile را برای ساختن تصویر داکر از کد بار کاری ایجاد کنید. در اینجا Dockerfile مورد استفاده برای این Codelab است.
  • تصویر Docker را در رجیستری مصنوع ( $PRIMUS_ARTIFACT_REGISTRY ) متعلق به Primus بسازید و منتشر کنید.
  • به $WORKLOAD_SERVICEACCOUNT اجازه خواندن برای $PRIMUS_ARTIFACT_REGISTRY اعطا کنید. این برای محفظه بار کاری لازم است تا تصویر داکر بار کاری را از رجیستری مصنوع بیرون بکشد.
./create_workload.sh

برای مرجع شما، در اینجا متد ()genere برای بار کاری است که در این کد لبه ایجاد و استفاده می شود (کل کد بار کاری را می توانید در اینجا بیابید).

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 مورد استفاده برای رمزگذاری سریع بر اساس ویژگی های منابع زیر را بدهد:

  • چه : کدی که تأیید شده است
  • کجا : محیطی که امن است
  • Who : اپراتور مورد اعتماد

Primus از فدراسیون هویت Workload برای اعمال خط مشی دسترسی بر اساس این الزامات استفاده می کند. فدراسیون هویت بار کاری به شما امکان می دهد شرایط ویژگی را مشخص کنید. این شرایط شناسایی هویت‌هایی را که می‌توانند با استخر شناسایی حجم کاری (WIP) احراز هویت شوند، محدود می‌کند. می‌توانید برای ارائه اندازه‌گیری‌ها و اجرای خط‌مشی، سرویس تأییدکننده گواهی را به عنوان ارائه‌دهنده مجموعه هویت حجم کاری به WIP اضافه کنید.

مخزن هویت حجم کار قبلاً به عنوان بخشی از مرحله تنظیم منابع ابری ایجاد شده بود. اکنون Primus یک ارائه‌دهنده اطلاعات جمع‌آوری اطلاعات OIDC ایجاد می‌کند. --attribute-condition مشخص شده اجازه دسترسی به محفظه بار کاری را می دهد. مستلزم این است:

  • چه چیزی : آخرین $WORKLOAD_IMAGE_NAME آپلود شده در مخزن $PRIMUS_ARTIFACT_REPOSITORY .
  • کجا : محیط اجرای مورد اعتماد فضای محرمانه روی تصویر کاملاً پشتیبانی شده از فضای مجازی مجازی محرمانه در حال اجرا است.
  • چه کسی : 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 ، برای افزایش امنیت و اطمینان از یکپارچگی حجم کاری در حال اجرا است.

حجم کار را اجرا کنید

به عنوان بخشی از این مرحله، حجم کار را در Trusted Space VM اجرا می کنیم که یک شتاب دهنده متصل است. آرگومان های TEE مورد نیاز با استفاده از پرچم ابرداده منتقل می شوند. آرگومان‌های محفظه حجم کاری با استفاده از بخش « tee-cmd » پرچم ارسال می‌شوند. برای تجهیز حجم کار VM به GPU Nvidia Tesla T4، از علامت --accelerator=type=nvidia-tesla-t4,count=1 استفاده می کنیم. این یک GPU را به VM متصل می کند. همچنین باید tee-install-gpu-driver=true در پرچم های ابرداده قرار دهیم تا درایور GPU مناسب را راه اندازی کنیم.

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"

Inference Query را اجرا کنید

پس از راه اندازی موفقیت آمیز سرور استنتاج بار کاری، اکنون کارکنان شرکت پریموس می توانند درخواست های تولید کد را به سرور استنتاج ارسال کنند.

به عنوان بخشی از این کد لبه، ما از اسکریپت زیر برای راه اندازی برنامه کلاینت استفاده می کنیم که با سرور استنتاج تعامل دارد. این اسکریپت را برای تنظیم VM مشتری اجرا کنید.

./setup_client.sh

مراحل زیر نحوه SSH را در VM کلاینت و اجرای نمونه برنامه کلاینت در محیط مجازی پایتون نشان می دهد. این نرم افزار مثال از رمزگذاری پاکت نامه با کتابخانه Fernet استفاده می کند، اما به خاطر داشته باشید که کتابخانه های رمزگذاری خاص را می توان با موارد استفاده مختلف سازگار کرد.

gcloud compute ssh ${CLIENT_VM} --zone=${PRIMUS_PROJECT_ZONE}

دستورات زیر را برای فعال کردن محیط مجازی پایتون در کلاینت VM و اجرای برنامه کلاینت اجرا کنید.

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 ).
  • حجم کار VM ( $WORKLOAD_VM ) و مشتری مجازی ( $CLIENT_VM ).
./cleanup.sh

اگر کاوش را تمام کرده اید، لطفاً پروژه خود را حذف کنید.

  • به کنسول Cloud Platform بروید
  • پروژه‌ای را که می‌خواهید تعطیل کنید انتخاب کنید، سپس روی «حذف» در بالا کلیک کنید: با این کار، پروژه برای حذف برنامه‌ریزی می‌شود.