次の方法で共有


PowerShell を使用して暗号化された Azure 仮想マシンをバックアップする

このスクリプトでは、暗号化された Azure VM の geo 冗長ストレージ (GRS) を使用して Recovery Services コンテナーを作成します。 既定の保護ポリシーが適用され、毎日のバックアップが 365 日間保持されます。 また、最初の復旧ポイントがトリガーされ、30 日間保存されます。

このサンプルには、Azure PowerShell Az 1.0 以降が必要です。 Get-Module -ListAvailable Az を実行して、インストールされているバージョンを確認します。 インストールする必要がある場合は、「 Azure PowerShell モジュールのインストール」を参照してください。

Connect-AzAccount を実行して Azure にサインインします。

Azure アカウントをお持ちでない場合は、開始する前に無料アカウントを作成してください。

サンプル スクリプト

Azure Az PowerShell モジュールを使用して Azure と対話することをお勧めします。 作業を始めるには、「Azure PowerShell をインストールする」を参照してください。 Az PowerShell モジュールに移行する方法については、「 Azure PowerShell を AzureRM から Az に移行する」を参照してください。

# Edit these global variables with your unique Recovery Services Vault name, resource group name and ___location
$rsVaultName = "myRsVault"
$rgName = "myResourceGroup"
$___location = "East US"

# Register the Recovery Services provider and create a resource group
Register-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
New-AzResourceGroup -Location $___location -Name $rgName

# Create a Recovery Services Vault and set its storage redundancy type
New-AzRecoveryServicesVault `
    -Name $rsVaultName `
    -ResourceGroupName $rgName `
    -Location $___location 
$vault1 = Get-AzRecoveryServicesVault –Name $rsVaultName
Set-AzRecoveryServicesProperties ` 
    -Vault $vault1 `
    -BackupStorageRedundancy GeoRedundant
    
# Set Recovery Services Vault context and create protection policy
Get-AzRecoveryServicesVault -Name $rsVaultName | Set-AzRecoveryServicesVaultContext 
$schPol = Get-AzRecoveryServicesSchedulePolicyObject -WorkloadType "AzureVM"
$retPol = Get-AzRecoveryServicesRetentionPolicyObject -WorkloadType "AzureVM"
New-AzRecoveryServicesProtectionPolicy `
    -Name "NewPolicy" `
    -WorkloadType "AzureVM" ` 
    -RetentionPolicy $retPol `
    -SchedulePolicy $schPol
    
# Provide permissions to Azure Backup to access key vault and enable backup on the VM
Set-AzKeyVaultAccessPolicy `
    -VaultName "KeyVaultName" `
    -ResourceGroupName "KyeVault-RGName" ` 
    -PermissionsToKeys backup,get,list `
    -PermissionsToSecrets backup,get,list ` 
    -ServicePrincipalName 262044b1-e2ce-469f-a196-69ab7ada62d3
$pol = Get-AzRecoveryServicesProtectionPolicy -Name "NewPolicy" `
Enable-AzRecoveryServicesProtection `
    -Policy $pol `
    -Name "myVM" `
    -ResourceGroupName "VM-RGName" 
    
# Modify protection policy
$retPol = Get-AzRecoveryServicesRetentionPolicyObject -WorkloadType "AzureVM"
$retPol.DailySchedule.DurationCountInDays = 365
$pol = Get-AzRecoveryServicesProtectionPolicy -Name "NewPolicy"
Set-AzRecoveryServicesProtectionPolicy `
    -Policy $pol `
    -RetentionPolicy $RetPol
    
# Trigger a backup and monitor backup job
$namedContainer = Get-AzRecoveryServicesContainer -ContainerType "AzureVM" -Status "Registered" -FriendlyName "myVM"
$item = Get-AzRecoveryServicesBackupItem -Container $namedContainer -WorkloadType "AzureVM"
$job = Backup-AzRecoveryServicesBackupItem -Item $item
$joblist = Get-AzRecoveryServicesJob -Status "InProgress"
Wait-AzRecoveryServicesJob `
        -Job $joblist[0] `
        -Timeout 43200

デプロイメントの整理

次のコマンドを実行して、リソース グループ、VM、すべての関連リソースを削除します。

Remove-AzResourceGroup -Name myResourceGroup

スクリプトの説明

このスクリプトでは、以下のコマンドを実行してデプロイを作成します。 表内の各項目は、コマンドごとのドキュメントにリンクされています。

コマンド 注記
New-AzResourceGroup すべてのリソースを格納するリソース グループを作成します。
New-AzRecoveryServicesVault バックアップを格納する Recovery Services コンテナーを作成します。
Set-AzRecoveryServicesBackupProperty Recovery Services コンテナーにバックアップ ストレージのプロパティを設定します。
New-AzRecoveryServicesバックアップ保護ポリシー Recovery Services コンテナーでスケジュール ポリシーとアイテム保持ポリシーを使って、保護ポリシーを作成します。
Set-AzKeyVaultAccessPolicy サービス プリンシパルに暗号化キーへのアクセスを許可するアクセス許可を Key Vault に設定します。
Enable-AzRecoveryServicesBackupProtection バックアップ保護を有効にします。 指定したバックアップ保護ポリシーを持つ項目のバックアップを有効にします。
Set-AzRecoveryServicesBackupProtectionPolicy コマンドは、Azureのリカバリーサービスバックアップ保護ポリシーを設定します。 既存のバックアップ保護ポリシーを変更します。
Backup-AzRecoveryServicesBackupItem バックアップ スケジュールに関連付けられていない保護された Azure Backup 項目のバックアップを開始します。
Wait-AzRecoveryServicesBackupJob Azure Backup ジョブが完了するまで待機します。
Remove-AzResourceGroup リソース グループと、それに含まれているすべてのリソースを削除します。

次のステップ

Azure PowerShell モジュールの詳細を確認します。