Schutz neuer Compute Engine-Instanzen automatisieren

Auf dieser Seite wird beschrieben, wie Sie Back-ups für Compute Engine-Instanzen mithilfe von Tags automatisieren.

Sicherung für neue Compute Engine-Instanzen konfigurieren

Eine Compute Engine-Instanz ist eine VM, die auf Google Cloudgehostet wird. Jede Instanz speichert Daten auf nichtflüchtigen Speichern, die an die Instanz angehängt sind. Sie können eine Instanz erstellen oder eine Gruppe verwalteter Instanzen erstellen, indem Sie die Google Cloud -Konsole, die Google Cloud CLI oder die Compute Engine API verwenden.

Weitere Informationen finden Sie unter Compute Engine.

Voraussetzung für automatische Sicherungen

Bevor Sie mit der Automatisierung von Back-ups von Compute Engine-Instanzen beginnen, sollten Sie die folgenden Anleitungen lesen, um sich auf Back-ups vorzubereiten:

Nachdem Sie den Backup- und DR-Dienst eingerichtet und eine Sicherungsplanvorlage erstellt haben, können Sie den Schutz Ihrer Compute Engine-Instanzen automatisieren, indem Sie die Sicherungsplanvorlage mithilfe von Tags auf die Instanz anwenden.

Berechtigungen

Zum Erstellen, Aktualisieren und Löschen von Tag-Definitionen für Compute Engine-Ressourcen benötigen Sie die Rolle Tag Administrator. Weitere Informationen zur Rolle tagUser finden Sie unter Erforderliche Berechtigungen.

Wenn Sie dynamisches Tagging zum Sichern einer Compute Engine-Instanz verwenden möchten, müssen Sie dem Backup Vault-Dienst-Agent im Compute Engine-Projekt die IAM-Rolle „Backup and DR Compute Engine Operator“ (roles/backupdr.computeEngineOperator) zuweisen.

Tags für dynamischen Schutz verwalten

Zum Erstellen, Aktualisieren und Löschen von dynamischen Schutz-Tags benötigen Sie die entsprechenden Berechtigungen für Ihre Rolle. Sie müssen eine der folgenden Rollen zugewiesen haben:

  • Administrator von Sicherungen und Notfallwiederherstellungen

  • Backup and DR Backup User

  • Backup and DR User V2

  • Projektbearbeiter

  • Projektinhaber

  • Eine benutzerdefinierte Rolle mit den folgenden Berechtigungen:

Erforderliche Berechtigungen

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

Weitere Informationen zu Rollen für den Backup- und DR-Dienst

Sicherungsvorlage automatisch mithilfe von Tags anwenden

In diesem Abschnitt erfahren Sie, wie Sie die Anwendung eines Sicherungsplans auf eine Compute Engine-Instanz mithilfe von Tags automatisieren. Zuerst erstellen Sie in der Verwaltungskonsole eine Zuordnung von Sicherungsplänen zu Tags. Anschließend erstellen Sie Tags über Identity and Access Management (IAM) mit denselben Werten, die in der Verwaltungskonsole zugewiesen wurden.

Werte für das Dynamic Protection-Tag erstellen

Folgen Sie dieser Anleitung, um Werte für dynamische Schutz-Tags zu erstellen, die mit Ihren Compute Engine-Instanzen verwendet werden können:

  1. Klicken Sie in der Backup and DR-Verwaltungskonsole auf das Drop-down-Menü Sicherungspläne und wählen Sie Dynamische Schutz-Tags aus.

  2. Klicken Sie auf Dynamisches Schutz-Tag erstellen.

  3. Geben Sie einen eindeutigen Tag-Wert ein, der den Anforderungen für die Namensgebung entspricht.

  4. Wählen Sie in der Liste Anwendungstyp die Option Compute Engine aus.

  5. Wählen Sie eine entsprechende Vorlage und ein entsprechendes Profil aus, die mit diesem Tag-Wert verknüpft werden sollen.

  6. Klicken Sie auf Speichern. Ein Wert für das dynamische Schutz-Tag wird erstellt.

Dynamische Schutz-Tags erstellen

Folgen Sie dieser Anleitung, um dynamische Schutz-Tags zu erstellen, die Sie an Ihre Compute Engine-Instanzen anhängen können, um den Schutz zu automatisieren:

  1. Zum Erstellen, Aktualisieren und Löschen von Tag-Definitionen benötigen Sie die Rolle „Tag-Administrator“ oder eine andere Rolle mit bestimmten Berechtigungen.

  2. Öffnen Sie in der Google Cloud Console die Seite Tags.

    Zur Seite „Tags“

  3. Wählen Sie oben auf der Seite in der Bereichsauswahl die Organisation oder das Projekt aus, unter dem Sie einen Tag-Schlüssel erstellen möchten.

  4. Klicken Sie auf Erstellen.

  5. Geben Sie im Feld Tag-Schlüssel backupdr-dynamicprotect als Tag-Schlüssel ein. Dies ist ein obligatorischer Schritt für eine erfolgreiche Automatisierung. Achten Sie auf Rechtschreibfehler und vergessen Sie nicht, den Bindestrich einzufügen.

  6. Optional: Geben Sie im Feld Beschreibung des Tag-Schlüssels eine Beschreibung des Tag-Schlüssels ein.

  7. Klicken Sie auf Wert hinzufügen und geben Sie jeden Tag-Wert ein, den Sie gerade erstellt haben.

  1. Geben Sie in das Feld Tag-Wert den Anzeigenamen Ihres Tag-Werts ein. Dieser wird Teil des Namespace-Namens Ihres Tags.

  2. Geben Sie im Feld Beschreibung des Tag-Werts eine Beschreibung der Vorlage und des Profils ein, die mit diesem Tag-Wert verknüpft sind.

  3. Wenn Sie alle Tag-Werte hinzugefügt haben, klicken Sie auf Tag-Schlüssel erstellen.

Dynamische Schutz-Tags zu einer Ressource hinzufügen

Nachdem Sie dynamische Schutz-Tag-Werte erstellt und mit einem dynamischen Schutz-Tag verknüpft haben, müssen Sie einer Compute Engine-Instanz Tags zuweisen. Der tagbasierte Schutz funktioniert nicht, wenn Ihre Instanzen in einer logischen Gruppe geschützt sind. Entfernen Sie die logische Gruppe und versuchen Sie es mit dem dynamischen Schutz.

Ihre dynamischen Schutz-Tags können mit dieser Anleitung an Compute Engine-Instanzen angehängt werden:

  1. Rufen Sie in der Google Cloud Console die Seite Compute Engine > VM-Instanzen auf.

    Zu "VM-Instanzen"

  2. Klicken Sie in der Spalte Name auf den Namen der VM, der Sie Tags hinzufügen möchten.

  3. Führen Sie auf der Seite VM-Instanzdetails folgende Schritte aus:

    1. Klicken Sie auf Bearbeiten.
    2. Klicken Sie im Bereich Basic auf Tags verwalten und fügen Sie die für die Instanz gewünschten Tags hinzu.
  4. Wählen Sie den Schlüssel backupdr-dynamicprotect: und einen entsprechenden Tag-Wert aus, der einem Vorlage und einem Profil zugeordnet ist, die Sie in der Google Cloud -Konsole festgelegt haben.

  5. Klicken Sie auf Speichern.

Tags beim Erstellen einer Ressource hinzufügen

In bestimmten Szenarien möchten Sie möglicherweise Ressourcen während der Ressourcenerstellung statt nach der Erstellung der Ressource taggen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf:

    Zu "VM-Instanzen"

  2. Wählen Sie Ihr Projekt aus und klicken Sie auf Weiter.

  3. Klicken Sie auf Instanz erstellen.

  4. Klicken Sie auf Tags und Labels verwalten.

  5. Klicken Sie auf Tags hinzufügen.

  6. Folgen Sie der Anleitung in der Seitenleiste, um die backupdr-dynamicprotect auszuwählen, die der Instanz hinzugefügt werden soll.

  7. Klicken Sie auf Speichern.

  8. Führen Sie die anderen Schritte unter VM-Instanz erstellen und starten aus, um die Instanz zu erstellen.

gcloud

Wenn Sie die Google Cloud CLI oder APIs verwenden möchten, folgen Sie der SDK-Dokumentation, um Folgendes zu tun:

Terraform

Verwenden Sie die folgende Terraform-Vorlage, um mit der Verwendung dynamischer Schutz-Tags zu beginnen. Bei dieser Vorlage wird davon ausgegangen, dass Sie noch keine Tag-Schlüssel für den dynamischen Schutz in der Google Cloud -Konsole erstellt haben. Das wird dann für Sie erledigt. Mit der Vorlage wird eine neue Compute Engine-Instanz erstellt und an ein dynamisches Schutz-Tag gebunden. Sie können warten, bis der geplante Job für dynamischen Schutz um 4:00 Uhr oder 16:00 Uhr Ortszeit ausgeführt wird, oder einen Job für dynamischen Schutz auf Abruf ausführen. Folgen Sie dazu der Anleitung unter Manuelle automatische Schutzfunktion ausführen.

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

Tag von einer Ressource trennen

Sie können ein Tag von einer Ressource trennen, indem Sie die Tag-Bindungsressource löschen.

Eine Anleitung zum Trennen von Tags finden Sie in der Resource Manager-Dokumentation unter Tag von einer Ressource trennen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf:

    Zu "VM-Instanzen"

  2. Wählen Sie Ihr Projekt aus und klicken Sie auf Weiter.

  3. Klicken Sie in der Spalte Name auf den Namen der VM, für die Sie Tags hinzufügen möchten.

  4. Führen Sie auf der Seite VM-Instanzdetails folgende Schritte aus:

  5. Klicken Sie auf Bearbeiten.

  6. Klicken Sie im Bereich Basic auf Tags verwalten und entfernen Sie die backupdr-dynamicprotect für die Instanz.

  7. Klicken Sie auf Speichern.

gcloud

Wenn Sie die Google Cloud CLI verwenden möchten, folgen Sie der Dokumentation zum Ablösen eines Tags von einer Ressource mit der Google Cloud CLI.

Manuelle automatische Sicherung ausführen

Die Schutz-Engine wird zwar täglich um 4:00 Uhr und 16:00 Uhr Ortszeit ausgeführt, Sie können sie aber auch bei Bedarf mit den folgenden Befehlsschritten ausführen:

  1. Legen Sie den Endpunkt der Managementkonsole fest, indem Sie einen Wert eingeben, der mit „https://bmc-“ beginnt und mit „.com“ endet. Beispiel: https://bmc-PROJECT_NUMBER-GENERATED_ID-dot-REGION.backupdr.googleusercontent.com

    export MC_ENDPOINT="MC_ENDPOINT_edited_value"
    
  2. Bearer-Token generieren:

    echo "Generating a new bearer token..."
    export BEARER_TOKEN=$(gcloud auth print-access-token)
    echo "Bearer token generated: BEARER_TOKEN=$BEARER_TOKEN"
    
  3. Neue Sitzungs-ID abrufen:

    echo "Generating a new session id..."
    export SESSION_RESPONSE=$(curl -XPOST -H "Authorization: Bearer $BEARER_TOKEN" -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"
    

    Nachdem Sie einen Endpunkt festgelegt, ein Bearer-Token generiert und eine Sitzungs-ID erhalten haben, können Sie eine Stunde lang dynamische Schutzjobs auslösen, bis die Sitzungs-ID abläuft.

  4. Dynamischen Schutzjob auslösen

    Bei einem dynamischen Schutzjob werden alle Compute Engine-Instanzen mit ihren aktuellen Tags aktualisiert und Sicherungspläne basierend auf den Tags zugewiesen. Je nach Anzahl der ausstehenden Änderungen für Ihre Arbeitslasten kann es einige Minuten dauern, bis der ausgelöste Job abgeschlossen ist.

    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."
    

Dynamischen Schutz mit dem Resource Manager verwenden

Sie können dynamische Schutz-Tags mit Resource Manager verwenden, um den Schutz Ihrer Compute Engine-Instanzen auf einer höheren Organisationsebene zu automatisieren. Verwenden Sie Resource Manager, um Ressourcen auf Projektebene oder höher zu taggen, damit der Schutz auf alle Ihre Ressourcen übertragen wird. Weitere Informationen zum Übernehmen von Tags

Manuelle Schutzmaßnahmen zu Dynamic Protection migrieren

Wenn Sie Ihre bereits geschützten Ressourcen auf die dynamische Schutzfunktion mit Tags migrieren möchten, müssen Sie das Migrationsflag in Ihrem Projekt aktivieren. Nachdem Sie die Migration aktiviert haben, kann für alle manuell geschützten Instanzen jetzt der dynamische Schutz verwendet werden. Wenn Sie Tags und Ressourcen hinzufügen, wird automatisch Schutz basierend auf dem Tag aktiviert und der vorhandene manuelle Schutz wird entfernt.

Bash

Führen Sie die folgenden Befehle aus:

  1. Legen Sie den Endpunkt der Managementkonsole fest, indem Sie einen Wert eingeben, der mit „https://bmc-“ beginnt und mit „.com“ endet. Beispiel: https://bmc-PROJECT_NUMBER-GENERATED_ID-dot-REGION.backupdr.googleusercontent.com

     #!/bin/bash
    
     export MC_ENDPOINT="MC_ENDPOINT_edited_value"
    
    
  2. Aktivieren Sie die Migration.

    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"
    

Verwaltungskonsole

So aktivieren Sie die Migration von manuell geschützten Compute Engine-Instanzen zu tagbasiertem Schutz:

  1. Stellen Sie die Ein/Aus-Schaltfläche Migration zum tagbasierten Schutz aktivieren auf „Ein“.
  2. Bestätigen Sie das Dialogfeld „Migration aktivieren“. Manuell geschützte Compute Engine-Instanzen werden mit dem auf der VM definierten Tag neu geschützt.

So deaktivieren Sie die Migration von manuell geschützten Compute Engine-Instanzen zum tagbasierten Schutz:

  1. Stellen Sie den Schalter für Migration zur tagbasierten Sicherheit aktivieren auf „AUS“.
  2. Bestätigen Sie das Dialogfeld „Migration deaktivieren“. Dadurch wird die Migration von manuell geschützten Compute Engine-Instanzen zur tagbasierten Schutzfunktion deaktiviert.

Ereignisse und Benachrichtigungen

Nachdem die dynamische Schutz-Engine ausgeführt wurde, können Sie den Fortschritt über Ereignisse überwachen einsehen. Die Verwaltungskonsole erhält Zusammenfassungsbenachrichtigungen nach der Ausführung dynamischer Schutzmaßnahmen. Fehlerbenachrichtigungen werden gesendet, wenn eine Nutzeraktion erforderlich ist.

Best Practices

Durch den dynamischen Schutz kann sich die Anzahl der ausgeführten Sicherungsjobs und die Menge des genutzten Speichers erhöhen. Für optimale Ergebnisse sollten Sie Folgendes beachten:

  • Sicherungszeiträume verlängern Ein Zeitfenster von 6 bis 10 Stunden reicht in der Regel aus, damit alle Jobs abgeschlossen werden können.

  • Eine wiederhergestellte VM übernimmt dasselbe Schutz-Tag wie die Quell-VM sowie denselben Sicherungsplan. Der Schutztyp ändert sich jedoch von tagbasiertem Schutz zu vom Nutzer initiiertem Schutz. Die Ressource wird weiterhin mit dem übertragenen Sicherungsplan geschützt. Wenn Sie den Schutztyp wieder in tagbasierten Schutz ändern möchten, können Sie den übertragenen Sicherungsplan für den Schutz entfernen und den dynamischen Schutzjob auf Abruf auslösen oder auf die nächste geplante Ausführung warten, damit der Anwendung wieder tagbasierter Schutz zugewiesen wird.

  • Eine bereitgestellte VM auf einem vorhandenen oder neu erstellten Host hat nicht dasselbe Schutz-Tag wie die Quell-VM. Sie wird nach dem Bereitstellungsvorgang also nicht automatisch geschützt. Wenn eine neu bereitgestellte VM geschützt werden muss, können Sie eine Tag-Bindung auf die neue VM anwenden, die der Quell-VM ähnelt.