Megosztás a következőn keresztül:


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:

  • $details a rendszer feltölti a lemez-visszaállítási feladat részleteivel, ahogyan 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á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.