במאמר הזה נסביר איך להגן על מכונות וירטואליות ספציפיות מפני מחיקה על ידי הגדרת המאפיין deletionProtection במשאב Instance. מידע נוסף על מופעי VM זמין במאמר בנושא מופעים.
יכול להיות שחלק מהמכונות הווירטואליות בעומס העבודה שלכם קריטיות להרצת האפליקציה או השירותים, כמו מכונה וירטואלית שמריצה שרת SQL, שרת שמשמש כמנהל רישיונות וכו'. יכול להיות שיהיה צורך להשאיר את מופעי מכונות ה-VM האלה פועלים ללא הגבלת זמן, ולכן צריך דרך להגן על מכונות ה-VM האלה מפני מחיקה.
הגדרת הדגל deletionProtection מאפשרת להגן על מופע של מכונה וירטואלית מפני מחיקה לא מכוונת. אם משתמש מנסה למחוק מופע של מכונה וירטואלית (VM) שהגדרתם עבורה את הדגל deletionProtection, הבקשה נכשלת. רק משתמש שהוקצה לו תפקיד עם הרשאה compute.instances.create יכול לאפס את הדגל כדי לאפשר את מחיקת המשאב.
לפני שמתחילים
- קוראים את התיעוד בנושא Instances.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Google Cloud
gcloud
-
התקינו את ה-CLI של Google Cloud. אחר כך, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initאם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
- הגדרת אזור ותחום כברירת מחדל
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
אם אתם משתמשים במעטפת מקומית, אתם צריכים ליצור פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם אתם משתמשים ב-Cloud Shell, אין צורך לבצע את הפעולה הזו.
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
אם אתם משתמשים במעטפת מקומית, אתם צריכים ליצור פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם אתם משתמשים ב-Cloud Shell, אין צורך לבצע את הפעולה הזו.
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
אם אתם משתמשים במעטפת מקומית, אתם צריכים ליצור פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם אתם משתמשים ב-Cloud Shell, אין צורך לבצע את הפעולה הזו.
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
אם אתם משתמשים במעטפת מקומית, אתם צריכים ליצור פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם אתם משתמשים ב-Cloud Shell, אין צורך לבצע את הפעולה הזו.
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
אם אתם משתמשים במעטפת מקומית, אתם צריכים ליצור פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם אתם משתמשים ב-Cloud Shell, אין צורך לבצע את הפעולה הזו.
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
המשך
כדי להשתמש בדוגמאות של Go שבדף הזה בסביבת פיתוח מקומית, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Java
כדי להשתמש בדוגמאות של Java שבדף הזה בסביבת פיתוח מקומית, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
כדי להשתמש בדוגמאות של Node.js שבדף הזה בסביבת פיתוח מקומית, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
PHP
כדי להשתמש בדוגמאות של PHP שבדף הזה בסביבת פיתוח מקומית, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Python שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud.
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .
מפרטים
מניעת מחיקה לא מונעת את הפעולות הבאות:
- הפסקת פעולה של מכונה מתוך המכונה הווירטואלית (למשל, הרצת הפקודה
shutdown) - איך עוצרים מכונה
- איך מאפסים מכונה
- השעיית מכונה
- מקרים שבהם Google זיהתה הונאה או התנהלות פוגעת והסירה את המופעים
- מופעים שמוסרים בגלל סיום הפרויקט
- הפסקת פעולה של מכונה מתוך המכונה הווירטואלית (למשל, הרצת הפקודה
אפשר להחיל הגנה מפני מחיקה גם על מכונות וירטואליות רגילות וגם על מכונות וירטואליות מסוג Preemptible VM.
אי אפשר להחיל הגנה מפני מחיקה על מכונות וירטואליות ששייכות לקבוצת מופעים מנוהלת, אבל אפשר להחיל אותה על מופעים ששייכים לקבוצות מופעים לא מנוהלות.
אי אפשר לציין מניעת מחיקה בתבניות של מופעים.
הרשאות
כדי לבצע את המשימה הזו, אתם צריכים את ההרשאות הבאות או אחד מתפקידי ה-IAM הבאים במשאב.
הרשאות
compute.instances.create
תפקידים
compute.admincompute.instanceAdmin.v1
הגדרת הגנה מפני מחיקה במהלך יצירת מופע
כברירת מחדל, ההגנה מפני מחיקה מושבתת במופע שלכם. כדי להפעיל את ההגנה מפני מחיקה, פועלים לפי ההוראות שבהמשך.
המסוף
נכנסים לדף Create an instance במסוף Google Cloud .
מרחיבים את הקטע אפשרויות מתקדמות ומבצעים את הפעולות הבאות:
- מרחיבים את הקטע ניהול.
- מסמנים את התיבה הגנה מפני מחיקה.
ממשיכים בתהליך יצירת ה-VM.
gcloud
כשיוצרים מכונה וירטואלית, צריך לכלול את הדגלים --deletion-protection או no-deletion-protection. ההגנה מפני מחיקה מושבתת כברירת מחדל, לכן כדי להפעיל אותה:
gcloud compute instances create [INSTANCE_NAME] --deletion-protection
כאשר [INSTANCE_NAME] הוא השם של המופע הרצוי.
כדי להשבית את ההגנה מפני מחיקה במהלך היצירה:
gcloud compute instances create [INSTANCE_NAME] --no-deletion-protection
המשך
Java
Node.js
Python
REST
ב-API, כשיוצרים מכונה וירטואלית, צריך לכלול את המאפיין deletionProtection בגוף הבקשה. לדוגמה:
POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances
{
"name": "[INSTANCE_NAME]",
"deletionProtection": "true",
...
}
כדי להשבית את ההגנה מפני מחיקה, מגדירים את deletionProtection לערך false.
בדיקה אם ההגנה מפני מחיקה מופעלת במופע
אפשר לקבוע אם ההגנה מפני מחיקה מופעלת במופע ב-gcloud tool
או ב-API.
המסוף
נכנסים לדף VM instances.
אם מוצגת בקשה לעשות זאת, בוחרים פרויקט ולוחצים על המשך.
בדף VM instances (מכונות וירטואליות), פותחים את התפריט Columns (עמודות) ומפעילים את האפשרות Deletion protection (הגנה מפני מחיקה).
עמודה חדשה מופיעה עם סמל ההגנה מפני מחיקה. אם ההגנה מפני מחיקה מופעלת במכונה וירטואלית, הסמל מופיע לצד שם המכונה.
gcloud
ב-CLI של gcloud, מריצים את הפקודה instances describe ומחפשים את השדה של הגנה מפני מחיקה. לדוגמה:
gcloud compute instances describe example-instance | grep "deletionProtection"
הכלי מחזיר את הערך של הנכס deletionProtection, שמוגדר כ-true או כ-false:
deletionProtection: false
המשך
Java
Node.js
Python
REST
ב-API, שולחים בקשת GET ומחפשים את השדה deletionProtection:
GET https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]
הפעלה או השבתה של הגנה מפני מחיקה במופעים קיימים
אפשר להפעיל או להשבית את ההגנה מפני מחיקה של מופע קיים, בלי קשר לסטטוס הנוכחי של המופע. במילים אחרות, לא צריך להפסיק את המופע כדי להפעיל או להשבית את ההגנה מפני מחיקה.
המסוף
נכנסים לדף VM instances.
אם מוצגת בקשה לעשות זאת, בוחרים פרויקט ולוחצים על המשך.
לוחצים על שם המופע שרוצים להפעיל או להשבית בו את ההגנה מפני מחיקה. יוצג דף הפרטים של המופע.
בדף פרטי המופע, מבצעים את השלבים הבאים:
- לוחצים על הלחצן עריכה בחלק העליון של הדף.
בקטע הגנה מפני מחיקה, מסמנים את התיבה כדי להפעיל את ההגנה מפני מחיקה או מבטלים את הסימון כדי להשבית אותה.
שומרים את השינויים.
gcloud
מריצים את הפקודה update באמצעות ה-CLI של gcloud עם הדגל --deletion-protection או --no-deletion-protection:
gcloud compute instances update [INSTANCE_NAME] \
[--deletion-protection | --no-deletion-protection]
לדוגמה, כדי להפעיל הגנה מפני מחיקה של מופע בשם example-vm:
gcloud compute instances update example-vm --deletion-protection
המשך
Java
Node.js
Python
REST
ב-API, שולחים בקשת POST ל-method setDeletionProtection עם פרמטר השאילתה deletionProtection. לדוגמה:
POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]/setDeletionProtection?deletionProtection=true
כדי להשבית את ההגנה מפני מחיקה, מגדירים את deletionProtection לערך false. אל תספקו תוכן בקשה עם הבקשה.
המאמרים הבאים
- איך מפסיקים מכונה
- למחוק את המופעים אם כבר אין לכם צורך בהם.