快速入门:使用 Azure 备份通过 Azure CLI 为 Azure Blob 配置保管库备份

本快速入门介绍如何使用 Azure CLI 为 Azure Blob 配置保管库备份。

Azure 备份现在允许配置操作备份来保护存储帐户中的块 Blob。

Blob 的保管备份是一种受管理的异地备份解决方案,它将备份数据存储在常规 v2 存储帐户中,使你能够保护备份数据免受勒索软件攻击,或避免因恶意或流氓管理员而造成源数据丢失。

使用保管备份,可以:

  • 定义备份计划以创建恢复点和保留设置,以确定备份在保管库中的保留时长。
  • 使用单个备份策略配置和管理操作备份。
  • 在备份保管库中复制和存储备份数据,从而提供最多可保留 10 年的异地数据副本。

先决条件

在配置 Blob 保管库备份之前,请确保:

  • 查看支持矩阵,了解 Azure Blob 区域可用性、支持的方案和限制。
  • 你有一个可用于配置 Azure Blob 备份的备份保管库。 如果尚未创建备份保管库,请创建一个

创建备份策略

要为 Blob 保管备份创建备份策略,请运行以下命令:

  1. 要了解 Azure Blob 备份的备份策略的内部组件,请使用 az dataprotection backup-policy get-default-policy-template 命令检索策略模板。

    此命令返回给定数据源类型的默认策略模板。 使用此策略模板创建新策略。

  2. 保存具有所有必需值的策略 JSON 后,请使用 az dataprotection backup-policy create 命令从策略对象创建新策略。

    Az dataprotection backup-policy create -g testBkpVaultRG -vault-name TestBkpVault -n BlobBackup-Policy -policy policy.json
    

    以下 JSON 用于配置一项策略,其中操作备份的保留期为 30 天,保管备份的默认保留期为 30 天。 保管库备份计划于每天 7:30 UTC 进行

    {
      "datasourceTypes": [
        "Microsoft.Storage/storageAccounts/blobServices"
      ],
      "name": "BlobPolicy1",
      "objectType": "BackupPolicy",
      "policyRules": [
        {
          "isDefault": true,
          "lifecycles": [
            {
              "deleteAfter": {
                "duration": "P30D",
                "objectType": "AbsoluteDeleteOption"
              },
              "sourceDataStore": {
                "dataStoreType": "OperationalStore",
                "objectType": "DataStoreInfoBase"
              },
              "targetDataStoreCopySettings": []
            }
          ],
          "name": "Default",
          "objectType": "AzureRetentionRule"
        },
        {
          "isDefault": true,
          "lifecycles": [
            {
              "deleteAfter": {
                "duration": "P30D",
                "objectType": "AbsoluteDeleteOption"
              },
              "sourceDataStore": {
                "dataStoreType": "VaultStore",
                "objectType": "DataStoreInfoBase"
              },
              "targetDataStoreCopySettings": []
            }
          ],
          "name": "Default",
          "objectType": "AzureRetentionRule"
        },
        {
          "backupParameters": {
            "backupType": "Discrete",
            "objectType": "AzureBackupParams"
          },
          "dataStore": {
            "dataStoreType": "VaultStore",
            "objectType": "DataStoreInfoBase"
          },
          "name": "BackupDaily",
          "objectType": "AzureBackupRule",
          "trigger": {
            "objectType": "ScheduleBasedTriggerContext",
            "schedule": {
              "repeatingTimeIntervals": [
                "R/2023-06-28T07:30:00+00:00/P1D"
              ],
              "timeZone": "UTC"
            },
            "taggingCriteria": [
              {
                "isDefault": true,
                "tagInfo": {
                  "id": "Default_",
                  "tagName": "Default"
                },
                "taggingPriority": 93
              }
            ]
          }
        }
      ]
    }
    
    

配置备份

创建保管库和策略后,用户需要考虑两个关键点来保护存储帐户中的所有 Azure Blob。

  • 关键实体
  • 权限

关键实体

  • 包含要保护的 blob 的存储帐户:提取含有要保护的 Blob 的存储帐户的 Azure 资源管理器 ID。 用作存储帐户的标识符。 我们将使用位于“中国北部”区域的不同订阅中资源组“blobrg”下名为“CLITestSA”的存储帐户的示例。

    "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA"
    
  • 备份保管库:备份保管库需要存储帐户的权限才能对存储帐户中的 Blob 启用备份。 保管库的系统分配托管标识用于分配此类权限。

分配权限

需要通过 Azure RBAC 向创建的保管库(以保管库 MSI 表示)和相关存储帐户分配一些权限。 可以通过门户或 PowerShell 执行上述操作。 详细了解所有相关权限

准备请求配置 blob 备份

设置所有相关权限后,通过运行以下命令配置 Blob 备份:

  1. 使用 az dataprotection backup-instance initialize 命令,通过相关保管库、策略、存储帐户准备相关请求。

    az dataprotection backup-instance initialize --datasource-type AzureBlob  -l chinanorth2 --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. 使用 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-aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
        "name": "CLITestSA-CLITestSA-aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
        "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": "chinanorth2",
            "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"
      }
    

重要

为 Blob 备份配置存储帐户后,一些功能会受到影响,例如更改源和删除锁。 了解详细信息

下一步

使用 Azure CLI 还原 Azure Blob