Aracılığıyla paylaş


Azure Backup kullanarak şifreli VM’ler için Key Vault anahtarını ve parolasını geri yükleme

Bu makalede, anahtarınız ve gizli anahtarınız anahtar kasasında yoksa şifrelenmiş Azure VM'lerinin geri yüklemesini gerçekleştirmek için Azure VM Backup'ı kullanma hakkında bilgi verilmektedir. Bu adımlar, geri yüklenen VM için anahtarın (Anahtar Şifreleme Anahtarı) ve gizli anahtarın (BitLocker Şifreleme Anahtarı) ayrı bir kopyasını tutmak istiyorsanız da kullanılabilir.

Not

Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz . Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

Önkoşullar

  • Şifrelenmiş VM'leri yedekleme - Şifrelenmiş Azure VM'leri Azure Backup kullanılarak yedeklendi. Şifrelenmiş Azure VM'lerini yedekleme hakkında ayrıntılı bilgi için PowerShell kullanarak Azure VM'lerinin yedeklenmesini ve geri yüklenmesini yönetme makalesine bakın.
  • Azure Key Vault'u yapılandırma – Anahtarların ve gizli dizilerin geri yüklenmesi gereken anahtar kasasının zaten mevcut olduğundan emin olun. Anahtar kasası yönetimi hakkında ayrıntılı bilgi için Azure Key Vault ile Çalışmaya Başlama makalesine bakın.
  • Diski geri yükleme - PowerShell adımlarını kullanarak şifrelenmiş VM için diskleri geri yüklemek için geri yükleme işini tetiklediğinizden emin olun. Bunun nedeni, bu işin depolama hesabınızda şifrelenmiş VM'nin geri yüklenmesi için anahtarlar ve gizli diziler içeren bir JSON dosyası oluşturmasıdır.

Azure Backup'tan anahtar ve gizli dizi alma

Not

Şifrelenmiş VM için disk geri yüklendikten sonra şunların olduğundan emin olun:

İş ayrıntıları için geri yüklenen disk özelliklerini sorgula.

$properties = $details.properties
$storageAccountName = $properties["Target Storage Account Name"]
$containerName = $properties["Config Blob Container Name"]
$encryptedBlobName = $properties["Encryption Info Blob Name"]

Şifrelenmiş VM için anahtar ve gizli dizi ayrıntılarını içeren Azure depolama bağlamını ayarlayın ve JSON yapılandırma dosyasını geri yükleyin.

Set-AzCurrentStorageAccount -Name $storageaccountname -ResourceGroupName '<rg-name>'
$destination_path = 'C:\vmencryption_config.json'
Get-AzStorageBlobContent -Blob $encryptedBlobName -Container $containerName -Destination $destination_path
$encryptionObject = Get-Content -Path $destination_path  | ConvertFrom-Json

Geri yükleme anahtarı

JSON dosyası yukarıda belirtilen hedef yolda oluşturulduktan sonra, JSON'dan anahtar blob dosyası oluşturun ve anahtarı (KEK) anahtar kasasına geri yerleştirmek üzere anahtar cmdlet'ini geri yüklemek için bu dosyayı besleyin.

$keyDestination = 'C:\keyDetails.blob'
[io.file]::WriteAllBytes($keyDestination, [System.Convert]::FromBase64String($encryptionObject.OsDiskKeyAndSecretDetails.KeyBackupData))
Restore-AzureKeyVaultKey -VaultName '<target_key_vault_name>' -InputFile $keyDestination

Gizli diziyi geri yükleme

Gizli dizi adını ve değerini almak için yukarıda oluşturulan JSON dosyasını kullanın ve gizli diziyi (BEK) anahtar kasasına geri koyacak gizli dizi cmdlet'ini ayarlamak için bu dosyayı besleyin. VM'niz BEK ve KEK kullanılarak şifreleniyorsa bu cmdlet'leri kullanın.

Windows VM'niz BEK ve KEK kullanılarak şifreleniyorsa bu cmdlet'leri kullanın.

$secretdata = $encryptionObject.OsDiskKeyAndSecretDetails.SecretData
$Secret = ConvertTo-SecureString -String $secretdata -AsPlainText -Force
$secretname = 'B3284AAA-DAAA-4AAA-B393-60CAA848AAAA'
$Tags = @{'DiskEncryptionKeyEncryptionAlgorithm' = 'RSA-OAEP';'DiskEncryptionKeyFileName' = 'B3284AAA-DAAA-4AAA-B393-60CAA848AAAA.BEK';'DiskEncryptionKeyEncryptionKeyURL' = $encryptionObject.OsDiskKeyAndSecretDetails.KeyUrl;'MachineName' = 'vm-name'}
Set-AzKeyVaultSecret -VaultName '<target_key_vault_name>' -Name $secretname -SecretValue $Secret -ContentType  'Wrapped BEK' -Tags $Tags

Linux VM'niz BEK ve KEK kullanılarak şifreleniyorsa bu cmdlet'leri kullanın.

$secretdata = $encryptionObject.OsDiskKeyAndSecretDetails.SecretData
$Secret = ConvertTo-SecureString -String $secretdata -AsPlainText -Force
$secretname = 'B3284AAA-DAAA-4AAA-B393-60CAA848AAAA'
$Tags = @{'DiskEncryptionKeyEncryptionAlgorithm' = 'RSA-OAEP';'DiskEncryptionKeyFileName' = 'LinuxPassPhraseFileName';'DiskEncryptionKeyEncryptionKeyURL' = <Key_url_of_newly_restored_key>;'MachineName' = 'vm-name'}
Set-AzKeyVaultSecret -VaultName '<target_key_vault_name>' -Name $secretname -SecretValue $Secret -ContentType  'Wrapped BEK' -Tags $Tags

Gizli dizi adını ve değerini almak için yukarıda oluşturulan JSON dosyasını kullanın ve gizli diziyi (BEK) anahtar kasasına geri koyacak gizli dizi cmdlet'ini ayarlamak için bu dosyayı besleyin. VM'niz yalnızca BEK kullanılarak şifreleniyorsa bu cmdlet'leri kullanın.

$secretDestination = 'C:\secret.blob'
[io.file]::WriteAllBytes($secretDestination, [System.Convert]::FromBase64String($encryptionObject.OsDiskKeyAndSecretDetails.KeyVaultSecretBackupData))
Restore-AzKeyVaultSecret -VaultName '<target_key_vault_name>' -InputFile $secretDestination -Verbose

Not

  • $secretname değeri, $encryptionObject.OsDiskKeyAndSecretDetails.SecretUrl çıkışına başvurularak ve gizli dizilerden sonra metin kullanılarak elde edilebilir/ Örneğin, çıkış gizli dizisi URL'si ve https://keyvaultname.vault.azure.net/secrets/B3284AAA-DAAA-4AAA-B393-60CAA848AAAA/xx000000xx0849999f3xx30000003163 gizli dizi adı B3284AAA-DAAA-4AAA-B393-60CAA848AAAA
  • DiskEncryptionKeyFileName etiketinin değeri gizli dizi adıyla aynıdır.

Geri yüklenen diskten sanal makine oluşturma

Azure VM Backup'ı kullanarak şifrelenmiş VM'yi yedeklediyseniz, yukarıda belirtilen PowerShell cmdlet'leri anahtarı ve gizli diziyi anahtar kasasına geri yüklemenize yardımcı olur. Bunları geri yükledikten sonra, geri yüklenen diskten, anahtardan ve gizli diziden şifrelenmiş VM'ler oluşturmak için PowerShell kullanarak Azure VM'lerinin yedeklenmesini ve geri yüklenmesini yönetme makalesine bakın.

Eski yaklaşım

Yukarıda bahsedilen yaklaşım tüm kurtarma noktaları için işe yarayabilecek. Ancak, kurtarma noktasından anahtar ve gizli bilgi almayla ilgili eski yaklaşım, BEK ve KEK kullanılarak şifrelenmiş VM'ler için 11 Temmuz 2017'den eski kurtarma noktaları için geçerli olacaktır. PowerShell adımlarını kullanarak şifrelenmiş VM için disk işini geri yükleme işlemi tamamlandıktan sonra, $rp geçerli bir değerle dolduruldığından emin olun.

Anahtarı geri yükleme (eski yaklaşım)

Kurtarma noktasından anahtar (KEK) bilgilerini almak için aşağıdaki cmdlet'leri kullanın ve anahtar cmdlet'ini geri yükleyip anahtar kasasına geri yüklemek için besleyin.

$rp1 = Get-AzRecoveryServicesBackupRecoveryPoint -RecoveryPointId $rp[0].RecoveryPointId -Item $backupItem -KeyFileDownloadLocation 'C:\Users\downloads'
Restore-AzureKeyVaultKey -VaultName '<target_key_vault_name>' -InputFile 'C:\Users\downloads'

Gizli diziyi geri yükleme (eski yaklaşım)

Kurtarma noktasından gizli dizi (BEK) bilgilerini almak için aşağıdaki cmdlet'leri kullanın ve gizli dizi cmdlet'ini anahtar kasasına geri koyacak şekilde ayarlamak üzere besleyin.

$secretname = 'B3284AAA-DAAA-4AAA-B393-60CAA848AAAA'
$secretdata = $rp1.KeyAndSecretDetails.SecretData
$Secret = ConvertTo-SecureString -String $secretdata -AsPlainText -Force
$Tags = @{'DiskEncryptionKeyEncryptionAlgorithm' = 'RSA-OAEP';'DiskEncryptionKeyFileName' = 'B3284AAA-DAAA-4AAA-B393-60CAA848AAAA.BEK';'DiskEncryptionKeyEncryptionKeyURL' = 'https://mykeyvault.vault.azure.net:443/keys/KeyName/84daaac999949999030bf99aaa5a9f9';'MachineName' = 'vm-name'}
Set-AzKeyVaultSecret -VaultName '<target_key_vault_name>' -Name $secretname -SecretValue $secret -Tags $Tags -SecretValue $Secret -ContentType  'Wrapped BEK'

Not

  • $secretname değeri, $rp 1 çıkışına başvurularak elde edilebilir. KeyAndSecretDetails.SecretUrl ve gizli dizilerden sonra metin kullanma/ Örneğin, çıkış gizli dizisi URL'si ve https://keyvaultname.vault.azure.net/secrets/B3284AAA-DAAA-4AAA-B393-60CAA848AAAA/xx000000xx0849999f3xx30000003163 gizli dizi adı B3284AAA-DAAA-4AAA-B393-60CAA848AAAA
  • DiskEncryptionKeyFileName etiketinin değeri gizli dizi adıyla aynıdır.
  • DiskEncryptionKeyEncryptionKeyURL değeri, anahtarları geri yükledikten ve Get-AzureKeyVaultKey cmdlet'i kullanılarak anahtar kasasından alınabilir

Sonraki adımlar

Anahtar ve gizli diziyi anahtar kasasına geri yükledikten sonra, geri yüklenen diskten, anahtardan ve gizli diziden şifrelenmiş VM'ler oluşturmak için PowerShell kullanarak Azure VM'lerinin yedeklenmesini ve geri yüklenmesini yönetme makalesine bakın.