Een back-up maken van alle Azure-blobs in een opslagaccount met behulp van Azure PowerShell

In dit artikel wordt beschreven hoe u een back-up maakt van alle Azure-blobs in een opslagaccount met behulp van Azure PowerShell. U kunt nu operationele en gekluisde back-ups uitvoeren om blok-blobs in uw opslagaccounts te beveiligen met behulp van Azure Backup. U kunt ook back-ups configureren met rest API

Zie de ondersteuningsmatrix voor informatie over de beschikbaarheid van azure-blobregio's, ondersteunde scenario's en beperkingen.

Belangrijk

Ondersteuning voor Azure-blobs is beschikbaar via versie Az 5.9.0. Om automatische bescherming te configureren voor huidige en toekomstige containers, installeer Az.DataProtection versie 3.0.1 of later.

Voordat u begint

Zie de vereisten en ondersteuningsmatrix voordat u aan de slag gaat.

Een Backup-kluis maken

Een Backup-kluis is een opslagentiteit in Azure die back-upgegevens bevat voor verschillende nieuwere workloads die door Azure Backup worden ondersteund, zoals Azure Database for PostgreSQL-servers en Azure-blobs. Met back-upkluizen kunt u uw back-upgegevens eenvoudig ordenen, terwijl de beheeroverhead wordt geminimaliseerd. Back-upkluizen zijn gebaseerd op het Azure Resource Manager-model van Azure, dat verbeterde mogelijkheden biedt om back-upgegevens te beveiligen.

Voordat u een back-upkluis maakt, kiest u de opslagredundantie van de gegevens in de kluis. Ga vervolgens verder met het maken van de back-upkluis met die opslagredundantie en de locatie. In dit artikel maken we een back-upkluis TestBkpVault in de regio westus, onder de resourcegroep testBkpVaultRG. Gebruik de opdracht New-AzDataProtectionBackupVault om een back-upkluis te maken. Meer informatie over het maken van een Backup-kluis.

$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

Nadat u de kluis hebt gemaakt, gaan we een back-upbeleid aanmaken om Azure-blobs te beveiligen.

Belangrijk

Hoewel u de redundantie van de back-upopslag van de kluis ziet, is de redundantie niet van toepassing op de operationele back-up van blobs omdat de back-up lokaal van aard is en er geen gegevens worden opgeslagen in de Backup-kluis. Hier is de backupkluis het beheeronderdeel waarmee u de bescherming van blok-blobs in uw opslagaccounts kunt beheren.

Een back-upbeleid maken

Kies een back-uplaag:

Belangrijk

Lees deze sectie voordat u doorgaat met het maken van het beleid en het configureren van back-ups voor Azure-blobs.

Haal de beleidssjabloon op met behulp van de opdracht Get-AzDataProtectionPolicyTemplate om inzicht te krijgen in de binnenste onderdelen van een back-upbeleid voor Azure Blob-back-up. Met deze opdracht wordt een standaardbeleidssjabloon geretourneerd voor een bepaald gegevensbrontype. Gebruik deze beleidssjabloon om een nieuw beleid te maken.

$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

De beleidssjabloon bestaat alleen uit een levenscyclus (waarmee wordt bepaald wanneer u de back-up wilt verwijderen/kopiëren/verplaatsen). Omdat operationele back-ups voor blobs continu van aard zijn, hebt u geen planning nodig om back-ups uit te voeren.

$policyDefn.PolicyRule.Lifecycle | fl


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

Notitie

Het herstellen gedurende lange tijd kan ertoe leiden dat herstelbewerkingen langer duren. De tijd die nodig is om een set gegevens te herstellen, is ook gebaseerd op het aantal schrijf- en verwijderbewerkingen die tijdens de herstelperiode zijn uitgevoerd. Bijvoorbeeld: voor een account met één miljoen objecten, waaraan per dag 3.000 objecten worden toegevoegd en waaruit per dag 1.000 objecten worden verwijderd, duurt het ongeveer twee uur om te herstellen naar een tijdstip van 30 dagen geleden.

Voor een account met deze wijzigingssnelheid raden we geen bewaartermijn of herstel tot meer dan 90 dagen terug aan.

Zodra het beleidsobject alle gewenste waarden heeft, gaat u verder met het maken van een nieuw beleid van het beleidsobject met behulp van de opdracht 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"

Back-up instellen

Zodra de kluis en het beleid zijn aangemaakt, zijn er twee belangrijke aandachtspunten waarmee u rekening moet houden om alle Azure Blobs binnen een opslagaccount te beveiligen.

  • Belangrijke entiteiten
  • Machtigingen

Belangrijke entiteiten

  • Opslagaccount met de blobs die moeten worden beveiligd: Haal de Azure Resource Manager-id op van het opslagaccount dat de blobs bevat die moeten worden beveiligd. Dit fungeert als de id van het opslagaccount. We gebruiken een voorbeeld van een opslagaccount met de naam PSTestSA in de resourcegroep blobrg binnen een ander abonnement.

    $SAId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/PSTestSA"
    
  • Back-upkluis: De Back-upkluis vereist machtigingen voor het opslagaccount om back-ups te kunnen maken van blobs die aanwezig zijn in het opslagaccount. De door het systeem toegewezen beheerde identiteit van de kluis wordt gebruikt voor het toewijzen van dergelijke machtigingen.

Machtigingen toewijzen

U moet via Azure RBAC enkele machtigingen toewijzen aan de aangemaakte kluis (vertegenwoordigd door de MSI van de kluis) en het betreffende opslagaccount. Deze kunnen worden uitgevoerd via de portal of PowerShell. Meer informatie over alle gerelateerde machtigingen.

De aanvraag voorbereiden om blobback-up te configureren

Kies een back-uplaag:

Zodra alle relevante machtigingen zijn ingesteld, wordt de configuratie van de back-up uitgevoerd in twee stappen. Eerst bereiden we de relevante aanvraag voor met behulp van de relevante kluis, het beleid, het opslagaccount met behulp van de opdracht Initialize-AzDataProtectionBackupInstance . Vervolgens verzenden we de aanvraag om de blobs in het opslagaccount te beveiligen met behulp van de opdracht 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

Belangrijk

Zodra een opslagaccount is geconfigureerd voor back-ups van blobs, worden enkele mogelijkheden beïnvloed, zoals wijzigingsfeed en verwijderingsvergrendeling. Meer informatie.

Een back-upinstantie bijwerken

Nadat je de back-up hebt geconfigureerd, kun je het bijbehorende beleid aanpassen met een back-upinstantie. Voor vaulted back-ups kun je ook de containers wijzigen die voor back-up zijn geselecteerd of containers automatisch beschermen tot aan de ondersteunde limiet. Het kiezen van automatische bescherming voor alle huidige en toekomstige containers is permanent, en je kunt niet terugschakelen naar de opties voor eerdere containers.

Voer de volgende cmdlets uit om het backupexemplaar bij te werken:

  1. Controleer of het back-upexemplaar gereed is voor het configureren van een back-up met behulp van de opdracht Test-AzDataProtectionBackupInstanceReadiness. De opdracht mislukt als het back-upexemplaar niet gereed is.

    U kunt deze opdracht ook gebruiken om te controleren of de back-upkluis alle benodigde machtigingen heeft om back-up te configureren.

  2. Wijzig het beleid dat wordt gebruikt voor het maken van back-ups van azure-blobs met behulp van Update-AzDataProtectionBackupInstance. Geef het relevante back-upitem en het nieuwe back-upbeleid op.

  3. Pas het back-upbeleid of de nieuwe containers toe op bestaande back-upitems. Als auto-bescherming is ingeschakeld, worden nieuwe containers automatisch beschermd totdat het aantal beschermde containers 1000 bereikt.

    1. Maak de context van het opslagaccount met behulp van de New-AzStorageContext cmdlet. Geef de -UseConnectedAccount parameter op zodat gegevensbewerkingen worden uitgevoerd met behulp van uw Microsoft Entra-referenties. Meer informatie over de opdrachten voor het opslagaccount.

      Create a context object using Azure AD credentials
      $ctx = New-AzStorageContext -StorageAccountName xxx -UseConnectedAccount 
      
      
    2. Haal de opslagcontainers op met behulp van de Get-AzStorageContainer cmdlet. Als u één container wilt ophalen, geeft u de -Name parameter op. Als u een lijst met containers wilt retourneren die begint met een bepaalde tekenreeks, geeft u een waarde op voor de -Prefix parameter.

    In het volgende voorbeeld worden zowel een afzonderlijke container als een lijst met containerbronnen opgehaald:

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

    Het resultaat bevat de URI van het blob-eindpunt en vermeldt de containers die zijn opgehaald op naam en voorvoegsel:

    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. Haal de back-upinstance op die moet worden bijgewerkt.

      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. Haal het back-upbeleid op met de naam vaulted-policy dat u in de back-upinstantie wilt bijwerken. U kunt ook het nieuwe beleid ophalen dat voor het Backup-exemplaar moet worden bijgewerkt.

      $updatePolicy = Get-AzDataProtectionBackupPolicy -SubscriptionId "Demosub" -VaultName BCDR-BV-EastUS -ResourceGroupName Demo-BCDR-RG -name continer-1
      
    3. Werk de back-upinstantie bij met de nieuwe lijst containers wanneer je expliciet containers selecteert voor back-up.

      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
      

Volgende stappen

Azure-blobs herstellen met behulp van Azure PowerShell.

Herstel Azure-blobs met Azure Backup met behulp van Azure portal, Azure CLI, REST API.