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:

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.