במאמר הזה נסביר איך להגן על מכונות וירטואליות ספציפיות מפני מחיקה על ידי הגדרת המאפיין deletionProtection במשאב Instance. מידע נוסף על מכונות וירטואליות זמין במאמר מכונות וירטואליות.
יכול להיות שחלק מהמכונות הווירטואליות בעומס העבודה שלכם קריטיות להרצת האפליקציה או השירותים, כמו מכונה וירטואלית שמריצה שרת SQL, שרת שמשמש כ-License Manager וכו'. יכול להיות שצריך להשאיר את מופעי מכונות וירטואליות (VM) פועלים ללא הגבלת זמן, ולכן צריך דרך להגן על המכונות הווירטואליות האלה מפני מחיקה.
הגדרת הדגל deletionProtection מאפשרת להגן על מופע של מכונה וירטואלית מפני מחיקה לא מכוונת. אם משתמש מנסה למחוק מכונה וירטואלית שהגדרתם בה את הדגל deletionProtection, הבקשה נכשלת. רק משתמש שהוקצה לו תפקיד עם הרשאה compute.instances.create יכול לאפס את הסימון כדי לאפשר את מחיקת המשאב.
לפני שמתחילים
- כדאי לקרוא את מאמר התיעוד בנושא Instances.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא התהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים Google Cloud ולממשקי ה-API, לא צריך להגדיר אימות.
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 זיהתה הונאה או התנהלות פוגעת והסירה את המופעים בעקבות זאת
- מופעים שמוסרים בגלל סיום הפרויקט
- הפסקת פעולה של מכונה מתוך המכונה הווירטואלית (למשל, הרצת הפקודה
אפשר להחיל הגנה מפני מחיקה גם על מכונות וירטואליות רגילות וגם על מכונות וירטואליות שניתנות להפסקת פעולה.
אי אפשר להחיל הגנה מפני מחיקה על מכונות וירטואליות שמשתייכות לקבוצת מופעי מכונה מנוהלים, אבל אפשר להחיל אותה על מופעים שמשתייכים לקבוצות מופעים לא מנוהלות.
אי אפשר לציין מניעת מחיקה בתבניות של הגדרות מכונה.
הרשאות
כדי לבצע את המשימה הזו, אתם צריכים את ההרשאות הבאות או אחד מתפקידי ה-IAM הבאים במשאב.
הרשאות
compute.instances.create
תפקידים
compute.admincompute.instanceAdmin.v1
הגדרת הגנה מפני מחיקה במהלך יצירת מופע
כברירת מחדל, ההגנה מפני מחיקה מושבתת במופע שלכם. מפעילים את ההגנה מפני מחיקה באמצעות ההוראות שבהמשך.
המסוף
נכנסים לדף Create an instance במסוף Google Cloud .
מרחיבים את הקטע Advanced options ומבצעים את הפעולות הבאות:
- מרחיבים את הקטע Management.
- מסמנים את תיבת הסימון הפעלת הגנה מפני מחיקה.
ממשיכים בתהליך היצירה של המכונה הווירטואלית.
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.
אם מתבקשים, בוחרים את הפרויקט ולוחצים על Continue.
לוחצים על שם המכונה שרוצים להפעיל או להשבית בה את ההגנה מפני מחיקה. יוצג דף הפרטים של המופע.
בדף פרטי המופע, מבצעים את השלבים הבאים:
- לוחצים על הלחצן עריכה בחלק העליון של הדף.
בקטע הגנה מפני מחיקה, מסמנים את התיבה כדי להפעיל את ההגנה מפני מחיקה או מבטלים את הסימון כדי להשבית אותה.
שומרים את השינויים.
gcloud
ב-CLI של gcloud, מריצים את הפקודה update עם הדגל --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. אל תספקו גוף בקשה עם הבקשה.
המאמרים הבאים
- איך מפסיקים מכונה
- למחוק את המכונות שלכם אם אתם כבר לא צריכים אותן.