Fazer backup de todos os blobs do Azure em uma conta de armazenamento usando o Azure PowerShell

Este artigo descreve como fazer backup de todos os blobs do Azure em uma conta de armazenamento usando o Azure PowerShell. Agora você pode executar backups operacionais e em cofre para proteger blobs de bloco em suas contas de armazenamento usando o Backup do Azure. Você também pode configurar o backup usando a API REST

Para obter informações sobre a disponibilidade da região de blob do Azure, cenários suportados e limitações, consulte a matriz de suporte.

Importante

O suporte para blobs do Azure está disponível a partir da versão Az 5.9.0. Para configurar a autoproteção para contentores presentes e futuros, instale o Az.DataProtection versão 3.0.1 ou posterior.

Antes de começar

Consulte os pré-requisitos e a matriz de suporte antes de começar.

Criar um cofre de backup

Um cofre de Backup é uma entidade de armazenamento no Azure que contém dados de backup para várias cargas de trabalho mais recentes suportadas pelo Backup do Azure, como o Banco de Dados do Azure para servidores PostgreSQL e blobs do Azure. Os cofres de backup facilitam a organização dos dados de backup e, ao mesmo tempo, minimizam a sobrecarga de gerenciamento. Os cofres de backup são baseados no modelo do Azure Resource Manager do Azure, que fornece recursos aprimorados para ajudar a proteger os dados de backup.

Antes de criar um cofre de backup, escolha a redundância de armazenamento dos dados dentro do cofre. Em seguida, prossiga para criar o cofre de backup com essa redundância de armazenamento e o local. Neste artigo, criaremos um cofre de backup TestBkpVault na região westus, sob o grupo de recursos testBkpVaultRG. Use o comando New-AzDataProtectionBackupVault para criar um cofre de backup. Saiba mais sobre como criar um cofre de backup.

$storageSetting = New-AzDataProtectionBackupVaultStorageSettingObject -Type LocallyRedundant/GeoRedundant -DataStoreType VaultStore

New-AzDataProtectionBackupVault -ResourceGroupName testBkpVaultRG -VaultName TestBkpVault -Location westus -StorageSetting $storageSetting
$TestBkpVault = Get-AzDataProtectionBackupVault -VaultName TestBkpVault
$TestBKPVault | fl
ETag                :
Id                  : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault
Identity            : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.DppIdentityDetails
IdentityPrincipalId :
IdentityTenantId    :
IdentityType        :
Location            : westus
Name                : TestBkpVault
ProvisioningState   : Succeeded
StorageSetting      : {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.StorageSetting}
SystemData          : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.SystemData
Tag                 : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.DppTrackedResourceTags
Type                : Microsoft.DataProtection/backupVaults

Após a criação do cofre, vamos criar uma política de backup para proteger os blobs do Azure.

Importante

Embora você veja a redundância de armazenamento de backup do cofre, a redundância não se aplica ao backup operacional de blobs, pois o backup é local por natureza e nenhum dado é armazenado no cofre de backup. Aqui, o cofre de cópia de segurança é a entidade de gestão que o ajuda a gerir a proteção de blobs em blocos nas suas contas de armazenamento.

Criar uma política de backup

Escolha uma camada de backup:

Importante

Leia esta seção antes de continuar a criar a política e configurar backups para blobs do Azure.

Para entender os componentes internos de uma política de backup para o backup de blob do Azure, recupere o modelo de política usando o comando Get-AzDataProtectionPolicyTemplate . Este comando retorna um modelo de política padrão para um determinado tipo de fonte de dados. Use este modelo de política para criar uma nova política.

$policyDefn = Get-AzDataProtectionPolicyTemplate -DatasourceType AzureBlob
$policyDefn | fl


DatasourceType : {Microsoft.Storage/storageAccounts/blobServices}
ObjectType     : BackupPolicy
PolicyRule     : {Default}

$policyDefn.PolicyRule | fl

IsDefault  : True
Lifecycle  : {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api202101.SourceLifeCycle}
Name       : Default
ObjectType : AzureRetentionRule

O modelo de política consiste apenas em um ciclo de vida (que decide quando excluir/copiar/mover o backup). Como o backup operacional para blobs é contínuo por natureza, você não precisa de um agendamento para executar backups.

$policyDefn.PolicyRule.Lifecycle | fl


DeleteAfterDuration        : P30D
DeleteAfterObjectType      : AbsoluteDeleteOption
SourceDataStoreObjectType  : DataStoreInfoBase
SourceDataStoreType        : OperationalStore
TargetDataStoreCopySetting :

Nota

A restauração por longos períodos pode levar a que as operações de restauração demorem mais tempo para serem concluídas. Além disso, o tempo necessário para restaurar um conjunto de dados é baseado no número de operações de gravação e exclusão feitas durante o período de restauração. Por exemplo, uma conta com um milhão de objetos com 3.000 objetos adicionados por dia e 1.000 objetos excluídos por dia exigirá aproximadamente duas horas para restaurar para um ponto de 30 dias no passado.

Não recomendamos um período de retenção e restauração superior a 90 dias no passado para uma conta com esta taxa de alteração.

Quando o objeto de política tiver todos os valores desejados, prossiga para criar uma nova política a partir do objeto de política usando o comando New-AzDataProtectionBackupPolicy .

New-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name blobBkpPolicy -Policy $policyDefn

Name                   Type
----                   ----
blobBkpPolicy       Microsoft.DataProtection/backupVaults/backupPolicies

$blobBkpPol = Get-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "blobBkpPolicy"

Configurar a cópia de segurança

Depois de o cofre e a política serem criados, há dois pontos críticos a considerar para proteger todos os blobs do Azure contidos numa conta de armazenamento.

  • Entidades principais
  • Permissões

Entidades principais

  • Conta de armazenamento que contém os blobs a serem protegidos: busque a ID do Azure Resource Manager da conta de armazenamento que contém os blobs a serem protegidos. Isso servirá como o identificador da conta de armazenamento. Usaremos um exemplo de uma conta de armazenamento chamada PSTestSA no grupo de recursos blobrg em uma assinatura diferente.

    $SAId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/PSTestSA"
    
  • Cofre de backup: o cofre de backup requer permissões na conta de armazenamento para habilitar backups em blobs presentes na conta de armazenamento. A identidade gerida atribuída pelo sistema ao cofre é utilizada para atribuir essas permissões.

Atribuir permissões

Você precisa atribuir algumas permissões por meio do RBAC do Azure ao cofre criado (representado pelo vault MSI) e à conta de armazenamento relevante. Eles podem ser executados via Portal ou PowerShell. Saiba mais sobre todas as permissões relacionadas.

Preparar a solicitação para configurar o backup de blob

Escolha uma camada de backup:

Uma vez que todas as permissões relevantes são definidas, a configuração do backup é realizada em 2 etapas. Primeiro, preparamos a solicitação relevante usando o cofre relevante, a política relevante e a conta de armazenamento, utilizando o comando Initialize-AzDataProtectionBackupInstance. Em seguida, enviamos a solicitação para proteger os blobs dentro da conta de armazenamento usando o comando New-AzDataProtectionBackupInstance .

$instance = Initialize-AzDataProtectionBackupInstance -DatasourceType AzureBlob -DatasourceLocation $TestBkpvault.Location -PolicyId $blobBkpPol[0].Id -DatasourceId $SAId 
New-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstance $instance

Name                                                       Type                                                  BackupInstanceName
----                                                       ----                                                  ------------------
blobrg-PSTestSA-3df6ac08-9496-4839-8fb5-8b78e594f166 Microsoft.DataProtection/backupVaults/backupInstances blobrg-PSTestSA-3df6ac08-9496-4839-8fb5-8b78e594f166

Importante

Depois que uma conta de armazenamento é configurada para backup de blobs, alguns recursos são afetados, como alterar feed e excluir bloqueio. Saiba mais.

Atualizar uma instância de backup

Depois de configurares o backup, podes alterar a política associada com uma instância de backup. Para cópias de segurança em cofres, também pode alterar os contentores selecionados para cópia de segurança ou optar por proteger automaticamente os contentores até ao limite suportado. Selecionar auto-proteção para todos os contentores presentes e futuros é permanente, e não pode voltar às opções anteriores de seleção de contentores.

Para atualizar a instância de backup, execute os seguintes cmdlets:

  1. Valide se a instância de backup está pronta para configurar o backup usando o comando Test-AzDataProtectionBackupInstanceReadiness . O comando falhará se a instância de backup não estiver pronta.

    Você também pode usar esse comando para verificar se o cofre de backup tem todas as permissões necessárias para configurar o backup.

  2. Altere a política usada para fazer backup dos Blobs do Azure usando Update-AzDataProtectionBackupInstance. Especifique o item de backup relevante e a nova política de backup.

  3. Atualize a política ou os novos contêineres para itens de backup existentes. Se a autoproteção estiver ativada, os novos contentores são automaticamente protegidos até que o número de contentores protegidos atinja 1000.

    1. Crie o contexto da conta de armazenamento usando o New-AzStorageContext cmdlet. Forneça o parâmetro para que as -UseConnectedAccount operações de dados sejam executadas usando suas credenciais do Microsoft Entra. Saiba mais sobre os comandos da conta de armazenamento.

      Create a context object using Azure AD credentials
      $ctx = New-AzStorageContext -StorageAccountName xxx -UseConnectedAccount 
      
      
    2. Recupere os contêineres de armazenamento usando o Get-AzStorageContainer cmdlet. Para recuperar um único contêiner, forneça o -Name parâmetro. Para retornar uma lista de contêineres que começa com uma determinada cadeia de caracteres, especifique um valor para o -Prefix parâmetro.

    O exemplo a seguir recupera um contêiner individual e uma lista de recursos de contêiner:

    
    
    # Create variables
    $containerName  = "individual-container"
    $prefixName     = "loop-"
    
    # Approach 1: Retrieve an individual container
    Get-AzStorageContainer -Name $containerName -Context $ctx
    Write-Host
    
    # Approach 2: Retrieve a list of containers
    $targetContainers = Get-AzStorageContainer -Context $ctx | Where-Object { $_.Name -match "cont" } 
    

    O resultado fornece o URI do ponto de extremidade de blob e lista os contêineres recuperados por nome e prefixo:

    Storage Account Name: demostorageaccount
    
    Name                 PublicAccess         LastModified                   IsDeleted  VersionId        
    ----                 ------------         ------------                   ---------  ---------        
    individual-container                      11/2/2021 5:52:08 PM +00:00                                
    
    loop-container1                           11/2/2021 12:22:00 AM +00:00                               
    loop-container2                           11/2/2021 12:22:00 AM +00:00                               
    
    loop-container1                           11/2/2021 12:22:00 AM +00:00                               
    loop-container2                           11/2/2021 12:22:00 AM +00:00
    loop-container3                           11/2/2021 12:22:00 AM +00:00   True       01D7E7129FDBD7D4
    loop-container4                           11/2/2021 12:22:00 AM +00:00   True       01D7E8A5EF01C787 
    
    1. Buscar a instância de backup que precisa ser atualizada.

      C:\Users\testuser> $instance = Search-AzDataProtectionBackupInstanceInAzGraph -Subscription "Demosub" -ResourceGroup Demo-BCDR-RG -Vault BCDR-BV-EastUS -DatasourceType AzureBlob
      PS C:\Users\testuser> $instance
                     Output
      Name                                                                     BackupInstanceName
      ----                                                                     ------------------
      blobsa-blobsa-c7325e08-980d-43b2-863f-68feee4fd03c               blobsa-blobsa-c7325e08-980d-43b2-863f-68feee4fd03c
      blobsavaulted-blobsavaulted-40c36519-f422-45aa-bbeb-3f0eedb440c7 blobsavaulted-blobsavaulted-40c36519-f422-45aa-bbeb-3f0eedb440c7
      testdpp-testdpp-ff4254dd-7a70-437b-9a10-8c0d2223d037                     testdpp-testdpp-ff4254dd-7a70-437b-9a10-8c0d2223d037
      
      
    2. Obtenha a política de cópia de segurança com o nome vaulted-policy que pretende atualizar na instância de Backup. Você também pode buscar a nova política que precisa ser atualizada na instância de backup.

      $updatePolicy = Get-AzDataProtectionBackupPolicy -SubscriptionId "Demosub" -VaultName BCDR-BV-EastUS -ResourceGroupName Demo-BCDR-RG -name continer-1
      
    3. Atualize a instância de cópia de segurança com a nova lista de contentores quando selecionar explicitamente os contentores para cópia de segurança.

      PS C:\Users\testuser> $updateBI = Update-AzDataProtectionBackupInstance -ResourceGroupName Daya-BCDR-RG -VaultName DPBCDR-BV-EastUS -BackupInstanceName $instance[0].Name -SubscriptionId "ef4ab5a7-c2c0-4304-af80-af49f48af3d1"  -PolicyId $updatePolicy.id -VaultedBackupContainer $targetContainers.name
      
      
      PS C:\Users\testuser> $updateBI.Property.PolicyInfo.PolicyId
      /subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/Daya-BCDR-RG/providers/Microsoft.DataProtection/backupVaults/DPBCDR-BV-EastUS/backupPolicies/continerdeltest-1
      PS C:\Users\testuser> $updateBI.Property.PolicyInfo.PolicyParameter.BackupDatasourceParametersList[0].ContainersList
      cont-01
      cont-02
      cont-03
      cont-04
      cont-05
      cont-06
      cont-07
      cont-08
      cont-09
      cont-10
      cont-11
      

Próximos passos

Restaure blobs do Azure usando o Azure PowerShell.

Restaurar blobs do Azure pelo Azure Backup usando o portal Azure, CLI do Azure, REST API.