Freigeben über


Sichern von Azure-Blobs in einem Speicherkonto mithilfe der Azure CLI

In diesem Artikel beschrieben, wie Sie Azure-Blobs mithilfe der Azure CLI sichern. Sie können jetzt Betriebs - und Tresorsicherungen ausführen, um Block-Blobs in Ihren Speicherkonten mithilfe von Azure Backup zu schützen.

Informationen zur regionalen Verfügbarkeit von Azure-Blobs, zu unterstützten Szenarien und zu Einschränkungen finden Sie in der Supportmatrix.

Vorbereitung

Sehen Sie sich die Voraussetzungen und die Supportmatrix an, bevor Sie beginnen.

Erstellen eines Sicherungstresors

Ein Sicherungstresor ist eine Speicherentität in Azure, die Sicherungsdaten für verschiedene neuere Workloads speichert, die von Azure Backup unterstützt werden, z. B. Azure Database for PostgreSQL Server, Blobs in einem Speicherkonto und Azure-Datenträger. Sicherungstresore vereinfachen die Organisation Ihrer Sicherungsdaten und minimieren gleichzeitig den Verwaltungsaufwand. Sicherungstresore basieren auf dem Azure Resource Manager-Modell von Azure, das erweiterte Funktionen bietet, die das Schützen von Sicherungsdaten erleichtern.

Bevor Sie einen Sicherungstresor erstellen, wählen Sie die Speicherredundanz der Daten im Tresor aus. Fahren Sie dann mit der Erstellung des Sicherungstresors mit dieser Speicherredundanz und dem Speicherort fort. In diesem Artikel erstellen wir einen Sicherungstresor namens TestBkpVault in der Region „USA, Westen“ (westus) unter der Ressourcengruppe testBkpVaultRG. Verwenden Sie den Befehl az dataprotection vault create, um einen Sicherungstresor zu erstellen. Weitere Informationen finden Sie unter Erstellen eines Sicherungstresors.

az dataprotection backup-vault create -g testBkpVaultRG --vault-name TestBkpVault -l westus --type SystemAssigned --storage-settings datastore-type="VaultStore" type="LocallyRedundant"

{
  "eTag": null,
  "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/testBkpVaultRG/providers/Microsoft.DataProtection/BackupVaults/TestBkpVault",
  "identity": {
    "principalId": "2ca1d5f7-38b3-4b61-aa45-8147d7e0edbc",
    "tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "type": "SystemAssigned"
  },
  "location": "westus",
  "name": "TestBkpVault",
  "properties": {
    "provisioningState": "Succeeded",
    "storageSettings": [
      {
        "datastoreType": "VaultStore",
        "type": "LocallyRedundant"
      }
    ]
  },
  "resourceGroup": "testBkpVaultRG",
  "systemData": null,
  "tags": null,
  "type": "Microsoft.DataProtection/backupVaults"
}

Wichtig

Obwohl die Sicherungsspeicherredundanz des Tresors angezeigt wird, gilt die Redundanz nicht für die operative Sicherung von Blobs. Dies liegt daran, dass die Sicherung erfolgt und keine Daten im Sicherungstresor gespeichert werden. Hier ist der Sicherungstresor die Verwaltungsentität, die Sie bei der Verwaltung des Schutzes von Blockblobs in Ihren Speicherkonten unterstützt.

Nach dem Erstellen eines Tresors erstellen wir nun eine Azure Backup-Richtlinie zum Schutz von Azure-Blobs in einem Speicherkonto.

Erstellen einer Sicherungsrichtlinie

Sie können eine Sicherungsrichtlinie für operative Sicherung und Tresorsicherung für Azure-Blobs per Azure CLI erstellen.

Auswählen einer Sicherungsebene:

Bevor Sie die Richtlinie erstellen und Sicherungen für Azure Blobs konfigurieren, lesen Sie die Voraussetzungen.

Um die einzelnen Komponenten einer Azure Backup-Richtlinie für eine Azure-Blobsicherung zu verstehen, rufen Sie die Richtlinienvorlage mit dem Befehl az dataprotection backup-policy get-default-policy-template ab. Dieser Befehl gibt eine Standardrichtlinienvorlage für einen angegebenen DataSource-Typ zurück. Verwenden Sie diese Richtlinienvorlage, um eine neue Richtlinie zu erstellen.

az dataprotection backup-policy get-default-policy-template --datasource-type AzureBlob

{
  "datasourceTypes": [
    "Microsoft.Storage/storageAccounts/blobServices"
  ],
  "name": "BlobPolicy1",
  "objectType": "BackupPolicy",
  "policyRules": [
    {
      "isDefault": true,
      "lifecycles": [
        {
          "deleteAfter": {
            "duration": "P30D",
            "objectType": "AbsoluteDeleteOption"
          },
          "sourceDataStore": {
            "dataStoreType": "OperationalStore",
            "objectType": "DataStoreInfoBase"
          }
        }
      ],
      "name": "Default",
      "objectType": "AzureRetentionRule"
    }
  ]
}

Die Richtlinienvorlage umfasst einen Lebenszyklus (der entscheidet, wann die Sicherung gelöscht/kopiert bzw. verschoben werden soll). Da die operative Sicherung für Blobs fortlaufend erfolgt, benötigen Sie keinen Zeitplan für die Durchführung von Sicherungen.

"policyRules": [
    {
      "isDefault": true,
      "lifecycles": [
        {
          "deleteAfter": {
            "duration": "P30D",
            "objectType": "AbsoluteDeleteOption"
          },
          "sourceDataStore": {
            "dataStoreType": "OperationalStore",
            "objectType": "DataStoreInfoBase"
          }
        }
      ],
      "name": "Default",
      "objectType": "AzureRetentionRule"
    }
  ]

Hinweis

Eine Wiederherstellung über einen längeren Zeitraum kann dazu führen, dass die Wiederherstellungsvorgänge länger dauern. Außerdem hängt die erforderliche Zeit zum Wiederherstellen einer Gruppe von Daten von der Anzahl der Schreib- und Löschvorgänge ab, die während des Wiederherstellungszeitraums vorgenommen werden. Beispielsweise dauert bei einem Konto mit 1 Million Objekten, in dem pro Tag 3.000 Objekte hinzugefügt und 1.000 Objekte gelöscht werden, die Wiederherstellung zu einem 30 Tage in der Vergangenheit liegenden Zeitpunkt ungefähr zwei Stunden.

Für ein Konto mit einer solchen Änderungsrate empfiehlt sich weder ein Aufbewahrungszeitraum von mehr als 90 Tagen noch eine Wiederherstellung auf einen Zeitpunkt, der mehr als 90 Tage in der Vergangenheit liegt.

Sobald der JSON-Code der Richtlinie alle erforderlichen Werte aufweist, erstellen Sie mit dem Befehl az dataprotection backup-policy create eine neue Richtlinie aus dem Richtlinienobjekt.

az dataprotection backup-policy get-default-policy-template --datasource-type AzureBlob > policy.json
az dataprotection backup-policy create -g testBkpVaultRG --vault-name TestBkpVault -n BlobBackup-Policy --policy policy.json

{
    "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupPolicies/BlobBackup-Policy",
    "name": "BlobBackup-Policy",
    "properties": {
      "datasourceTypes": [
        "Microsoft.Storage/storageAccounts/blobServices"
      ],
      "objectType": "BackupPolicy",
      "policyRules": [
        {
          "isDefault": true,
          "lifecycles": [
            {
              "deleteAfter": {
                "duration": "P2D",
                "objectType": "AbsoluteDeleteOption"
              },
              "sourceDataStore": {
                "dataStoreType": "OperationalStore",
                "objectType": "DataStoreInfoBase"
              },
              "targetDataStoreCopySettings": []
            }
          ],
          "name": "Default",
          "objectType": "AzureRetentionRule"
        }
      ]
    },
    "resourceGroup": "testBkpVaultRG",
    "systemData": null,
    "type": "Microsoft.DataProtection/backupVaults/backupPolicies"
  }

Konfigurieren der Sicherung

Sobald der Tresor und die Richtlinie erstellt wurden, gibt es zwei wichtige Punkte, die Sie beim Schutz aller Azure-Blobs im Speicherkonto beachten müssen.

  • Schlüsselentitäten
  • Berechtigungen

Schlüsselentitäten

  • Speicherkonto, das die zu schützenden BLOBs enthält: Rufen Sie die Azure Resource Manager-ID des Speicherkontos ab, das die zu schützenden Blobs enthält. Diese ID dient als Bezeichner des Speicherkontos. Wir verwenden ein Beispiel für ein Speicherkonto namens CLITestSA unter der Ressourcengruppe blobrg in einem anderen Abonnement in der Region „Asien, Südosten“.

    "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA"
    
  • Sicherungstresor: Der Sicherungstresor benötigt Berechtigungen für das Speicherkonto, um Sicherungen für Blobs im Speicherkonto zu aktivieren. Die vom System zugewiesene verwaltete Identität des Tresors wird zum Zuweisen solcher Berechtigungen verwendet.

Zuweisen von Berechtigungen

Sie müssen dem Tresor (dargestellt durch die Tresor-MSI) und dem erstellten Speicherkonto über Azure RBAC einige Berechtigungen zuweisen. Diese können über das Portal oder PowerShell ausgeführt werden. Erfahren Sie mehr über alle zugehörigen Berechtigungen.

Vorbereiten der Anforderung zum Konfigurieren der Blob-Sicherung

Nachdem alle relevanten Berechtigungen festgelegt wurden, konfigurieren Sie die Sicherung, indem Sie die folgenden Befehle ausführen:

  1. Zuerst bereiten wir die relevante Anforderung mithilfe des entsprechenden Tresors, der Richtlinie und des Speicherkontos mit dem Befehl az dataprotection backup-instance initialize vor.

    az dataprotection backup-instance initialize --datasource-type AzureBlob  -l southeastasia --policy-id "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupPolicies/BlobBackup-Policy" --datasource-id "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA" > backup_instance.json
    
  2. Übermitteln Sie die Anforderung mithilfe des Create-Befehls az dataprotection backup-instance.

    az dataprotection backup-instance create -g testBkpVaultRG --vault-name TestBkpVault --backup-instance backup_instance.json
    
    {
        "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupInstances/CLITestSA-CLITestSA-c3a2a98c-def8-44db-bd1d-ff6bc86ed036",
        "name": "CLITestSA-CLITestSA-c3a2a98c-def8-44db-bd1d-ff6bc86ed036",
        "properties": {
          "currentProtectionState": "ProtectionConfigured",
          "dataSourceInfo": {
            "datasourceType": "Microsoft.Storage/storageAccounts/blobServices",
            "objectType": "Datasource",
            "resourceId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA",
            "resourceLocation": "southeastasia",
            "resourceName": "CLITestSA",
            "resourceType": "Microsoft.Storage/storageAccounts",
            "resourceUri": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA"
          },
          "dataSourceSetInfo": null,
          "friendlyName": "CLITestSA",
          "objectType": "BackupInstance",
          "policyInfo": {
            "policyId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupPolicies/BlobBackup-Policy",
            "policyParameters": {
              "dataStoreParametersList": [
                {
                  "dataStoreType": "OperationalStore",
                  "objectType": "AzureOperationalStoreParameters",
                  "resourceGroupId": ""
                }
              ]
            },
            "policyVersion": ""
          },
          "protectionErrorDetails": null,
          "protectionStatus": {
            "errorDetails": null,
            "status": "ProtectionConfigured"
          },
          "provisioningState": "Succeeded"
        },
        "resourceGroup": "testBkpVaultRG",
        "systemData": null,
        "type": "Microsoft.DataProtection/backupVaults/backupInstances"
      }
    

Wichtig

Wenn ein Speicherkonto für die Blobsicherung konfiguriert wird, beeinflusst dies einige Funktionen, z. B. Änderungsfeed und Löschsperre. Weitere Informationen

Nächste Schritte

Wiederherstellen von Azure-Blobs mithilfe der Azure CLI