Разблокировка зашифрованного диска для автономного восстановления
Область применения: ✔️ Виртуальные машины Windows
В этой статье описывается, как разблокировать зашифрованный диск ОС на отдельной виртуальной машине (называемой виртуальной машиной восстановления), чтобы включить автономное исправление и устранение неполадок на этом диске.
Симптомы
Если вы восстанавливаете диск ОС виртуальной машины Windows в автономном режиме, диск может быть заблокирован при подключении к виртуальной машине восстановления, как показано ниже. В этом случае на диске включена Шифрование дисков Azure (ADE). Вы не сможете устранить какие-либо проблемы на этом диске с виртуальной машины восстановления, пока диск не будет разблокирован.
Общие сведения
Для некоторых сценариев устранения неполадок требуется выполнить автономное восстановление виртуального диска в Azure. Например, если виртуальная машина Windows недоступна, отображаются ошибки диска или не удается запустить, можно выполнить действия по устранению неполадок на диске ОС, подключив ее к отдельной виртуальной машине восстановления (также называемой виртуальной машиной восстановления или аварийной виртуальной машиной).
Однако если диск зашифрован с помощью ADE, диск останется заблокированным и недоступным, пока он не подключен к виртуальной машине восстановления, пока не разблокируете диск. Чтобы разблокировать диск, необходимо использовать тот же ключ шифрования BitLocker (BEK), который изначально использовался для шифрования. Этот ключ BEK (и, при необходимости, ключ шифрования ключей [KEK], который шифрует или "упаковывает" BEK) будет храниться в хранилище ключей Azure, управляемом вашей организацией.
Цель
В этой статье описаны методы, которые можно использовать для подключения зашифрованного диска ОС к виртуальной машине восстановления, а затем разблокировки этого диска. После разблокировки диска его можно восстановить. На последнем шаге можно заменить диск ОС на исходной виртуальной машине этой вновь исправленной версией.
Подготовка
Выполните следующие действия перед присоединением диска ОПЕРАЦИОННОй системы к виртуальной машине восстановления:
- Убедитесь, что ADE включен на диске.
- Определите, используется ли диск ОС ADE версии 1 (двойное сквозное шифрование) или ADE версии 2 (однопроходное шифрование).
- Определите, управляется ли диск ОС или неуправляем.
- Выберите метод для подключения диска к виртуальной машине восстановления и разблокировки диска.
Убедитесь, что ADE включен на диске
Этот шаг можно выполнить в портал Azure, PowerShell или интерфейсе командной строки Azure (Azure CLI).
Портал Azure
Просмотрите колонку обзора для неудачной виртуальной машины в портал Azure. Под диском шифрование дисков Azure будет отображаться как включено или не включено, как показано на следующем снимке экрана.
PowerShell
С помощью командлета Get-AzVmDiskEncryptionStatus
можно определить, шифруются ли тома ОС и (или) данных для виртуальной машины с помощью ADE. В следующем примере выходных данных указано, что шифрование ADE включено в томе ОС:
PS /home/me> Get-AzVmDiskEncryptionStatus -ResourceGroupName "MyRg01" -VMName "MyVm01"
OsVolumeEncrypted : Encrypted
DataVolumesEncrypted : NoDiskFound
OsVolumeEncryptionSettings : Microsoft.Azure.Management.Compute.Models.DiskEncryptionSettings
ProgressMessage : Extension status not available on the VM
Дополнительные сведения о командлете Get-AzureRmDiskEncryptionStatus
см. в разделе Get-AzVMDiskEncryptionStatus (Az.Compute).
Azure CLI
Вы можете использовать az vm encryption show
команду в Azure CLI с добавленным запросом disks[].encryptionSettings[].enabled
, чтобы определить, включена ли ADE на дисках виртуальной машины. В следующих выходных данных указывается, что шифрование ADE включено.
az vm encryption show --name MyVM --resource-group MyResourceGroup --query "disks[].encryptionSettings[].enabled"
[
true
]
Дополнительные сведения о команде az vm encryption show
см. в статье az vm encryption show.
Примечание.
Автономное восстановление для незашифрованных дисков
Если вы определите, что ADE не включен на диске, ознакомьтесь со следующей статьей по подключению диска к виртуальной машине восстановления: устранение неполадок с виртуальной машиной Windows путем подключения диска ОС к виртуальной машине восстановления через портал Azure
Определите, используется ли диск ОС ADE версии 1 (двойное сквозное шифрование) или ADE версии 2 (однопроходное шифрование).
Вы можете узнать номер версии ADE в портал Azure, открыв свойства виртуальной машины, а затем щелкнув расширения, чтобы открыть колонку "Расширения". В колонке "Расширения" просмотрите номер версии, назначенный AzureDiskEncryption. Если номер версии равен 1, диск использует двойное шифрование. Если номер версии равен 2 или более поздней версии, диск использует однопроходное шифрование.
Если вы определяете, что диск использует ADE версии 1 (двойное сквозное шифрование), можно перейти к решению #3. Ручной метод для разблокировки зашифрованного диска на виртуальной машине восстановления.
Определение управляемого или неуправляемого диска ОС
Если вы не знаете, управляется ли диск ОС или неуправляем, см. статью "Определение того, управляется ли диск ОС" или неуправляем.
Если вы знаете, что диск ОС является неуправляемым, перейдите к разделу Resolution #3. Ручной метод для разблокировки зашифрованного диска на виртуальной машине восстановления.
Выберите метод для подключения диска к виртуальной машине восстановления и разблокировки диска
Для подключения диска к виртуальной машине восстановления и разблокировки диска следует выбрать один из трех способов:
- Если вы определили, что диск управляется и шифруется с помощью ADE версии 2 или более поздней (одноадресное шифрование), а инфраструктура и политика компании позволяют назначить общедоступный IP-адрес виртуальной машине восстановления, используйте решение #1: автоматизированный метод для разблокировки зашифрованного диска на виртуальной машине восстановления.
- Если диск управляется и шифруется с помощью ADE версии 2 или более поздней (одноадресное шифрование), но ваша инфраструктура или политика компании не позволяют назначить общедоступный IP-адрес виртуальной машине восстановления, используйте метод Resolution #2: Полуавтоматичный метод для разблокировки зашифрованного диска на виртуальной машине восстановления. (Другой причиной выбора этого метода является отсутствие разрешений на создание группы ресурсов в Azure.)
- Если один из этих методов завершается ошибкой, или если диск неуправляем или зашифрован с помощью ADE версии 1 (двойное сквозное шифрование), используйте метод Resolution #3: ручной метод для разблокировки зашифрованного диска на виртуальной машине восстановления.
Решение #1. Автоматизированный метод для разблокировки зашифрованного диска на виртуальной машине восстановления
Этот метод использует команды az vm repair для автоматического создания виртуальной машины восстановления, подключения диска ос сбоем и разблокировки диска, если он зашифрован. Он работает только для управляемых дисков с одним проходом и требует использования общедоступного IP-адреса для виртуальной машины восстановления. Этот метод разблокирует зашифрованный диск независимо от того, раскроется ли ключ шифрования BitLocker (BEK) или упаковывается с помощью ключа шифрования ключей (KEK).
Чтобы восстановить виртуальную машину с помощью этого автоматизированного метода, см. статью "Восстановление виртуальной машины Windows" с помощью команд восстановления виртуальной машины Azure.
Примечание.
Если автоматическое устранение неполадок завершается ошибкой, перейдите к решению #2: полуавтоматический метод для разблокировки зашифрованного диска на виртуальной машине восстановления.
Решение #2. Полуавтоматиченный метод для разблокировки зашифрованного диска на виртуальной машине восстановления
Частично автоматизированное разрешение разблокирует управляемый диск с одним проходом без необходимости использовать общедоступный IP-адрес для виртуальной машины восстановления.
С помощью этой процедуры вы вручную создадите виртуальную машину с диском ОС исходной (неудачной) виртуальной машины. При присоединении зашифрованного диска во время создания виртуальной машины виртуальная машина автоматически извлекает beK из хранилища ключей Azure и сохраняет его в томе BEK. Затем вы используете короткий ряд шагов для доступа к BEK и разблокировки зашифрованного диска. В ходе этого процесса beK автоматически распаковывается при необходимости.
В портал Azure создайте моментальный снимок зашифрованного диска ОС на исходной (неудачной) виртуальной машине.
Создайте диск из этого моментального снимка.
Для нового диска выберите то же расположение и зону доступности, которые были назначены исходной виртуальной машине. Обратите внимание, что при создании виртуальной машины восстановления на следующем шаге также потребуется дублировать эти же параметры.
Создайте виртуальную машину на основе Центра обработки данных Windows Server 2016 для использования в качестве виртуальной машины восстановления. Убедитесь, что виртуальная машина назначена тому же региону и зоне доступности, которая используется для нового диска, созданного на шаге 2.
На странице "Диски" мастера создания виртуальной машины подключите диск данных, созданный на основе моментального снимка.
Внимание
Убедитесь, что диск добавляется во время создания виртуальной машины. Во время создания виртуальной машины обнаруживаются только параметры шифрования. Это позволяет автоматически добавлять том, содержащий BEK.
После создания виртуальной машины восстановления войдите на виртуальную машину и откройте службу управления дисками (Diskmgmt.msc). В разделе "Управление дисками" найдите том BEK. По умолчанию для этого тома не назначается буква диска.
Чтобы назначить букву диска тому BEK, щелкните правой кнопкой мыши том BEK, а затем выберите "Изменить букву диска" и "Пути".
Нажмите кнопку "Добавить ", чтобы назначить букву диска тому BEK. В этом процессе буква по умолчанию чаще всего H. Нажмите кнопку "ОК".
В проводник выберите этот компьютер в левой области. Теперь вы увидите том BEK, указанный в списке. Кроме того, обратите внимание на том, который помечен значком блокировки. Это зашифрованный диск, подключенный при создании виртуальной машины. (В следующем примере зашифрованный диск назначается буква G.)
Чтобы разблокировать зашифрованный диск, необходимо иметь имя файла BEK в томе BEK. Однако по умолчанию файлы в томе BEK скрыты. В командной строке введите следующую команду, чтобы отобразить скрытые файлы:
dir <DRIVE LETTER ASSIGNED TO BEK VOLUME>: /a:h /b /s
Например, если буква диска, назначенная тому BEK, — H, введите следующую команду:
dir H: /a:h /b /s
Выходные данные должны выглядеть следующим образом:
H:\66ABF036-E331-4B67-A667-D1A8B47B4DAB.BEK H:\System Volume Information
Первая запись — имя пути к файлу BEK. Вы будете использовать полное имя пути на следующем шаге.
В командной строке введите следующую команду:
manage-bde -unlock <ENCRYPTED DRIVE LETTER>: -RecoveryKey <.BEK FILE PATH>
Например, если G является зашифрованным диском, а ФАЙЛ BEK совпадает с файлом BEK, указанным в предыдущем примере, введите следующее:
manage-bde -unlock G: -RecoveryKey H:\66ABF036-E331-4B67-A667-D1A8B47B4DAB.BEK
Появится сообщение, указывающее, что файл BEK успешно разблокировал указанный том. И в проводник вы увидите, что диск больше не заблокирован.
Теперь, когда вы можете получить доступ к тому, вы можете завершить устранение неполадок и устранение рисков при необходимости, например считывая журналы или выполняя скрипт.
После восстановления диска используйте следующую процедуру, чтобы заменить диск операционной системы исходной виртуальной машины вновь восстановленным.
Разрешение #3. Ручной метод для разблокировки зашифрованного диска на виртуальной машине восстановления
Вы можете разблокировать диск вручную, выполнив следующую процедуру, если необходимо разблокировать диск с двойной передачей (ADE версии 1) или неуправляемый диск или если другие методы завершаются ошибкой.
Создайте виртуальную машину восстановления и подключите диск ОС исходной виртуальной машины.
Если зашифрованный диск ОС исходной виртуальной машины является управляемым диском, выполните шаги 1-4 в методе 2, чтобы подключить копию заблокированного диска к виртуальной машине восстановления.
Если процесс создания виртуальной машины восстановления с подключенным зашифрованным диском зависает или завершается сбоем (например, возвращает сообщение, которое указывает, что он содержит параметры шифрования и поэтому не может использоваться в качестве диска данных), можно сначала создать виртуальную машину без подключения зашифрованного диска. После создания виртуальной машины восстановления подключите зашифрованный диск к виртуальной машине через портал Azure.
Если зашифрованный диск ОС исходной виртуальной машины является неуправляемым, см. статью "Подключение неуправляемого диска к виртуальной машине для автономного восстановления".
Установка модуля Az PowerShell на виртуальной машине восстановления
Метод разрешения вручную для разблокировки зашифрованного диска в автономном режиме зависит от модуля Az в PowerShell. Поэтому необходимо установить этот модуль на виртуальной машине восстановления.
Подключитесь к виртуальной машине восстановления через RDP.
На виртуальной машине восстановления в диспетчер сервера выберите локальный сервер и отключите конфигурацию расширенной безопасности IE для администраторов.
На виртуальной машине восстановления откройте окно PowerShell с повышенными привилегиями.
Задайте для протокола безопасности API HTTP значение TLS 1.2 для текущего сеанса, введя следующую команду.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Примечание.
Протокол безопасности будет возвращен в значение по умолчанию после закрытия текущего сеанса.
Скачайте последнюю версию пакета Nuget:
Install-PackageProvider -Name "Nuget" -Force
Когда запрос возвращается, установите последнюю версию пакета PowerShellGet.
Install-Module -Name PowerShellGet -Force
Когда запрос возвращается, закройте окно PowerShell. Затем откройте новое окно PowerShell с повышенными привилегиями, чтобы запустить новый сеанс PowerShell.
В командной строке PowerShell установите последнюю версию модуля Azure Az:
Install-Module -Name Az -Scope AllUsers -Repository PSGallery -Force
После возврата запроса установите пакет Az.Account 1.9.4:
Install-Module -Name Az.Accounts -Scope AllUsers -RequiredVersion "1.9.4" -Repository PSGallery -Force
Получение имени файла BEK
В портал Azure перейдите в хранилище ключей, которое использовалось для шифрования исходной виртуальной машины. Если вы не знаете имя хранилища ключей, введите следующую команду в командной строке в Azure Cloud Shell и найдите значение рядом с sourceVault в выходных данных:
az vm encryption show --name MyVM --resource-group MyResourceGroup
В меню слева выберите "Политики доступа".
В политиках доступа хранилища ключей убедитесь, что учетная запись пользователя, используемая для входа в подписку Azure, предоставляет следующие разрешения: Get, Management Operations: Get, List, Update, Create Cryptographic Operations: Unwrap key Secret Permissions: Get, List, Set
Вернитесь к виртуальной машине восстановления и окне PowerShell с повышенными привилегиями.
Задайте для протокола безопасности API HTTP значение TLS 1.2 для текущего сеанса, введя следующую команду.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Введите следующую команду, чтобы начать вход в подписку Azure, заменив "[SubscriptionID]" идентификатором подписки Azure:
Add-AzAccount -SubscriptionID <SubscriptionID>
Следуйте инструкциям, чтобы завершить вход в подписку Azure.
На виртуальной машине восстановления откройте окно среды сценариев Windows PowerShell с повышенными привилегиями и разверните область скрипта (сверху).
В окне сценариев PowerShell с повышенными привилегиями вставьте следующий сценарий в пустую область сценариев. Замените myVM исходной виртуальной машиной (сбоем) и myKeyVault именем хранилища ключей.
if ((Get-AzContext) -ne $Null) { $vmName = "MyVM" $vault = "myKeyVault" # Get the Secrets for all VM Drives from Azure Key Vault Get-AzKeyVaultSecret -VaultName $vault | where {($_.Tags.MachineName -eq $vmName) -and ($_.ContentType -match 'BEK')} ` | Sort-Object -Property Created ` | ft Created, ` @{Label="Content Type";Expression={$_.ContentType}}, ` @{Label ="Volume"; Expression = {$_.Tags.VolumeLetter}}, ` @{Label ="DiskEncryptionKeyFileName"; Expression = {$_.Tags.DiskEncryptionKeyFileName}}, ` @{Label ="URL"; Expression = {$_.Id}} } else { Write-Output "Please log in first with Add-AzAccount" }
Выберите "Запустить скрипт" , чтобы запустить скрипт.
В выходных данных найдите значение под DiskEncryptionKeyFileName для имени файла BEK.
В следующем примере выходных данных имя файла BEK (имя секрета + ". Расширение ФАЙЛА BEK) имеет значение AB4FE364-4E51-4034-8E09-0087C3D51C1C18. BEK. Запишите это значение, так как оно будет использоваться на следующем шаге. (Если вы видите два повторяющихся тома, том, имеющий новую метку времени, является текущим файлом BEK, который используется виртуальной машиной восстановления.)
Если значение типа контента в выходных данных является оболочкой BEK, как показано в приведенном выше примере, перейдите к разделу "Скачать и развернуть BEK". Если значение типа контента в выходных данных просто BEK, как показано в следующем примере, перейдите к следующему разделу, чтобы скачать BEK на виртуальную машину восстановления.
Скачивание BEK на виртуальную машину восстановления
На виртуальной машине восстановления создайте папку с именем BEK (без кавычек) в корне тома C.
Скопируйте и вставьте следующий пример скрипта в пустую область сценариев ISE PowerShell.
Примечание.
Замените значения "$vault" и "$bek" значениями среды. Для значения $bek используйте имя секрета, полученное в последней процедуре. (Имя секрета — это имя файла BEK без расширения имени файла .bek.)
$vault = "myKeyVault" $bek = "EF7B2F5A-50C6-4637-0001-7F599C12F85C" $keyVaultSecret = Get-AzKeyVaultSecret -VaultName $vault -Name $bek $bstr = [Runtime.InteropServices.Marshal]::SecureStringToBSTR($keyVaultSecret.SecretValue) $bekSecretBase64 = [Runtime.InteropServices.Marshal]::PtrToStringAuto($bstr) $bekFileBytes = [Convert]::FromBase64String($bekSecretbase64) $path = "C:\BEK\DiskEncryptionKeyFileName.BEK" [System.IO.File]::WriteAllBytes($path,$bekFileBytes)
В окне сценариев PowerShell выберите "Запустить скрипт". Если скрипт успешно выполняется, выходные данные или сообщение о завершении не будет. Однако новый файл будет создан в папке C:\BEK . (The Папка C:\BEK уже должна существовать.)
Перейдите к разделу "Проверка успешности выполнения скрипта".
Скачивание и распаковка BEK
На виртуальной машине восстановления создайте папку с именем BEK (без кавычек) в корне тома C.
Запишите следующие значения в Блокноте. Вам будет предложено предоставить их при запуске скрипта.
secretUrl. Это URL-адрес секрета, хранящегося в хранилище ключей. Допустимый URL-адрес секрета использует следующий формат: <<
https://[key
> имя хранилища].vault.azure.net/secret/[BEK Name]/[идентификатор версии]>Чтобы найти это значение в портал Azure, перейдите в колонку "Секреты" в хранилище ключей. Выберите имя BEK, которое было определено на предыдущем шаге, получите имя файла BEK. Выберите идентификатор текущей версии и прочитайте URL-адрес секретного идентификатора под свойствами. (Этот URL-адрес можно скопировать в буфер обмена.)
keyVaultResourceGroup. Группа ресурсов хранилища ключей.
kekUrl. Это URL-адрес ключа, который используется для защиты BEK. Допустимый URL-адрес kek использует следующий формат: <<
https://[key
> имя хранилища].vault.azure.net/keys/[имя ключа]/[идентификатор версии]>Это значение можно получить в портал Azure, перейдя к колонке "Ключи" в хранилище ключей, выбрав имя ключа, который используется в качестве ключевого показателя эффективности, выбрав идентификатор текущей версии, а затем прочитав URL-адрес идентификатора ключа ниже свойств. (Этот URL-адрес можно скопировать в буфер обмена.)
secretFilePath. Это полное имя пути для расположения для хранения файла BEK. Например, если имя файла BEK равно AB4FE364-4E51-4034-8E06-0087C3D51C1C18. BEK можно ввести C:\BEK\AB4FE364-4E51-4034-8E06-0087C3D51C1C18. BEK. (The Папка C:\BEK уже должна существовать.)
Перейдите на следующую страницу , чтобы скачать скрипт, который используется для создания файла BEK для разблокировки зашифрованного диска.
На странице выберите "Необработанный".
Скопируйте и вставьте содержимое скрипта в пустую область сценариев в окне среды сценариев PowerShell с повышенными привилегиями в виртуальной машине восстановления.
Выберите "Запустить скрипт".
При появлении запроса укажите значения, записанные перед выполнением скрипта. Если вам будет предложено сообщение о недоверенном репозитории, нажмите кнопку "Да" для всех. Если скрипт успешно запущен, новый файл будет создан в папке C:\BEK . (Эта папка уже должна существовать.)
Убедитесь, что скрипт успешно запущен
Перейдите в папку C:\BEK на локальном компьютере и найдите новый выходной файл.
Откройте файл в Блокноте. Если скрипт выполнен правильно, вы найдете фразу BitLocker Extension Key Protector в верхней строке файла, если прокрутите страницу справа.
Разблокировка подключенного диска
Теперь вы готовы разблокировать зашифрованный диск.
На виртуальной машине восстановления в службе управления дисками подключенный зашифрованный диск подключен к сети, если он еще не подключен. Обратите внимание на букву диска зашифрованного тома BitLocker.
В командной строке введите следующую команду.
Примечание.
В этой команде замените "<ENCRYPTED DRIVE LETTER>" буквой зашифрованного тома и "<. BEK FILE PATH>" с полным путем к созданному ФАЙЛу BEK в папке C:\BEK.
manage-bde -unlock <ENCRYPTED DRIVE LETTER>: -RecoveryKey <.BEK FILE PATH>
Например, если зашифрованный диск имеет значение F, а имя файла BEK — DiskEncryptionKeyFileName.BEK, выполните следующую команду:
manage-bde -unlock F: -RecoveryKey C:\BEK\DiskEncryptionKeyFileName.BEK
Если зашифрованный диск имеет значение F, а имя файла BEK — "EF7B2F5A-50C6-4637-9F13-7F599C12F85C. BEK", выполните следующую команду:
manage-bde -unlock F: -RecoveryKey C:\BEK\EF7B2F5A-50C6-4637-9F13-7F599C12F85C.BEK
Вы увидите выходные данные, как показано в следующем примере:
The file "C:\BEK\0D44E996-4BF3-4EB0-B990-C43C250614A4.BEK" successfully unlocked volume F:.
Теперь, когда вы можете получить доступ к тому, можно выполнить устранение неполадок и устранение неполадок при необходимости, например считывая журналы или выполняя скрипт.
Внимание
Процесс разблокировки предоставляет доступ к диску, но не расшифровывает диск. Диск остается зашифрованным после разблокировки. Если необходимо расшифровать диск, используйте команду manage-bde volume> -off, чтобы начать процесс расшифровки и состояние диска> bde <<для проверки хода расшифровки.
Завершив восстановление, и если диск управляется, можно перейти к замене диска ОС исходной виртуальной машины (управляемые диски). Если вместо этого диск неуправляем, можно использовать описанные здесь действия на основе ИНТЕРФЕЙСА командной строки. Замените диск ОС на исходной виртуальной машине.
Замените диск ОС исходной виртуальной машины (управляемые диски)
После восстановления диска откройте колонку "Диски" для виртуальной машины восстановления в портал Azure. Отключите копию исходного диска ОС виртуальной машины. Для этого найдите строку для связанного имени диска в разделе "Диски данных", выберите "X" в правой части этой строки и нажмите кнопку "Сохранить".
В портал Azure перейдите к исходной (сломанной) виртуальной машине и откройте колонку "Диски". Затем выберите "Заменить диск ОС", чтобы заменить существующий диск ОС восстановленным.
Выберите новый диск, который вы исправили, и введите имя виртуальной машины, чтобы проверить изменение. Если диск не отображается в списке, подождите 10–15 минут после отключения диска от виртуальной машины устранения неполадок.
Нажмите кнопку ОК.
Next Steps
Если у вас возникли проблемы с подключением к виртуальной машине, см . статью "Устранение неполадок подключений удаленного рабочего стола к виртуальной машине Azure". Проблемы с доступом к приложениям, работающим на виртуальной машине, см. в статье "Устранение неполадок с подключением к приложениям на виртуальной машине Windows".
Свяжитесь с нами для получения помощи
Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.