Obnovení klíče a tajného kódu Key Vault pro šifrované virtuální počítače pomocí Azure Backup
Tento článek popisuje použití služby Azure VM Backup k obnovení šifrovaných virtuálních počítačů Azure, pokud váš klíč a tajný klíč v trezoru klíčů neexistuje. Tyto kroky se dají použít také v případě, že chcete zachovat samostatnou kopii klíče (šifrovací klíč klíče) a tajný klíč (šifrovací klíč nástroje BitLocker) pro obnovený virtuální počítač.
Poznámka:
Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Začněte tím, že si projdete téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.
Požadavky
- Zálohované šifrované virtuální počítače – Šifrované virtuální počítače Azure se zálohovaly pomocí služby Azure Backup. Podrobnosti o zálohování a obnovení šifrovaných virtuálních počítačů Azure najdete v článku Správa zálohování a obnovení virtuálních počítačů Azure pomocí PowerShellu .
- Konfigurace služby Azure Key Vault – Ujistěte se, že trezor klíčů, ke kterým je potřeba klíče a tajné kódy obnovit, už existuje. Podrobnosti o správě trezoru klíčů najdete v článku Začínáme se službou Azure Key Vault .
- Obnovení disku – Pomocí kroků PowerShellu se ujistěte, že jste aktivovali úlohu obnovení pro obnovení disků pro šifrovaný virtuální počítač. Důvodem je to, že tato úloha vygeneruje soubor JSON ve vašem účtu úložiště obsahující klíče a tajné kódy pro obnovení šifrovaného virtuálního počítače.
Získání klíče a tajného klíče ze služby Azure Backup
Poznámka:
Po obnovení disku pro šifrovaný virtuální počítač se ujistěte, že:
- $details se vyplní podrobnostmi o úloze obnovení disku, jak je uvedeno v krocích PowerShellu v části Obnovení disků
- Virtuální počítač by se měl vytvořit z obnovených disků až po obnovení klíče a tajného klíče do trezoru klíčů.
Zadejte dotaz na vlastnosti obnoveného disku pro podrobnosti úlohy.
$properties = $details.properties
$storageAccountName = $properties["Target Storage Account Name"]
$containerName = $properties["Config Blob Container Name"]
$encryptedBlobName = $properties["Encryption Info Blob Name"]
Nastavte kontext úložiště Azure a obnovte konfigurační soubor JSON obsahující podrobnosti klíče a tajného klíče pro šifrovaný virtuální počítač.
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
Obnovení klíče
Jakmile se soubor JSON vygeneruje v cílové cestě uvedené výše, vygenerujte ze souboru JSON soubor objektu blob klíče a vložte ho do trezoru klíčů.
$keyDestination = 'C:\keyDetails.blob'
[io.file]::WriteAllBytes($keyDestination, [System.Convert]::FromBase64String($encryptionObject.OsDiskKeyAndSecretDetails.KeyBackupData))
Restore-AzKeyVaultKey -VaultName '<target_key_vault_name>' -InputFile $keyDestination
Obnovení tajného kódu
Pomocí výše vygenerovaného souboru JSON získejte název a hodnotu tajného kódu a vložte ho do trezoru klíčů a nastavte rutinu tajného kódu tak, aby se tajný kód (BEK) vrátil do trezoru klíčů. Tyto rutiny použijte, pokud je váš virtuální počítač šifrovaný pomocí BEK a KEK.
Tyto rutiny použijte, pokud je váš virtuální počítač s Windows šifrovaný pomocí BEK a KEK.
$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
Tyto rutiny použijte, pokud je virtuální počítač s Linuxem šifrovaný pomocí BEK a KEK.
$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
Pomocí výše vygenerovaného souboru JSON získejte název a hodnotu tajného kódu a vložte ho do trezoru klíčů a nastavte rutinu tajného kódu tak, aby se tajný kód (BEK) vrátil do trezoru klíčů. Tyto rutiny použijte, pokud je váš virtuální počítač šifrovaný jenom pomocí bek .
$secretDestination = 'C:\secret.blob'
[io.file]::WriteAllBytes($secretDestination, [System.Convert]::FromBase64String($encryptionObject.OsDiskKeyAndSecretDetails.KeyVaultSecretBackupData))
Restore-AzKeyVaultSecret -VaultName '<target_key_vault_name>' -InputFile $secretDestination -Verbose
Poznámka:
- Hodnotu pro $secretname lze získat odkazem na výstup $encryptionObject.OsDiskKeyAndSecretDetails.SecretUrl a použití textu za tajnými kódy/ Výstupní adresa URL tajného kódu je
https://keyvaultname.vault.azure.net/secrets/B3284AAA-DAAA-4AAA-B393-60CAA848AAAA/xx000000xx0849999f3xx30000003163
a název tajného kódu je B3284AAA-DAAA-4AAA-B393-60CAA848AAAA - Hodnota značky DiskEncryptionKeyFileName je stejná jako název tajného kódu.
Vytvoření virtuálního počítače z obnoveného disku
Pokud jste zálohovali šifrovaný virtuální počítač pomocí služby Azure VM Backup, výše uvedené rutiny PowerShellu vám pomůžou obnovit klíč a tajný kód zpět do trezoru klíčů. Po obnovení si přečtěte článek Správa zálohování a obnovení virtuálních počítačů Azure pomocí PowerShellu k vytvoření šifrovaných virtuálních počítačů z obnoveného disku, klíče a tajného kódu.
Starší přístup
Výše uvedený přístup by fungoval pro všechny body obnovení. Starší přístup k získání klíčů a tajných informací z bodu obnovení by však byl platný pro body obnovení starší než 11. července 2017 pro virtuální počítače šifrované pomocí BEK a KEK. Po dokončení úlohy obnovení disku pro šifrovaný virtuální počítač pomocí kroků PowerShellu se ujistěte, že $rp je naplněna platnou hodnotou.
Obnovení klíče (starší verze přístupu)
Pomocí následujících rutin získáte informace o klíči (KEK) z bodu obnovení a odešlete je k obnovení rutiny klíče, aby se vrátila do trezoru klíčů.
$rp1 = Get-AzRecoveryServicesBackupRecoveryPoint -RecoveryPointId $rp[0].RecoveryPointId -Item $backupItem -KeyFileDownloadLocation 'C:\Users\downloads'
Restore-AzureKeyVaultKey -VaultName '<target_key_vault_name>' -InputFile 'C:\Users\downloads'
Obnovení tajného kódu (starší verze přístupu)
Pomocí následujících rutin získáte informace o tajných klíčích (BEK) z bodu obnovení a odešlete je k nastavení tajné rutiny pro jejich vrácení zpět do trezoru klíčů.
$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'
Poznámka:
- Hodnotu $secretname lze získat odkazem na výstup $rp 1. KeyAndSecretDetails.SecretUrl a použití textu za tajnými kódy/ Výstupní adresa URL tajného kódu je a název tajného kódu je
https://keyvaultname.vault.azure.net/secrets/B3284AAA-DAAA-4AAA-B393-60CAA848AAAA/xx000000xx0849999f3xx30000003163
B3284AAA-DAAA-4AAA-B393-60CAA848AAAA - Hodnota značky DiskEncryptionKeyFileName je stejná jako název tajného kódu.
- Hodnotu pro DiskEncryptionKeyEncryptionKeyURL je možné získat z trezoru klíčů po obnovení klíčů zpět a pomocí rutiny Get-AzureKeyVaultKey
Další kroky
Po obnovení klíče a tajného klíče zpět do trezoru klíčů si přečtěte článek Správa zálohování a obnovení virtuálních počítačů Azure pomocí PowerShellu a vytvořte šifrované virtuální počítače z obnoveného disku, klíče a tajného klíče.