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:
Ü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.
Ä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.
Aktualisieren Sie die Richtlinie oder die neuen Container auf vorhandene Sicherungselemente.
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
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
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
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
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