אוטומציה של ההגנה על מכונות Compute Engine במסוף הניהול של ה-Appliance

בדף הזה מוסבר איך להגדיר גיבויים אוטומטיים למכונות Compute Engine באמצעות תגים במסוף לניהול מכשירים.

הגדרת גיבוי למכונות חדשות של Compute Engine

מכונה של Compute Engine היא מכונה וירטואלית שמארחת ב- Google Cloud. כל מופע מאחסן נתונים בדיסקים מתמידים שמצורפים למופע. אפשר ליצור מכונה או ליצור קבוצה של מכונות מנוהלות באמצעות מסוף Google Cloud ,‏ CLI של gcloud או Compute Engine API.

מידע נוסף מפורט במאמר בנושא Compute Engine.

דרישה מוקדמת לגיבוי אוטומטי

לפני שמתחילים להגדיר גיבוי אוטומטי של מופעים של Compute Engine, כדאי לקרוא את ההליכים הבאים כדי להתכונן לגיבויים:

אחרי שמגדירים את שירות Backup and DR ויוצרים תבנית של תוכנית גיבוי, אפשר להחיל את תבנית תוכנית הגיבוי על המכונה באמצעות תגים כדי להגן על המכונות של Compute Engine באופן אוטומטי.

הרשאות

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

כדי להשתמש בתיוג דינמי לגיבוי מכונה של Compute Engine, צריך להעניק לסוכן השירות של מכשיר הגיבוי והשחזור בפרויקט Compute Engine את התפקיד 'מפעיל Compute Engine' של Backup and DR ‏(roles/backupdr.computeEngineOperator) בניהול הזהויות והרשאות הגישה (IAM).

ניהול תגים של הגנה דינמית

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

  • אדמין של Backup and DR

  • משתמש גיבוי ב-Backup and DR

  • Backup and DR User V2

  • עריכת פרויקטים

  • Project Owner

  • תפקיד בהתאמה אישית שכולל את ההרשאות הבאות:

ההרשאות הנדרשות

  • backupdr.managementServers.listDynamicProtection
  • backupdr.managementServers.getDynamicProtection
  • backupdr.managementServers.createDynamicProtection
  • backupdr.managementServers.deleteDynamicProtection
  • compute.instances.listEffectiveTags

מידע נוסף על תפקידים בשירות הגיבוי וההתאוששות מאסון

החלת תבנית של תוכנית גיבוי באמצעות תגים באופן אוטומטי

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

יצירת ערכים של תג הגנה דינמי

כדי ליצור ערכים של תגי הגנה דינמיים שאפשר להשתמש בהם במופעי Compute Engine, פועלים לפי ההוראות הבאות:

  1. במסוף הניהול של מכשיר Backup and DR, לוחצים על התפריט הנפתח תוכניות גיבוי ובוחרים באפשרות תגי הגנה דינמיים.

  2. לוחצים על יצירת תג הגנה דינמי.

  3. מזינים ערך תג ייחודי שעומד בדרישות השמות האלה.

  4. ברשימה סוג האפליקציה בוחרים באפשרות Compute Engine.

  5. בוחרים תבנית ופרופיל תואמים שישויכו לערך התג הזה.

  6. לוחצים על Save. נוצר ערך של תג הגנה דינמי.

יצירת תגי הגנה דינמיים

כדי ליצור תגי הגנה דינמיים שאפשר לצרף למכונות ב-Compute Engine כדי להפוך את ההגנה לאוטומטית, אפשר לפעול לפי ההוראות הבאות:

  1. כדי ליצור, לעדכן ולמחוק הגדרות של תגים, צריך להיות לכם תפקיד Tag Administrator או תפקיד אחר שכולל הרשאות ספציפיות.

  2. פותחים את הדף Tags במסוף Google Cloud .

    כניסה לדף Tags

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

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

  5. בתיבה Tag key (מפתח תג), מזינים backupdr-dynamicprotect כמפתח התג. זהו שלב חובה כדי שהאוטומציה תפעל בצורה תקינה. חשוב לשים לב לשגיאות כתיב ולהקפיד לכלול את המקף.

  6. אופציונלי: בתיבה Tag key description, מזינים תיאור של מפתח התג.

  7. לוחצים על הוספת ערך ומזינים כל ערך תג שיצרתם.

  1. בתיבה Tag value (ערך התג), מזינים את שם התצוגה של ערך התג. השם הזה הופך לחלק מהשם של התג במרחב השמות.

  2. בתיבה Tag value description (תיאור ערך התג), מזינים תיאור של התבנית והפרופיל שמשויכים לערך התג הזה.

  3. כשתסיימו להוסיף ערכי תג, לחצו על יצירת מפתח תג.

הוספת תגי הגנה דינמיים למשאב

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

אפשר לצרף את תגי ההגנה הדינמיים למכונות ב-Compute Engine באמצעות ההוראות הבאות:

  1. במסוף Google Cloud , עוברים לדף VM instances (מכונות VM) ‏> Compute Engine.

    כניסה לדף VM instances

  2. בעמודה Name (שם), לוחצים על שם המכונה הווירטואלית שרוצים להוסיף לה תגים.

  3. בדף הפרטים של מכונת ה-VM, מבצעים את השלבים הבאים:

    1. לוחצים על Edit.
    2. בקטע Basic (בסיסי), לוחצים על Manage Tags (ניהול תגים) ומוסיפים את התגים הרצויים למופע.
  4. בוחרים את המפתח backupdr-dynamicprotect: ואת ערך התג המתאים שממופה לתבנית ולפרופיל שהגדרתם במסוף Google Cloud .

  5. לוחצים על Save.

הוספת תגים למשאב במהלך יצירת המשאב

בתרחישים מסוימים, יכול להיות שתרצו לתייג משאבים במהלך יצירת המשאבים, ולא אחרי שהמשאב נוצר.

המסוף

  1. נכנסים לדף VM instances במסוף Google Cloud .

    כניסה לדף VM instances

  2. בוחרים פרויקט ולוחצים על המשך.

  3. לוחצים על Create instance.

  4. לוחצים על ניהול תגים ותוויות.

  5. לוחצים על הוספת תגים.

  6. פועלים לפי ההוראות בחלונית הצדדית כדי לבחור את backupdr-dynamicprotect שרוצים להוסיף למופע.

  7. לוחצים על Save.

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

gcloud

כדי להשתמש ב-CLI של gcloud או בממשקי API, פועלים לפי מסמכי ה-SDK כדי לבצע את הפעולות הבאות:

Terraform

כדי להתחיל להשתמש בתגי הגנה דינמיים, אפשר להשתמש בתבנית Terraform הבאה. התבנית הזו מניחה שלא יצרתם עדיין מפתחות תגים של Dynamic Protection במסוף Google Cloud ותגדיר אותם בשבילכם. התבנית יוצרת מכונה חדשה ב-Compute Engine ומקשרת אותה לתג הגנה דינמי. אפשר לחכות עד שהעבודה המתוזמנת של ההגנה הדינמית תפעל בשעה 4:15 בבוקר או בשעה 4:15 אחר הצהריים לפי השעון המקומי כדי שהשינוי ייכנס לתוקף, או להריץ עבודה של הגנה דינמית לפי דרישה. כדי לעשות זאת, פועלים לפי השלבים במאמר הפעלת הגנה אוטומטית ידנית.

variable "project_id" {
  description = "The ID of the existing Google Cloud project"
  type        = string
}

variable "region" {
  description = "The Google Cloud region where demo-instance should be created"
  type        = string
}

variable "zone" {
  description = "The Google Cloud zone where demo-instance should be created"
  type        = string
}

provider "google" {
  project = var.project_id
  region = var.region
  zone  = var.zone
}

data "google_project" "project" {
  project_id = var.project_id
}

# Reference: https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/tags_tag_key
resource "google_tags_tag_key" "key" {
  parent = "projects/${var.project_id}"
  short_name = "backupdr-dynamicprotect"
  description = "Tag key for Dynamic Protection."
}

# Reference: https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/tags_tag_value
resource "google_tags_tag_value" "value" {
  parent = "tagKeys/${google_tags_tag_key.key.name}"
  short_name = "backupdr-gold" # This value should be present in the "Management Console UI" > "Backup Plans" > "Dynamic Protection Tags"
  description = "Tag value for gold plan."
}

# Reference: https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/compute_instance
# Ensure not to define tag in "resource_manager_tags" block while creating VM instance. It'll destroy the VM
# when tag value is changed/removed later. Instead define a separate tag binding using "google_tags_tag_binding"
# or "google_tags_location_tag_binding" resource. It'll modify just tag binding and VM instance won't be affected.

resource "google_compute_instance" "vm_instance" {
  name         = "demo-instance"
  machine_type = "e2-micro"
  zone         = var.zone

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-11"
    }
  }

  network_interface {
    network = "default"

    access_config {
      // Ephemeral public IP
    }
  }
}

# Reference: https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/google_tags_location_tag_binding
resource "google_tags_location_tag_binding" "binding" {
    parent    = "//compute.googleapis.com/projects/${data.google_project.project.number}/zones/${var.zone}/instances/${google_compute_instance.vm_instance.instance_id}"
    tag_value = "tagValues/${google_tags_tag_value.value.name}"
    location  = var.zone
}

# Reference for Tag bindings at project/org level: https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/tags_tag_binding

ניתוק תג ממקור

כדי לבטל את הקישור של תג ממשאב, צריך למחוק את משאב קישור התגים.

הוראות להסרת תגים מופיעות במאמר הסרת תג ממשאב במאמרי העזרה של מנהל המשאבים.

המסוף

  1. נכנסים לדף VM instances במסוף Google Cloud .

    כניסה לדף VM instances

  2. בוחרים פרויקט ולוחצים על המשך.

  3. בעמודה Name (שם), לוחצים על שם המכונה הווירטואלית שרוצים להוסיף לה תגים.

  4. בדף הפרטים של מכונת ה-VM, מבצעים את השלבים הבאים:

  5. לוחצים על Edit.

  6. בקטע Basic (בסיסי), לוחצים על Manage Tags (ניהול תגים) ומסירים את backupdr-dynamicprotect מהמופע.

  7. לוחצים על Save.

gcloud

כדי להשתמש ב-CLI של gcloud, פועלים לפי ההוראות לשימוש ב- CLI של gcloud כדי לנתק תג ממשאב.

הרצת הגנה אוטומטית ידנית

מנוע ההגנה פועל מדי יום בשעות 4:15 בבוקר ו-4:15 אחר הצהריים לפי השעון המקומי, אבל אפשר גם להפעיל אותו לפי דרישה באמצעות השלבים הבאים:

  1. מגדירים את נקודת הקצה של מסוף ניהול המכשיר על ידי הזנת ערך שמתחיל ב-'https://bmc-‎' ומסתיים ב-'.com'. לדוגמה, https://bmc-PROJECT_NUMBER-GENERATED_ID-dot-REGION.backupdr.googleusercontent.com

    export MC_ENDPOINT="MC_ENDPOINT_edited_value"
    
  2. יצירת טוקן מסוג bearer:

    echo "Generating a new bearer token..."
    export BEARER_TOKEN=$(gcloud auth print-access-token)
    echo "Bearer token generated: BEARER_TOKEN=$BEARER_TOKEN"
    
  3. קבלת מזהה פעילות חדש:

    echo "Generating a new session id..."
    export SESSION_RESPONSE=$(curl -XPOST -H "Authorization: Bearer $BEARER_TOKEN" -H "Content-Type: application/json" -d '{}' "$MC_ENDPOINT/actifio/session" 2>&-)
    export SESSION_ID=$(echo $SESSION_RESPONSE | jq -r '.session_id')
    
    if [ -z ${SESSION_ID} ]
      then echo "Issue with generating a new session id. Response: $SESSION_RESPONSE";
      return 1;
    fi
    
    echo "Session id generated: SESSION_ID=$SESSION_ID"
    

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

  4. הפעלת עבודת הגנה דינמית

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

    echo "Triggering dynamic protection job.."
    
    curl -H "Authorization: Bearer $BEARER_TOKEN" -H "backupdr-management-session: Actifio $SESSION_ID" -H "Content-Type: application/json" -XPOST -d '{}' "$MC_ENDPOINT/actifio/dynamicprotection/job/gceinstance"
    
    echo "Dynamic protection job triggered."
    

שימוש בהגנה דינמית עם מנהל המשאבים

אתם יכולים להשתמש בתגי הגנה דינמיים עם מנהל המשאבים כדי להפוך את ההגנה על מכונות Compute Engine לאוטומטית ברמה ארגונית גבוהה יותר. כדי לוודא שההגנה עוברת בירושה לכל המשאבים, משתמשים ב-מנהל המשאבים כדי לתייג משאבים ברמת הפרויקט או ברמה גבוהה יותר. מידע נוסף על Tag Inheritance

העברת הגנה ידנית להגנה דינמית

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

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

Bash

מריצים את הפקודות הבאות.

  1. מגדירים את נקודת הקצה של מסוף הניהול של ה-Appliance על ידי הזנת ערך שמתחיל ב-'https://bmc-‎' ומסתיים ב-'.com'. לדוגמה, https://bmc-PROJECT_NUMBER-GENERATED_ID-dot-REGION.backupdr.googleusercontent.com

     #!/bin/bash
    
     export MC_ENDPOINT="MC_ENDPOINT_edited_value"
    
    
  2. מפעילים את ההעברה.

    curl -H "Authorization: Bearer $BEARER_TOKEN" -H "backupdr-management-session: Actifio $SESSION_ID" -H "Content-Type: application/json" -XPATCH -d '{ "enableMigrationToTagBasedProtection":"true"}' "$MC_ENDPOINT/actifio/dynamicprotection/jobconfig"
    

מסוף הניהול של מכשיר

כדי להפעיל העברה של מכונות ב-Compute Engine שמוגנות באופן ידני להגנה מבוססת-תגים, פועלים לפי השלבים הבאים:

  1. מעבירים את המתג הפעלת ההעברה להגנה מבוססת-תגים למצב מופעל.
  2. מאשרים את תיבת הדו-שיח 'הפעלת ההעברה'. מכונות וירטואליות של Compute Engine שמוגנות באופן ידני יוגנו מחדש באמצעות התג שהוגדר במכונה הווירטואלית.

כדי להשבית את ההעברה של מכונות Compute Engine שמוגנות באופן ידני להגנה מבוססת-תגים, פועלים לפי השלבים הבאים:

  1. מעבירים את המתג הפעלת ההעברה להגנה מבוססת-תגים למצב מושבת.
  2. מאשרים את תיבת הדו-שיח 'השבתת ההעברה'. הפעולה הזו משביתה את ההעברה של מכונות Compute Engine שמוגנות באופן ידני להגנה מבוססת-תגים.

אירועים והתראות

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

שיטות מומלצות

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

  • הגדלת חלונות הגיבוי. בדרך כלל, חלון של 6 עד 10 שעות מאפשר לכל העבודות לפעול עד לסיום.

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

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