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) és titkos kulcsának (BitLocker titkosítási kulcs) külön másolatát szeretné fenntartani.
Feljegyzés
Javasoljuk, hogy az Azure Az PowerShell modult használja az Azure-ral való interakcióhoz. Első lépésként tekintse meg az Azure PowerShell telepítését ismertető témakört. 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épek biztonsági mentése az Azure Backup használatával történt. A titkosított Azure-beli virtuális gépek biztonsági mentésével és visszaállításával kapcsolatos részletekért tekintse meg az Azure-beli virtuális gépek biztonsági mentésének és visszaállításának kezelését a PowerShell használatával .
- 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 jelen van. 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 PowerShell-lépésekkel 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 az Azure Backupból
Feljegyzés
Miután visszaállította a lemezt a titkosított virtuális géphez, győződjön meg arról, hogy:
A feladat részleteinek lekérdezése a visszaállított lemeztulajdonságokhoz.
$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 a JSON-fájl létrejött a fent említett célútvonalon, hozzon létre kulcsblobfájlt a JSON-ból, és táplálja azt a kulcsparancsmag visszaállításához, hogy a kulcs (KEK) visszakerüljön a kulcstartóba.
$keyDestination = 'C:\keyDetails.blob'
[io.file]::WriteAllBytes($keyDestination, [System.Convert]::FromBase64String($encryptionObject.OsDiskKeyAndSecretDetails.KeyBackupData))
Restore-AzKeyVaultKey -VaultName '<target_key_vault_name>' -InputFile $keyDestination
Titkos kód 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álással beállíthatja a titkos parancsmagot, hogy a titkos kulcsot (BEK) visszahelyozza a kulcstartóba. Ezeket a parancsmagokat akkor használja, ha a virtuális gép a BEK és a KEK használatával van titkosítva.
Ezeket a parancsmagokat akkor használja, ha a Windows rendszerű virtuális gép titkosítása BEK és KEK használatával történik.
$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 titkosítása BEK és KEK használatával történik.
$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álással beállíthatja a titkos parancsmagot, hogy a titkos kulcsot (BEK) visszahelyozza 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
Feljegyzé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 URL-cím
https://keyvaultname.vault.azure.net/secrets/B3284AAA-DAAA-4AAA-B393-60CAA848AAAA/xx000000xx0849999f3xx30000003163
például B3284AAA-DAAA-4AAA-B393-60CAA848AAAAAA - 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épekrő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, kulcsból és titkos kódból.
Örökölt megközelítés
A fent említett megközelítés az összes helyreállítási ponton működik. A kulcs- és titkos adatok helyreállítási pontról való lekérésének régebbi megközelítése azonban érvényes lenne a 2017. július 11-nél régebbi helyreállítási pontokra a BEK és a KEK használatával titkosított virtuális gépek esetében. Miután befejeződött a lemez-visszaállítási feladat a titkosított virtuális gépekhez PowerShell-lépésekkel, győződjön meg arról, hogy a $rp érvényes értékkel van feltöltve.
Visszaállítási kulcs (örökölt megközelítés)
A következő parancsmagokkal lekérheti a kulcs (KEK) adatait a helyreállítási pontról, és a kulcsparancsmag visszaállításához visszateheti a kulcstartóba.
$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 kód visszaállítása (örökölt megközelítés)
A következő parancsmagok használatával lekérheti a titkos kulcsok (BEK) adatait a helyreállítási pontból, és betáplálással beállíthatja a titkos parancsmagot, hogy visszahelyozza őket 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'
Feljegyzés
- A $secretname értéke az $rp 1 kimenetére való hivatkozással kérhető le. KeyAndSecretDetails.SecretUrl és a titkos kódok utáni szöveg használata/ Például a kimeneti titkos kód URL-címe
https://keyvaultname.vault.azure.net/secrets/B3284AAA-DAAA-4AAA-B393-60CAA848AAAA/xx000000xx0849999f3xx30000003163
és a titkos kód neve B3284AAA-DAAA-4AAA-B393-60CAA848AAAAAA - A DiskEncryptionKeyFileName címke értéke megegyezik a titkos kód nevével.
- A DiskEncryptionKeyEncryptionKeyURL értéke a kulcstartóból kérhető le 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ését a PowerShell használatával , hogy titkosított virtuális gépeket hozzon létre a visszaállított lemezből, kulcsból és titkos kulcsból.