במאמר הזה נסביר איך להגן על מכונות וירטואליות ספציפיות מפני מחיקה על ידי הגדרת המאפיין deletionProtection במשאב Instance. מידע נוסף על מופעי VM זמין במאמר בנושא מופעים.
יכול להיות שחלק מהמכונות הווירטואליות בעומס העבודה שלכם קריטיות להפעלת האפליקציה או השירותים, כמו מכונה וירטואלית שמריצה שרת SQL, שרת שמשמש כמנהל רישיונות וכו'. יכול להיות שיהיה צורך להשאיר את מופעי מכונות ה-VM האלה פועלים ללא הגבלת זמן, ולכן צריך דרך להגן על מכונות ה-VM האלה מפני מחיקה.
הגדרת הדגל deletionProtection מאפשרת להגן על מופע של מכונה וירטואלית מפני מחיקה לא מכוונת. אם משתמש מנסה למחוק מופע של מכונה וירטואלית (VM) שהגדרתם עבורה את הדגל deletionProtection, הבקשה נכשלת. רק משתמש שקיבל תפקיד עם הרשאה compute.instances.create יכול לאפס את הדגל כדי לאפשר את מחיקת המשאב.
לפני שמתחילים
- קוראים את התיעוד בנושא Instances.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Cloud de Confiance by S3NS . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Cloud de Confiance כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Cloud de Confiance by S3NS
gcloud
-
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud init
-
- הגדרת אזור ותחום כברירת מחדל
-
התקינו את ה-CLI של Google Cloud.
-
הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.
-
יוצרים פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
התקינו את ה-CLI של Google Cloud.
-
הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.
-
יוצרים פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
התקינו את ה-CLI של Google Cloud.
-
הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.
-
יוצרים פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
התקינו את ה-CLI של Google Cloud.
-
הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.
-
יוצרים פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
התקינו את ה-CLI של Google Cloud.
-
הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.
-
יוצרים פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (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 ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Cloud de Confiance .
מפרטים
מניעת מחיקה לא מונעת את הפעולות הבאות:
- הפסקת פעולה של מכונה וירטואלית מתוך המכונה (לדוגמה, על ידי הרצת הפקודה
shutdown) - איך עוצרים מכונה
- איך מאפסים מכונה
- השעיית מכונה
- מקרים שמוסרים בגלל תרמיות והתנהלות פוגעת אחרי ש-Google זיהתה אותם
- מופעים שמוסרים בגלל סיום הפרויקט
- הפסקת פעולה של מכונה וירטואלית מתוך המכונה (לדוגמה, על ידי הרצת הפקודה
אפשר להחיל הגנה מפני מחיקה גם על מכונות וירטואליות רגילות וגם על מכונות וירטואליות שניתנות להפסקה.
אי אפשר להחיל הגנה מפני מחיקה על מכונות וירטואליות שנכללות בקבוצת מופעים מנוהלת, אבל אפשר להחיל אותה על מופעים שנכללים בקבוצות מופעים לא מנוהלות.
אי אפשר לציין מניעת מחיקה בתבניות של מופעים.
הרשאות
כדי לבצע את המשימה הזו, אתם צריכים את ההרשאות הבאות או אחד מתפקידי ה-IAM הבאים במשאב.
הרשאות
compute.instances.create
תפקידים
compute.admincompute.instanceAdmin.v1
הגדרת הגנה מפני מחיקה במהלך יצירת מופע
כברירת מחדל, ההגנה מפני מחיקה מושבתת במופע שלכם. מפעילים את ההגנה מפני מחיקה לפי ההוראות שבהמשך.
המסוף
נכנסים לדף Create an instance במסוף Cloud de Confiance .
מרחיבים את הקטע אפשרויות מתקדמות ומבצעים את הפעולות הבאות:
- מרחיבים את הקטע ניהול.
- מסמנים את תיבת הסימון הפעלת הגנה מפני מחיקה.
ממשיכים בתהליך יצירת מכונת ה-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 ומחפשים את השדה deletion protection (הגנה מפני מחיקה). לדוגמה:
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. אל תספקו תוכן בקשה עם הבקשה.
המאמרים הבאים
- איך מפסיקים מכונה
- למחוק את המופעים אם כבר אין לכם צורך בהם.