Teilen über


Sichern aller Azure-Blobs in einem Speicherkonto mithilfe von Azure PowerShell

Dieser Artikel bietet Informationen zum Sichern aller Azure-Blobs innerhalb eines Speicherkontos mithilfe von Azure PowerShell. Sie können jetzt Betriebs - und Tresorsicherungen ausführen, um Block-Blobs in Ihren Speicherkonten mithilfe von Azure Backup zu schützen. Sie können die Sicherung auch mithilfe der REST-API konfigurieren.

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

Wichtig

Unterstützung für Azure-Blobs ist ab Version Az 5.9.0 verfügbar.

Vor der Installation

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 enthält, die von Azure Backup unterstützt werden, z. B. Azure Database for PostgreSQL Server und Azure-Blobs. 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 wird der Sicherungstresor TestBkpVault in der Region westus unter der Ressourcengruppe testBkpVaultRG erstellt. Verwenden Sie den Befehl New-AzDataProtectionBackupVault, um einen Sicherungstresor zu erstellen. Weitere Informationen finden Sie unter Erstellen eines Sicherungstresors.

$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

Nach der Erstellung des Tresors erstellen wir eine Sicherungsrichtlinie zum Schutz der Azure-Blobs.

Wichtig

Obwohl die Sicherungsspeicherredundanz des Tresors angezeigt wird, gilt die Redundanz nicht für die operative Sicherung von Blobs, weil die Sicherung lokal 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.

Erstellen einer Sicherungsrichtlinie

Auswählen einer Sicherungsebene:

Wichtig

Lesen Sie diesen Abschnitt, bevor Sie mit der Erstellung der Richtlinie und dem Konfigurieren von Sicherungen für Azure-Blobs fortfahren.

Um die einzelnen Komponenten einer Sicherungsrichtlinie für eine Azure-Blobsicherung zu verstehen, rufen Sie die Richtlinienvorlage mit dem Befehl Get-AzDataProtectionPolicyTemplate ab. Dieser Befehl gibt eine Standardrichtlinienvorlage für einen angegebenen DataSource-Typ zurück. Verwenden Sie diese Richtlinienvorlage, um eine neue Richtlinie zu erstellen.

$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

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.

$policyDefn.PolicyRule.Lifecycle | fl


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

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 das Richtlinienobjekt alle gewünschten Werte aufweist, erstellen Sie mit New-AzDataProtectionBackupPolicy eine neue Richtlinie aus dem Richtlinienobjekt.

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"

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 PSTestSA unter der Ressourcengruppe blobrg in einem anderen Abonnement.

    $SAId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/PSTestSA"
    
  • 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

Auswählen einer Sicherungsebene:

Nachdem alle relevanten Berechtigungen festgelegt wurden, wird die Konfiguration der Sicherung in zwei Schritten ausgeführt. Zuerst bereiten wir die relevante Anforderung mithilfe des entsprechenden Tresors, der Richtlinie und des Speicherkontos mit dem Befehl Initialize-AzDataProtectionBackupInstance vor. Anschließend senden wir die Anforderung zum Schutz der Blobs innerhalb des Speicherkontos mit dem Befehl 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

Wichtig

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

Aktualisieren einer Sicherungsinstanz

Nachdem Sie die Sicherung konfiguriert haben, können Sie die einer Sicherungsinstanz zugeordnete Richtlinie ändern. Bei Tresorsicherungen können Sie sogar die für die Sicherung ausgewählten Container ändern.

Führen Sie zum Aktualisieren der Sicherungsinstanz die folgenden Cmdlets aus:

  1. Überprüfen Sie, ob die Sicherungsinstanz zum Konfigurieren der Sicherung mit dem Befehl Test-AzDataProtectionBackupInstanceReadiness bereit ist. Der Befehl schlägt fehl, wenn die Sicherungsinstanz nicht bereit ist.

    Sie können diesen Befehl auch verwenden, um zu überprüfen, ob der Sicherungstresor über alle erforderlichen Berechtigungen zum Konfigurieren der Sicherung verfügt.

  2. Ändern Sie die Richtlinie, die zum Sichern der Azure Blobs verwendet wird, indem Sie die Update-AzDataProtectionBackupInstance verwenden. Geben Sie das relevante Sicherungselement und die neue Sicherungsrichtlinie an.

  3. Aktualisieren Sie die Richtlinie oder die neuen Container auf vorhandene Sicherungselemente.

    1. Erstellen Sie den Speicherkontokontext mithilfe des Cmdlets New-AzStorageContext. Stellen Sie den Parameter -UseConnectedAccount ein, damit Datenvorgänge mithilfe Ihrer Microsoft Entra-Anmeldeinformationen durchgeführt werden. Erfahren Sie mehr über die Speicherkontobefehle.

      Create a context object using Azure AD credentials
      $ctx = New-AzStorageContext -StorageAccountName xxx -UseConnectedAccount 
      
      
    2. Rufen Sie die Speichercontainer mithilfe des Cmdlets Get-AzStorageContainer ab. Um einen einzelnen Container abzurufen, stellen Sie den Parameter -Name bereit. Wenn Sie eine Liste von Containern zurückgeben möchten, die mit einer bestimmten Zeichenzeichenfolge beginnen, geben Sie einen Wert für den Parameter -Prefix an.

    Im folgenden Beispiel werden sowohl ein einzelner Container als auch eine Liste von Containerressourcen abgerufen:

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

    Das Ergebnis enthält den URI des Blobendpunkts und listet die nach Name und Präfix abgerufenen Container auf:

    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. Rufen Sie die Sicherungsinstanz ab, die aktualisiert werden muss.

      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. Rufen Sie die Sicherungsrichtlinie mit dem Namen der Tresorrichtlinie ab, die Sie in der Sicherungsinstanz aktualisieren möchten. Sie können auch die neue Richtlinie abrufen, die in der Sicherungsinstanz aktualisiert werden muss.

      $updatePolicy = Get-AzDataProtectionBackupPolicy -SubscriptionId "Demosub" -VaultName BCDR-BV-EastUS -ResourceGroupName Demo-BCDR-RG -name continer-1
      
    3. Aktualisieren Sie die Sicherungsinstanz mit einer neuen Liste von Containern (die vorhandenen gesicherten Container und neuen Container).

      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
      

Nächste Schritte

Wiederherstellen von Blobs mithilfe von Azure PowerShell