Vertex AI יוצר notebook מאובטח בניהול משתמשים

1. מבוא

מכונות Notebook בניהול משתמשים של Vertex AI Workbench מאפשרות לכם ליצור ולנהל מכונות וירטואליות (VM) של למידה עמוקה (Deep Learning) שמוגדרות מראש עם JupyterLab.

במקרים של מחברות שנוהלו על ידי המשתמשים, חבילה של חבילות ללמידה עמוקה מותקנת מראש, כולל תמיכה במסגרות TensorFlow ו-PyTorch. אפשר להגדיר מכונות וירטואליות עם מעבד בלבד או עם מעבד גרפי.

מה תפַתחו

במדריך הזה מתואר תהליך הפריסה של מחברת מאובטחת לניהול משתמשים, שמבוססת על שיטות מומלצות בתחום הרשת והאבטחה. התהליך כולל את השלבים הבאים:

  1. יצירת VPC
  2. יצירת Cloud Router ו-Cloud NAT
  3. הגדרת מכונת המחברת עם הגדרות האבטחה המתאימות

במדריך הזה מפורטות ההוראות לכל שלב. הוא כולל גם טיפים ושיטות מומלצות לאבטחת מחברות שמנוהלות על ידי משתמשים. איור 1 הוא המחשה של הפריסה באמצעות VPC עצמאי.

איור 1

2292244ba0b11f71.png

מה תלמדו

  • איך קובעים אם VPC משותף או עצמאי מתאים לארגון
  • איך יוצרים VPC עצמאי
  • איך יוצרים Cloud Router ו-Cloud NAT
  • איך יוצרים מחברת שמנוהלת על ידי משתמש
  • איך ניגשים ל-notebook בניהול המשתמשים
  • איך עוקבים אחרי התקינות של מחברות בניהול המשתמשים
  • איך יוצרים לוח זמנים למכונה ומשתמשים בו

הדרישות

  • פרויקט ב-Google Cloud

להרשאות של IAM

2. רשת VPC

אפשר לחשוב על רשת VPC כמו על רשת פיזית, רק שהיא וירטואלית ב-Google Cloud. רשת VPC היא משאב גלובלי שמורכב מרשתות משנה אזוריות. רשתות VPC מבודדות זו מזו באופן לוגי ב-Google Cloud.

Standalone VPC

איור 2 מציג דוגמה של VPC גלובלי עצמאי שמורכב מתת-רשת אזורית (us-central1) בנוסף ל-Cloud Router ול-Cloud NAT שמשמשים כדי לאפשר ל-User Managed Notebook ליצור חיבור מאובטח לאינטרנט.

איור 2

2292244ba0b11f71.png

VPC משותף

‫VPC משותף מאפשר לכם לייצא תת-רשתות מרשת VPC בפרויקט מארח לפרויקטים של שירותים באותו ארגון. הפרויקט המארח מכיל משאבי רשת שמשותפים עם פרויקט השירות, כמו רשתות משנה, Cloud NAT וכללי חומת אש. פרויקט השירות מכיל משאבים ברמת האפליקציה שמסתמכים על משאבי רשת בפרויקט המארח.

איור 3 הוא אילוסטרציה של VPC משותף גלובלי, שבו תשתית הרשת והאבטחה נפרסת בפרויקט המארח, בעוד שעומסי העבודה נפרסים בפרויקט השירות.

איור 3

1354a9323c8e5787.png

VPC עצמאי לעומת VPC משותף

רשת VPC אחת מספיקה להרבה תרחישי שימוש פשוטים, כי קל יותר ליצור, לתחזק ולהבין אותה בהשוואה לחלופות מורכבות יותר. VPC משותף הוא כלי יעיל לארגונים עם כמה צוותים, כי הוא מאפשר להם להרחיב את הפשטות האדריכלית של רשת VPC יחידה לכמה קבוצות עבודה באמצעות שימוש בפרויקטים של שירותים.

שיטה מומלצת ל-VPC שבה נעשה שימוש במדריך

  • כדי לגשת ל-Notebook, צריך להפעיל את Cloud NAT.
  • מפעילים את האפשרות גישה פרטית ל-Google כשיוצרים רשתות משנה.
  • יוצרים כללים מומלצים לחומת האש כדי לצמצם את התנועה הלא רצויה, למשל, לא משתמשים ב-0.0.0.0/0 tcp אלא מגדירים את כתובות ה-IP המדויקות של רשתות המשנה או המארחים.
  • אפשר להשתמש במדיניות חומת אש כדי להרחיב את היקף הכללים של תעבורת נכנסת, למשל מיקומים גיאוגרפיים, רשימות של מודיעין איומים, שמות דומיינים של מקורות וכו'.

3. שיטות מומלצות לשימוש ב-Notebook

בחירת הגודל המתאים למכונות

  • הפסקה או מחיקה של מקרים שלא בשימוש
  • שימוש במופע ראשוני קטן יותר וחזרה על הפעולה עם נתוני מדגם קטנים יותר
  • הגדלת המכונות לפי הצורך
  • התנסות עם מערכי נתונים קטנים יותר

בחירת סוגי המכונות הנכונים

  • Cost optimized VMs
  • שימוש יעיל יותר במשאבי החומרה כדי להפחית עלויות
  • חיסכון של עד 31% בהשוואה ל-N1
  • חיסכון נוסף (20-50%) על התחייבות לשנה או ל-3 שנים
  • הגדלת גודל המכונה או הוספת מעבדים גרפיים יכולה לשפר את הביצועים ולעזור להתגבר על שגיאות של מגבלות זיכרון

תזמון כיבוי של מכונות

  • כיבוי מופעים כשהם לא פעילים (תשלום רק על אחסון בדיסק)
  • תזמון של מכונות וירטואליות של מחברות לכיבוי ולהפעלה אוטומטיים בשעות ספציפיות

מעקב אחרי סטטוס תקינות של מחברת

שיקולי אבטחה

אלה שיקולי האבטחה המומלצים כשיוצרים מחברת שמנוהלת על ידי משתמש:

  • בוחרים באפשרות של גישה ל-Notebook ל'משתמש יחיד בלבד'. אם המשתמש שצוין הוא לא היוצר של המופע, צריך להקצות לו את התפקיד 'משתמש בחשבון שירות' (roles/iam.serviceAccountUser) בחשבון השירות של המופע.
  • משביתים את האפשרויות הבאות:
  • גישת שורש
  • nbconvert
  • הורדת קובץ מממשק המשתמש של JupyterLab
  • במקום להקצות כתובת IP חיצונית ל-Notebook שמנוהל על ידי המשתמש, נעשה שימוש ב-Cloud NAT.
  • בוחרים את אפשרויות החישוב הבאות:
  • הפעלה מאובטחת
  • מודול Trusted Platform וירטואלי (vTPM)
  • מעקב אחר תקינות

4. לפני שמתחילים

עדכון הפרויקט כדי לתמוך במדריך

במדריך הזה נעשה שימוש ב-$variables כדי לעזור בהטמעה של הגדרות gcloud ב-Cloud Shell.

ב-Cloud Shell, מבצעים את הפעולות הבאות:

gcloud config list project
gcloud config set project [your-project-name]
projectid=your-project-name
echo $projectid

5. הגדרת VPC

יצירת VPC עצמאי

ב-Cloud Shell, מבצעים את הפעולות הבאות:

gcloud compute networks create securevertex-vpc --project=$projectid --subnet-mode=custom

יצירת תת-רשת של מחברת שמנוהלת על ידי משתמש

ב-Cloud Shell, מבצעים את הפעולות הבאות:

gcloud compute networks subnets create securevertex-subnet-a --project=$projectid --range=10.10.10.0/28 --network=securevertex-vpc --region=us-central1 --enable-private-ip-google-access

הגדרות של Cloud Router ו-NAT

במדריך נעשה שימוש ב-Cloud NAT להורדות של חבילות תוכנה של מחברות, כי למופע המחברת בניהול המשתמש אין כתובת IP חיצונית. ‏Cloud NAT מציע גם יכולות NAT ליציאה, כלומר למארחים באינטרנט אסור ליזום תקשורת עם מחברת שמנוהלת על ידי המשתמש, מה שהופך אותה למאובטחת יותר.

ב-Cloud Shell, יוצרים את Cloud Router האזורי.

gcloud compute routers create cloud-router-us-central1 --network securevertex-vpc --region us-central1

ב-Cloud Shell, יוצרים את שער Cloud NAT האזורי.

gcloud compute routers nats create cloud-nat-us-central1 --router=cloud-router-us-central1 --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1

6. יצירה של קטגוריית אחסון

קטגוריות אחסון מאפשרות העלאה או אחזור מאובטחים של קבצים. במדריך הזה, האחסון בענן יכיל סקריפט להפעלה אחרי האתחול כדי להתקין חבילות של AI גנרטיבי במחברות שנוהלו על ידי המשתמש.

יוצרים קטגוריה של Cloud Storage ומחליפים את BUCKET_NAME בשם ייחודי גלובלית שאתם מעדיפים.

ב-Cloud Shell, יוצרים קטגוריה ייחודית של אחסון.

gsutil mb -l us-central1 -b on gs://BUCKET_NAME

שמירת הערך 'BUCKET_NAME' למשך ה-Lab

BUCKET_NAME=YOUR BUCKET NAME
echo $BUCKET_NAME

7. יצירת סקריפט לטעינה בזמן ההפעלה

כדי להפעיל את ההורדה של חבילות ה-AI הגנרטיבי, יוצרים סקריפט להפעלה אחרי אתחול ב-Cloud Shell באמצעות vi או nano editor ושומרים אותו כ-poststartup.sh.

#! /bin/bash
echo "Current user: id" >> /tmp/notebook_config.log 2>&1
echo "Changing dir to /home/jupyter" >> /tmp/notebook_config.log 2>&1
cd /home/jupyter
echo "Cloning generative-ai from github" >> /tmp/notebook_config.log 2>&1
su - jupyter -c "git clone https://github.com/GoogleCloudPlatform/generative-ai.git" >> /tmp/notebook_config.log 2>&1
echo "Current user: id" >> /tmp/notebook_config.log 2>&1
echo "Installing python packages" >> /tmp/notebook_config.log 2&1
su - jupyter -c "pip install --upgrade --no-warn-conflicts --no-warn-script-location --user \
     google-cloud-bigquery \
     google-cloud-pipeline-components \
     google-cloud-aiplatform \
     seaborn \
     kfp" >> /tmp/notebook_config.log 2>&1

דוגמה:

vpc_admin@cloudshell$ more poststartup.sh 
#! /bin/bash
echo "Current user: id" >> /tmp/notebook_config.log 2>&1
echo "Changing dir to /home/jupyter" >> /tmp/notebook_config.log 2>&1
cd /home/jupyter
echo "Cloning generative-ai from github" >> /tmp/notebook_config.log 2>&1
su - jupyter -c "git clone https://github.com/GoogleCloudPlatform/generative-ai.git" >> /tmp/notebook_config.log 2>&1
echo "Current user: id" >> /tmp/notebook_config.log 2>&1
echo "Installing python packages" >> /tmp/notebook_config.log 2&1
su - jupyter -c "pip install --upgrade --no-warn-conflicts --no-warn-script-location --user \
     google-cloud-bigquery \
     google-cloud-pipeline-components \
     google-cloud-aiplatform \
     seaborn \
     kfp" >> /tmp/notebook_config.log 2>&1

העלאת הסקריפט לטעינה בזמן ההפעלה לקטגוריית האחסון מ-Cloud Shell באמצעות gsutil

gsutil cp poststartup.sh gs://$BUCKET_NAME

8. יצירה של חשבון שירות

כדי לספק רמת שליטה גבוהה ב-notebook שמנוהל על ידי משתמש, נדרש חשבון שירות. אחרי שיוצרים את ההרשאות לחשבון השירות, אפשר לשנות אותן בהתאם לדרישות העסקיות. במדריך הזה, הכללים הבאים יחולו על חשבון השירות:

לפני שממשיכים, צריך את Service Account API.

ב-Cloud Shell, יוצרים את חשבון השירות.

gcloud iam service-accounts create user-managed-notebook-sa \
    --display-name="user-managed-notebook-sa"

ב-Cloud Shell, מעדכנים את חשבון השירות עם התפקיד 'צפייה באובייקט אחסון'.

gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/storage.objectViewer"

ב-Cloud Shell, מעדכנים את חשבון השירות עם התפקיד Vertex AI User

gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/aiplatform.user"

ב-Cloud Shell, מפרטים את חשבון השירות ורושמים את כתובת האימייל שתשמש ליצירת מחברת שמנוהלת על ידי משתמש.

gcloud iam service-accounts list

דוגמה:

$ gcloud iam service-accounts list
DISPLAY NAME: user-managed-notebook-sa
EMAIL: user-managed-notebook-sa@my-project-id.iam.gserviceaccount.com
DISABLED: False

9. יצירת מחברת מאובטחת שמנוהלת על ידי משתמש

מכונת מחברת מנוהלת על ידי המשתמש היא מכונה וירטואלית ללמידה עמוקה עם הספריות העדכניות ביותר של למידת מכונה ומדעי נתונים שהותקנו מראש. אפשר לכלול מעבדים גרפיים (GPU) של Nvidia כדי להשתמש בשיפור מהירות באמצעות חומרה.

הפעלת ממשקי API לצרכנים

של Notebooks API

יצירת מחברת שמנוהלת על ידי משתמש

  1. מעבר אל סביבת העבודה
  2. בוחרים באפשרות User-Managed Notebooks (מחברות בניהול המשתמש) ואז באפשרות Create Notebook (יצירת מחברת). ייפתח הדף Create a user-managed notebook (יצירת מחברת שמנוהלת על ידי משתמש).
  3. אם פורסם notebook קיים, בוחרים באפשרות User-Managed Notebooks (מחברות בניהול המשתמשים) → New Notebook (מחברת חדשה) → Customize (התאמה אישית).
  4. בדף 'יצירת מחברת בניהול המשתמש', בקטע 'פרטים', מספקים את הפרטים הבאים לגבי המופע החדש:
  • שם: מזינים שם למופע החדש.
  • אזור ותחום: במדריך הזה נשתמש באזור us-central1 ובתחום us-central1-a

לוחצים על המשך.

  1. בקטע Environment (סביבה), מספקים את הפרטים הבאים:
  • מערכת הפעלה: בוחרים את מערכת ההפעלה שרוצים להשתמש בה.
  • בוחרים את הסביבה שבה רוצים להשתמש.
  • גרסה: בוחרים את הגרסה שרוצים להשתמש בה.
  • סקריפט לטעינה בזמן ההפעלה (אופציונלי, אפשר להשתמש בסקריפט של AI גנרטיבי שנוצר קודם) – לוחצים על 'עיון' כדי לבחור סקריפט להפעלה אחרי שהמופע מתחיל לפעול.
  • מטא-נתונים: אופציונלי: אפשר לספק מפתחות מטא-נתונים בהתאמה אישית למופע.

לוחצים על המשך.

  1. בקטע Machine type (סוג המכונה), מציינים את הפרטים הבאים:
  • סוג המכונה: בוחרים את מספר המעבדים ואת כמות ה-RAM של המופע החדש. ב-Vertex AI Workbench מוצגים אומדני עלויות חודשיים לכל סוג מכונה שבוחרים.
  • סוג ה-GPU: בוחרים את סוג ה-GPU ואת מספר ה-GPU למכונה הווירטואלית החדשה. מידע על סוגי ה-GPU השונים זמין במאמר בנושא GPU ב-Compute Engine.
  • מסמנים את התיבה 'התקנה אוטומטית של מנהל ההתקן של NVIDIA GPU'.

VM מוגן

  • הפעלת הפעלה מאובטחת
  • הפעלת vTPM
  • הפעלת מעקב אחר שלמות

לוחצים על המשך.

  1. בקטע Disks (דיסקים), מציינים את הפרטים הבאים:
  • דיסקים: אופציונלי: כדי לשנות את הגדרות ברירת המחדל של דיסק האתחול או דיסק הנתונים, בוחרים את סוג דיסק האתחול, את גודל דיסק האתחול ב-GB, את סוג דיסק הנתונים ואת גודל דיסק הנתונים ב-GB. מידע נוסף על סוגי דיסקים זמין במאמר בנושא אפשרויות אחסון.
  • מחיקה לפח: אופציונלי: מסמנים את תיבת הסימון הזו כדי להשתמש בהתנהגות ברירת המחדל של הפח במערכת ההפעלה. אם משתמשים בהתנהגות ברירת המחדל של הפח, אפשר לשחזר קבצים שנמחקו באמצעות ממשק המשתמש של JupyterLab, אבל הקבצים שנמחקו תופסים מקום בדיסק.
  • גיבוי: אופציונלי: כדי לסנכרן מיקום ב-Cloud Storage עם דיסק הנתונים של המופע, בוחרים באפשרות Browse (עיון) ומציינים את המיקום ב-Cloud Storage. מידע על עלויות האחסון זמין במאמר תמחור של Cloud Storage.
  • הצפנה: מפתח הצפנה בניהול Google

לוחצים על המשך.

  1. בקטע Networking (רשת), מציינים את הפרטים הבאים:
  • רשתות: בוחרים באפשרות 'רשתות בפרויקט הזה' או באפשרות 'רשתות ששותפו איתי'. אם אתם משתמשים ב-VPC משותף בפרויקט המארח, אתם צריכים גם להעניק ל-Notebooks Service Agent מפרויקט השירות את התפקיד Compute Network User (roles/compute.networkUser).
  • בשדה Network (רשת), בוחרים את הרשת הרצויה. במדריך הזה נעשה שימוש ברשת securevertex-vpc. אפשר לבחור רשת VPC, כל עוד מופעלת בה גישה פרטית ל-Google או שיש לה גישה לאינטרנט. בשדה Subnetwork (רשת משנה), בוחרים את רשת המשנה הרצויה. במדריך הזה נעשה שימוש ברשת המשנה securevertex-subnet-a.
  • ביטול הבחירה באפשרות 'הקצאת כתובת IP חיצונית'
  • בוחרים באפשרות 'אישור גישה לפרוקסי'.

לוחצים על המשך.

81bb7dbe31fbf587.png

  1. בקטע IAM and security (ניהול זהויות והרשאות גישה ואבטחה), מספקים את הפרטים הבאים:
  • בוחרים באפשרות משתמש יחיד ואז מזינים בשדה 'כתובת האימייל של המשתמש' את חשבון המשתמש שרוצים להעניק לו גישה. אם המשתמש שצוין הוא לא היוצר של המופע, צריך להקצות לו את התפקיד 'משתמש בחשבון שירות' (roles/iam.serviceAccountUser) בחשבון השירות של המופע.
  • ביטול הסימון של האפשרות 'שימוש בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine במכונה הווירטואלית כדי לקרוא ל-Google Cloud APIs'
  • מזינים את כתובת האימייל של חשבון השירות החדש שנוצר, לדוגמה: user-managed-notebook-sa@my-project-id.iam.gserviceaccount.com

אפשרויות אבטחה

  • מבטלים את הסימון של האפשרות להפעלת גישת שורש למופע
  • מבטלים את הבחירה באפשרות 'הפעלת nbconvert'
  • ביטול הסימון של האפשרות Enable file downloading from JupyterLab UI (הפעלת הורדת קבצים מממשק המשתמש של JupyterLab)
  • הפעלת הטרמינל (ביטול הבחירה בסביבות ייצור)

לוחצים על המשך.

e19f3cd05a2c1b7f.png

  1. בקטע System health (תקינות המערכת), מציינים את הפרטים הבאים:

שדרוג הסביבה ותקינות המערכת

  • מסמנים את תיבת הסימון 'הפעלת שדרוג אוטומטי של הסביבה'.
  • בוחרים אם לשדרג את הפנקס מדי שבוע או מדי חודש.

בקטע 'תקינות המערכת ודיווח', מסמנים או מבטלים את הסימון בתיבות הבאות:

  • הפעלת דוח תקינות המערכת
  • דיווח על מדדים מותאמים אישית ל-Cloud Monitoring
  • התקנת סוכן Cloud Monitoring

לוחצים על יצירה.

10. אימות

‫Vertex AI Workbench יוצר מכונה של notebooks בניהול משתמשים על סמך המאפיינים שציינתם, ומפעיל את המכונה באופן אוטומטי. כשהמופע מוכן לשימוש, Vertex AI Workbench מפעיל קישור Open JupyterLab שמאפשר למשתמש הקצה גישה למחברת.

11. ניראות (observability)

מעקב אחרי מדדי מערכת ואפליקציות באמצעות Monitoring

אם התקנתם את Monitoring במכשירי מחברת שמנוהלים על ידי המשתמש, אתם יכולים לעקוב אחרי מדדי המערכת והאפליקציה באמצעות מסוף Google Cloud:

  1. במסוף Google Cloud, עוברים לדף User-managed notebooks.
  2. לוחצים על שם המופע שרוצים להציג את מדדי המערכת והאפליקציה שלו.
  3. בדף Notebook details, לוחצים על הכרטיסייה Monitoring. בודקים את מדדי המערכת והאפליקציה של המופע.

12. יצירת לוח זמנים של Notebook

תזמון מופעים מאפשר להפעיל ולהפסיק מכונות וירטואליות (VM) באופן אוטומטי. שימוש בלוחות זמנים של מופעים כדי להפוך את הפריסה של מופעי ה-VM לאוטומטית יכול לעזור לכם לבצע אופטימיזציה של העלויות ולנהל את מופעי ה-VM בצורה יעילה יותר. אפשר להשתמש בלוחות זמנים של מופעים גם לעומסי עבודה חוזרים וגם לעומסי עבודה חד-פעמיים. לדוגמה, אפשר להשתמש בלוחות זמנים של מכונות כדי להריץ מכונות וירטואליות רק בשעות העבודה או כדי לספק קיבולת לאירוע חד-פעמי.

כדי להשתמש בתזמון של מכונות, צריך ליצור מדיניות משאבים שמפרטת את אופן ההתנהגות של ההפעלה וההפסקה, ואז לצרף את המדיניות למכונה וירטואלית אחת או יותר.

במדריך הזה נסביר איך ליצור לוח זמנים של מופע שיפעיל את המחברת ב-7:00 בבוקר ויכבה אותה ב-18:00.

כדי ליצור את לוח הזמנים של המכונה, תצטרכו את ההרשאות compute.instances.start ו-compute.instances.stop. לכן מומלץ ליצור תפקיד בהתאמה אישית שהאדמין יקצה לכם.

אחרי שיוצרים את התפקיד המותאם אישית, הוא מוקצה לחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine בפרויקט, וכך מאפשר לתזמן את הפעלת המחברת והפסקת הפעולה שלה.

יצירת תפקיד בהתאמה אישית

ב-Cloud Shell, יוצרים תפקיד בהתאמה אישית, VmScheduler, וכוללים בו את ההרשאות הנדרשות.

gcloud iam roles create Vm_Scheduler --project=$projectid \
    --title=vm-scheduler-notebooks \
    --permissions="compute.instances.start,compute.instances.stop" --stage=ga

מתארים את התפקיד בהתאמה אישית מ-Cloud Shell.

gcloud iam roles describe Vm_Scheduler --project=$projectid

דוגמה:

$ gcloud iam roles describe Vm_Scheduler --project=$projectid
etag: BwX991B0_kg=
includedPermissions:
- compute.instances.start
- compute.instances.stop
name: projects/$projectid/roles/Vm_Scheduler
stage: GA
title: vm-scheduler-notebooks

עדכון חשבון השירות שמוגדר כברירת מחדל

בקטע הבא תזהו ותעדכנו את חשבון השירות שמוגדר כברירת מחדל, שמופיע בפורמט: PROJECT_NUMBER-compute@developer.gserviceaccount.com

ב-Cloud Shell, מאתרים את מספר הפרויקט הנוכחי.

gcloud projects list --filter=$projectid

ב-Cloud Shell, מאחסנים את מספר הפרויקט כמשתנה.

project_number=your_project_number
echo $project_number

ב-Cloud Shell, מעדכנים את חשבון השירות שמוגדר כברירת מחדל ב-Compute עם התפקיד המותאם אישית VM_Scheduler.

gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:$project_number-compute@developer.gserviceaccount.com" --role="projects/$projectid/roles/Vm_Scheduler"

יצירת תזמון מכונה

ב-Cloud Shell, יוצרים את לוח הזמנים להפעלה ולהפסקה.

gcloud compute resource-policies create instance-schedule optimize-notebooks \
    --region=us-central1 \
    --vm-start-schedule='0 7 * * *' \
    --vm-stop-schedule='0 18 * * *' \
        --timezone=America/Chicago

ב-Cloud Shell, מאחסנים את שם המחברת.

gcloud compute instances list
notebook_vm=your_notebookvm_name
echo $notebook_vm

אפשר לצרף תזמון של מכונה לכל מכונה וירטואלית קיימת שנמצאת באותו אזור כמו התזמון של המכונה.

ב-Cloud Shell, משייכים את לוח הזמנים למחברת.

gcloud compute instances add-resource-policies $notebook_vm \
--resource-policies=optimize-notebooks \
--zone=us-central1-a

13. הסרת המשאבים

מוחקים את ה-notebook בניהול משתמשים מהמסוף. כדי לעשות זאת, עוברים אל Vertex AI → Workbench, בוחרים את ה-notebook ומוחקים אותו.

מ-Cloud Shell, מוחקים רכיבי VPC.

gcloud compute routers delete cloud-router-us-central1 --region=us-central1 --quiet

gcloud compute routers nats delete cloud-nat-us-central1 --region=us-central1 --router=cloud-router-us-central1 --quiet

gcloud compute instances remove-resource-policies $notebook_vm \
--resource-policies=optimize-notebooks \
--zone=us-central1-a --quiet

gcloud compute resource-policies delete optimize-notebooks --region=us-central1 --quiet

gcloud compute instances delete $notebook_vm --zone=us-central1-a --quiet

gcloud compute networks subnets delete securevertex-subnet-a --region=us-central1 --quiet 

gcloud iam service-accounts delete user-managed-notebook-sa@$projectid.iam.gserviceaccount.com --quiet 

gcloud projects remove-iam-policy-binding $projectid --member="serviceAccount:$project_number-compute@developer.gserviceaccount.com" --role="projects/$projectid/roles/Vm_Scheduler"

gcloud iam roles delete Vm_Scheduler --project=$projectid

gcloud compute networks delete securevertex-vpc --quiet 

14. מזל טוב

כל הכבוד! הגדרתם ואימתתם בהצלחה מחברת מאובטחת בניהול המשתמשים, על ידי יצירת VPC עצמאי בהתאמה אישית באמצעות שיטות מומלצות לחיזוק האבטחה של מחברות מנוהלות, והטמעתם תזמון של מופע כדי לבצע אופטימיזציה של ההוצאות.

מה השלב הבא?

כדאי לעיין במדריכים הבאים…

קריאה נוספת וסרטונים

מאמרי עזרה