A titkosított virtuális gépekhez tartozó Key Vault-kulcs és titkos kulcs visszaállítása az Azure Backup használatával
Ez a cikk az Azure-beli virtuális gépek biztonsági mentésének használatával ismerteti a titkosított Azure-beli virtuális gépek visszaállítását, ha a kulcs és a titkos kulcs nem létezik a kulcstartóban. Ezek a lépések akkor is használhatók, ha a visszaállított virtuális gép kulcsának (kulcstitkosítási kulcsának) és titkos kulcsának (BitLocker titkosítási kulcsának) külön példányát szeretné megőrizni.
Megjegyzés
Javasoljuk, hogy az Azure Az PowerShell-modult használja az Azure-ral való kommunikációhoz. Az első lépésekhez tekintse meg az Azure PowerShell telepítését ismertető szakaszt. Az Az PowerShell-modulra történő migrálás részleteiről lásd: Az Azure PowerShell migrálása az AzureRM modulból az Az modulba.
Előfeltételek
- Titkosított virtuális gépek biztonsági mentése – A titkosított Azure-beli virtuális gépekről biztonsági másolatot készítünk a Azure Backup használatával. A titkosított Azure-beli virtuális gépek biztonsági mentésének részleteiért tekintse meg az Azure-beli virtuális gépek biztonsági mentésének és visszaállításának kezelése a PowerShell használatával című cikket.
- Az Azure Key Vault konfigurálása – Győződjön meg arról, hogy a kulcstartó, amelyre a kulcsokat és titkos kulcsokat vissza kell állítani, már megtalálható. A kulcstartó kezelésével kapcsolatos részletekért tekintse meg az Azure Key Vault használatának első lépéseit ismertető cikket.
- Lemez visszaállítása – Győződjön meg arról, hogy aktiválta a visszaállítási feladatot a titkosított virtuális gépek lemezeinek a PowerShell-lépések használatával történő visszaállításához. Ennek az az oka, hogy ez a feladat létrehoz egy JSON-fájlt a tárfiókban, amely kulcsokat és titkos kulcsokat tartalmaz a titkosított virtuális gép visszaállításához.
Kulcs és titkos kulcs lekérése Azure Backup
Megjegyzés
A titkosított virtuális gép lemezének visszaállítása után győződjön meg arról, hogy:
- $details fel van töltve a lemez-visszaállítási feladat részleteivel, ahogy az a Lemezek visszaállítása szakaszban található PowerShell-lépésekben is szerepel
- A virtuális gépet csak a kulcs és a titkos kulcs kulcstartóba való visszaállítása után szabad létrehozni a visszaállított lemezekről.
A feladat részleteinek lekérdezése a visszaállított lemeztulajdonságok között.
$properties = $details.properties
$storageAccountName = $properties["Target Storage Account Name"]
$containerName = $properties["Config Blob Container Name"]
$encryptedBlobName = $properties["Encryption Info Blob Name"]
Állítsa be az Azure Storage-környezetet, és állítsa vissza a titkosított virtuális gép kulcs- és titkos adatait tartalmazó JSON-konfigurációs fájlt.
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
Visszaállítási kulcs
Miután létrejött a JSON-fájl a fent említett célútvonalon, hozzon létre kulcsblobfájlt a JSON-ból, és adja vissza a kulcsparancsmag visszaállításához, hogy a kulcs (KEK) vissza legyen helyezve a kulcstartóba.
$keyDestination = 'C:\keyDetails.blob'
[io.file]::WriteAllBytes($keyDestination, [System.Convert]::FromBase64String($encryptionObject.OsDiskKeyAndSecretDetails.KeyBackupData))
Restore-AzureKeyVaultKey -VaultName '<target_key_vault_name>' -InputFile $keyDestination
Titkos kulcs visszaállítása
A fent létrehozott JSON-fájl használatával lekérheti a titkos kód nevét és értékét, és betáplálta, hogy titkos parancsmagot állítson be, hogy a titkos kulcs (BEK) vissza legyen helyezve a kulcstartóba. Ezeket a parancsmagokat akkor használja, ha a virtuális gép bek és KEK használatával van titkosítva.
Ezeket a parancsmagokat akkor használja, ha a Windows rendszerű virtuális gép bek és KEK használatával van titkosítva.
$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
Ezeket a parancsmagokat akkor használja, ha a Linux rendszerű virtuális gép bek és KEK használatával van titkosítva.
$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
A fent létrehozott JSON-fájl használatával lekérheti a titkos kód nevét és értékét, és betáplálta, hogy titkos parancsmagot állítson be, hogy a titkos kulcs (BEK) vissza legyen helyezve a kulcstartóba. Ezeket a parancsmagokat akkor használja, ha a virtuális gép csak a BEK használatával van titkosítva .
$secretDestination = 'C:\secret.blob'
[io.file]::WriteAllBytes($secretDestination, [System.Convert]::FromBase64String($encryptionObject.OsDiskKeyAndSecretDetails.KeyVaultSecretBackupData))
Restore-AzKeyVaultSecret -VaultName '<target_key_vault_name>' -InputFile $secretDestination -Verbose
Megjegyzés
- A $secretname értéke a $encryptionObject.OsDiskKeyAndSecretDetails.SecretUrl kimenetére való hivatkozással és a titkos kódok utáni szöveg használatával szerezhető be/ A kimeneti titkos kód URL-címe
https://keyvaultname.vault.azure.net/secrets/B3284AAA-DAAA-4AAA-B393-60CAA848AAAA/xx000000xx0849999f3xx30000003163
például B3284AAAA-DAAA-4AAA-B393-60CAA848AAAAA - A DiskEncryptionKeyFileName címke értéke megegyezik a titkos kód nevével.
Virtuális gép létrehozása visszaállított lemezről
Ha az Azure-beli virtuális gépek biztonsági mentésével biztonsági másolatot készít a titkosított virtuális gépről, a fent említett PowerShell-parancsmagok segítségével visszaállíthatja a kulcsot és a titkos kulcsokat a kulcstartóba. A visszaállításuk után tekintse meg az Azure-beli virtuális gépek biztonsági mentésének és visszaállításának kezelése a PowerShell használatával titkosított virtuális gépek visszaállítását a visszaállított lemezről, kulcsról és titkos kódról.
Örökölt megközelítés
A fent említett megközelítés az összes helyreállítási pont esetében működik. A kulcs- és titkos információk helyreállítási pontról való lekérésének régebbi megközelítése azonban a BEK-vel és AK-val titkosított virtuális gépek esetében 2017. július 11-nél régebbi helyreállítási pontokra érvényes. Miután befejeződött a lemez-visszaállítási feladat a titkosított virtuális gépeken a PowerShell-lépésekkel, győződjön meg arról, hogy $rp érvényes értékkel van feltöltve.
Visszaállítási kulcs (örökölt megközelítés)
Az alábbi parancsmagokkal lekérheti a kulcs (KEK) adatait a helyreállítási pontról, és visszatáplálhatja a kulcsparancsmagot a kulcstartóba való visszahelyítéshez.
$rp1 = Get-AzRecoveryServicesBackupRecoveryPoint -RecoveryPointId $rp[0].RecoveryPointId -Item $backupItem -KeyFileDownloadLocation 'C:\Users\downloads'
Restore-AzureKeyVaultKey -VaultName '<target_key_vault_name>' -InputFile 'C:\Users\downloads'
Titkos kulcs visszaállítása (örökölt megközelítés)
Az alábbi parancsmagokkal titkos (BEK) információkat kérhet le a helyreállítási pontról, és betáplálással beállíthatja a titkos parancsmagot, hogy visszahelyhesse a kulcstartóba.
$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'
Megjegyzés
- A $secretname értéke a $rp 1 kimenetére való hivatkozással szerezhető be. KeyAndSecretDetails.SecretUrl és a titkos kódok utáni szöveg használata/ A kimeneti titkos kód URL-címe
https://keyvaultname.vault.azure.net/secrets/B3284AAA-DAAA-4AAA-B393-60CAA848AAAA/xx000000xx0849999f3xx30000003163
például B3284AAA-DAAA-4AAA-B393-60CAA848AAAAA - A DiskEncryptionKeyFileName címke értéke megegyezik a titkos kód nevével.
- A DiskEncryptionKeyEncryptionKeyURL értéke lekérhető a kulcstartóból a kulcsok visszaállítása és a Get-AzureKeyVaultKey parancsmag használata után
Következő lépések
A kulcs és a titkos kulcs kulcstartóba való visszaállítása után tekintse meg az Azure-beli virtuális gépek biztonsági mentésének és visszaállításának kezelése a PowerShell használatával titkosított virtuális gépek visszaállítását a visszaállított lemezről, kulcsról és titkos kódról.