Sauvegarder des blobs Azure dans un compte de stockage à l’aide d’Azure CLI

Cet article explique comment sauvegarder des blobs Azure à l’aide d’Azure CLI. Vous pouvez désormais effectuer des sauvegardes opérationnelles et archivées pour protéger les objets blob de blocs dans vos comptes de stockage à l’aide de Sauvegarde Azure.

Pour plus d’informations sur la disponibilité par région, les scénarios pris en charge et les limites relatifs aux blobs Azure, consultez la matrice de prise en charge.

Avant de commencer

Consultez les prérequis et la matrice de prise en charge avant de commencer.

Créer un coffre de sauvegarde

Un coffre Sauvegarde est une entité de stockage dans Azure qui stocke les données de sauvegarde de diverses charges de travail plus récentes prises en charge par Sauvegarde Azure, notamment des serveurs Azure Database pour PostgreSQL et des blobs dans un compte de stockage et des disques Azure. Les coffres de sauvegarde facilitent l’organisation de vos données de sauvegarde tout en réduisant le temps nécessaire à leur gestion. Les coffres Sauvegarde sont basés sur le modèle Azure Resource Manager, qui fournit des fonctionnalités améliorées pour sécuriser les données de sauvegarde.

Avant de créer un coffre Sauvegarde, choisissez la redondance de stockage des données dans le coffre. Ensuite, procédez à la création du coffre de Sauvegarde avec cette redondance de stockage et l’emplacement. Dans cet article, nous allons créer un coffre Sauvegarde TestBkpVault dans la région westus sous le groupe de ressources testBkpVaultRG. Utilisez la commande az dataprotection vault create pour créer un coffre Sauvegarde. Pour plus d’informations, consultez Création d’un coffre Sauvegarde.

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

Important

Même si vous voyez la redondance du stockage Sauvegarde du coffre, celle-ci ne s’applique pas à la sauvegarde opérationnelle des blobs. Cela est dû au fait que la sauvegarde est locale par nature et qu’aucune donnée n’est stockée dans le coffre Sauvegarde. Le coffre Sauvegarde est ici l’entité de gestion destinée à vous aider à gérer la protection des objets blob de blocs dans vos comptes de stockage.

Après avoir créé un coffre, nous allons créer une stratégie Sauvegarde pour protéger les blobs Azure dans un compte de stockage.

Créer une stratégie de sauvegarde

Vous pouvez créer une stratégie de sauvegarde pour la sauvegarde opérationnelle et la sauvegarde archivéepour les objets blob Azure à l’aide d’Azure CLI.

Choisir un niveau de sauvegarde:

Avant de créer la stratégie et de configurer les sauvegardes d’objets blob Azure, prenez connaissance des prérequis.

Pour comprendre les composants internes d’une stratégie Sauvegarde pour la sauvegarde des blobs Azure, récupérez le modèle de stratégie à l’aide de la commande az dataprotection backup-policy get-default-policy-template. Cette commande retourne un modèle de stratégie par défaut pour un type de source de données donné. Utilisez ce modèle de stratégie pour créer une nouvelle stratégie.

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"
    }
  ]
}

Le modèle de stratégie se compose d’un cycle de vie uniquement (qui décide quand supprimer/copier/déplacer la sauvegarde). Étant donné que la sauvegarde opérationnelle d’objets blob est continue par nature, vous n’avez pas besoin d’une planification pour effectuer des sauvegardes.

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

Notes

Restaurer sur de longues durées peut conduire à des opérations de restauration plus longues. De plus, le temps nécessaire à la restauration d’un jeu de données dépend du nombre d’opérations d’écriture et de suppression effectuées au cours de la période de restauration. Par exemple, la restauration à un point situé 30 jours auparavant d’un compte avec 1 million d’objets, 3 000 objets ajoutés par jour et 1 000 objets supprimés par jour nécessite environ deux heures.

Une période de rétention et une restauration plus de 90 jours dans le passé ne sont pas recommandées pour un compte avec ce taux de change.

Une fois que la stratégie JSON a toutes les valeurs souhaitées, passez à la création d’une nouvelle stratégie à partir de l’objet de stratégie en utilisant la commande az dataprotection backup-policy create.

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

Configurer une sauvegarde

Une fois le coffre et la stratégie créés, il y a deux points critiques que vous devez prendre en compte pour protéger tous les objets blob Azure dans un compte de stockage.

  • Entités clés
  • Autorisations

Entités clés

  • Compte de stockage contenant les objets blob à protéger : récupérez l’ID Azure Resource Manager du compte de stockage qui contient les objets blob à protéger. Il s’agit de l’identificateur du compte de stockage. Nous allons utiliser un exemple de compte de stockage nommé CLITestSA, sous le groupe de ressources blobrg, dans un autre abonnement présent dans la région Asie Sud-Est.

    "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA"
    
  • Coffre de sauvegarde : le coffre de sauvegarde nécessite des autorisations sur le compte de stockage pour permettre les sauvegardes sur les objets blob présents dans le compte de stockage. L’identité managée affectée par le système du coffre est utilisée pour affecter de telles autorisations.

Attribuer des autorisations

Vous devez attribuer quelques autorisations via Azure RBAC au coffre créé (représenté par le fichier MSI de coffre) et le compte de stockage approprié. Elles peuvent être effectuées via le Portail ou PowerShell. En savoir plus sur toutes les autorisations associées.

Préparer la demande de configuration de la sauvegarde d’objets blob

Une fois toutes les autorisations appropriées définies, configurez la sauvegarde en exécutant les commandes suivantes :

  1. Préparez la requête adéquate en utilisant le coffre, la stratégie et le compte de stockage appropriés à l’aide de la commande az dataprotection backup-instance initialize.

    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. Soumettez la demande à l’aide de la commande az dataprotection backup-instance create.

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

Important

Une fois qu’un compte de stockage est configuré pour la sauvegarde d’objets blob, certaines fonctionnalités comme le flux de modification et le verrou de suppression sont affectées. Plus d’informations

Étapes suivantes

Restaurer des blobs Azure à l’aide d’Azure CLI