Desbloquear um disco criptografado para reparo offline
Aplica-se a: ✔️ VMs do Windows
Este artigo descreve como desbloquear um disco do sistema operacional criptografado em uma máquina virtual separada (chamada de VM de reparo) para habilitar a correção offline e a solução de problemas nesse disco.
Sintomas
Se você estiver reparando o disco do sistema operacional de uma VM do Windows offline, o disco poderá aparecer bloqueado quando estiver anexado à VM de reparo, conforme mostrado abaixo. Nesse caso, o Azure Disk Encryption (ADE) está habilitado no disco. Você não poderá fazer nenhuma mitigação nesse disco de uma VM de reparo até que o disco seja desbloqueado.
Tela de fundo
Alguns cenários de solução de problemas exigem que você execute o reparo offline de um disco virtual no Azure. Por exemplo, se uma VM do Windows estiver inacessível, exibir erros de disco ou não puder ser iniciada, você poderá executar as etapas de solução de problemas no disco do sistema operacional anexando-o a uma VM de reparo separada (também chamada de VM de recuperação ou VM de resgate).
No entanto, se o disco for criptografado usando o ADE, o disco permanecerá bloqueado e inacessível enquanto estiver anexado à VM de reparo até que você desbloqueie o disco. Para desbloquear o disco, você deve usar a mesma BEK (chave de criptografia) do BitLocker que foi originalmente usada para criptografá-lo. Esse BEK (e, opcionalmente, uma chave de criptografia de chave [KEK] que criptografa ou "encapsula" o BEK) será armazenado em um cofre de chaves do Azure gerenciado por sua organização.
Objetivo
Os procedimentos neste artigo descrevem métodos que você pode usar para anexar um disco do sistema operacional criptografado a uma VM de reparo e, em seguida, desbloquear esse disco. Depois que o disco for desbloqueado, você poderá repará-lo. Como etapa final, você pode substituir o disco do sistema operacional na VM original por essa versão recém-reparada.
Preparação
Execute as seguintes etapas antes de anexar o disco do sistema operacional com falha a uma VM de reparo:
- Confirme se o ADE está habilitado no disco.
- Determine se o disco do sistema operacional usa o ADE versão 1 (criptografia de passagem dupla) ou o ADE versão 2 (criptografia de passagem única).
- Determine se o disco do sistema operacional é gerenciado ou não gerenciado.
- Selecione o método para anexar o disco a uma VM de reparo e desbloquear o disco.
Confirme se o ADE está habilitado no disco
Você pode executar essa etapa no portal do Azure, no PowerShell ou na CLI do Azure (interface de linha de comando do Azure).
Portal do Azure
Exiba a folha Visão geral da VM com falha no portal do Azure. Abaixo de Disco, a criptografia de disco do Azure aparecerá como Habilitada ou Não Habilitada, conforme mostrado na captura de tela a seguir.
PowerShell
Você pode usar o cmdlet para determinar se o sistema operacional e/ou os volumes de dados de uma VM são criptografados usando o Get-AzVmDiskEncryptionStatus
ADE. A saída de exemplo a seguir indica que a criptografia ADE está habilitada no volume do sistema operacional:
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
Para obter mais informações sobre o Get-AzureRmDiskEncryptionStatus
cmdlet, consulte Get-AzVMDiskEncryptionStatus (Az.Compute).
CLI do Azure
Você pode usar o az vm encryption show
comando na CLI do Azure com a consulta disks[].encryptionSettings[].enabled
acrescentada para determinar se o ADE está habilitado nos discos de uma VM. A saída a seguir indica que a criptografia ADE está habilitada.
az vm encryption show --name MyVM --resource-group MyResourceGroup --query "disks[].encryptionSettings[].enabled"
[
true
]
Para obter mais informações sobre o az vm encryption show
comando, consulte az vm encryption show.
Observação
Reparo offline para discos não criptografados
Se você determinar que o ADE não está habilitado no disco, consulte o artigo a seguir para obter instruções sobre como anexar um disco a uma VM de reparo: Solucionar problemas de uma VM do Windows anexando o disco do sistema operacional a uma VM de recuperação por meio do portal do Azure
Determine se o disco do sistema operacional usa o ADE versão 1 (criptografia de passagem dupla) ou o ADE versão 2 (criptografia de passagem única)
Você pode saber o número da versão do ADE no portal do Azure abrindo as propriedades da VM e clicando em Extensões para abrir a folha Extensões. Na folha Extensões , exiba o número de versão atribuído a AzureDiskEncryption. Se o número da versão for 1, o disco usará criptografia de passagem dupla. Se o número da versão for 2 ou uma versão posterior, o disco usará criptografia de passagem única.
Se você determinar que seu disco usa o ADE versão 1 (criptografia de passagem dupla), poderá acessar a Resolução #3: Método manual para desbloquear um disco criptografado em uma VM de reparo.
Determinar se o disco do sistema operacional é gerenciado ou não gerenciado
Se você não souber se o disco do sistema operacional é gerenciado ou não gerenciado, consulte Determinar se o disco do sistema operacional é gerenciado ou não gerenciado.
Se você souber que o disco do sistema operacional é um disco não gerenciado, vá para Resolução #3: Método manual para desbloquear um disco criptografado em uma VM de reparo.
Selecione o método para anexar o disco a uma VM de reparo e desbloquear o disco
Você deve escolher um dos três métodos para anexar o disco a uma VM de reparo e desbloquear o disco:
- Se você determinou que o disco é gerenciado e criptografado usando o ADE versão 2 ou posterior (criptografia de passagem única) e sua infraestrutura e política da empresa permitem que você atribua um endereço IP público a uma VM de reparo, use a Resolução #1: método automatizado para desbloquear um disco criptografado em uma VM de reparo.
- Se o disco for gerenciado e criptografado usando o ADE versão 2 ou posterior (criptografia de passagem única), mas a infraestrutura ou a política da empresa impedir que você atribua um endereço IP público a uma VM de reparo, use a Resolução #2: método semiautomatizado para desbloquear um disco criptografado em uma VM de reparo. (Outro motivo para escolher esse método é se você não tiver as permissões para criar um grupo de recursos no Azure.)
- Se um desses métodos falhar ou se o disco não for gerenciado ou criptografado usando o ADE versão 1 (criptografia de passagem dupla), use a Resolução #3: método manual para desbloquear um disco criptografado em uma VM de reparo.
Resolução #1: Método automatizado para desbloquear um disco criptografado em uma VM de reparo
Esse método depende de comandos az vm repair para criar automaticamente uma VM de reparo, anexar o disco do sistema operacional com falha e desbloquear o disco se ele estiver criptografado. Ele funciona apenas para discos gerenciados criptografados de passagem única e requer o uso de endereço IP público para a VM de reparo. Esse método desbloqueia o disco criptografado, independentemente de a chave de criptografia do BitLocker (BEK) ser desencapsulada ou encapsulada usando uma chave de criptografia de chave (KEK).
Para reparar a VM usando esse método automatizado, consulte Reparar uma VM do Windows usando os comandos de reparo da Máquina Virtual do Azure.
Observação
Se a solução de problemas automática falhar, prossiga com a Resolução #2: método semiautomatizado para desbloquear um disco criptografado em uma VM de reparo.
Resolução #2: Método semiautomatizado para desbloquear um disco criptografado em uma VM de reparo
A resolução semiautomatizada desbloqueia um disco gerenciado criptografado de passagem única sem exigir um endereço IP público para a VM de reparo.
Usando esse procedimento, você cria manualmente uma VM que tem o disco do sistema operacional da VM de origem (com falha) anexado. Quando você anexa o disco criptografado no momento em que cria a VM, a VM busca automaticamente o BEK do cofre de chaves do Azure e o armazena em um volume BEK. Em seguida, você usa uma pequena série de etapas para acessar o BEK e desbloquear o disco criptografado. Durante esse processo, o BEK é desempacotado automaticamente, se necessário.
No portal do Azure, tire um instantâneo do disco do sistema operacional criptografado na VM de origem (com falha).
Crie um disco a partir desse instantâneo.
Para o novo disco, escolha o mesmo local e zona de disponibilidade que foram atribuídos à VM de origem. Observe que você também precisará duplicar essas mesmas configurações ao criar a VM de reparo na próxima etapa.
Crie uma VM baseada no Windows Server 2016 Datacenter para usar como uma VM de reparo. certifique-se de atribuir a VM à mesma região e zona de disponibilidade usada para o novo disco que você criou na etapa 2.
Na página Discos do assistente Criar uma Máquina Virtual, anexe como disco de dados o novo disco que você acabou de criar a partir do instantâneo.
Importante
Certifique-se de adicionar o disco durante a criação da VM. É somente durante a criação da VM que as configurações de criptografia são detectadas. Isso permite que um volume que contém o BEK seja adicionado automaticamente.
Depois que a VM de reparo for criada, entre na VM e abra o Gerenciamento de Disco (Diskmgmt.msc). No Gerenciamento de disco, localize o volume BEK. Por padrão, nenhuma letra de unidade é atribuída a esse volume.
Para atribuir uma letra de unidade ao volume BEK, clique com o botão direito do mouse no volume BEK e selecione Alterar Letra de Unidade e Caminhos.
Selecione Adicionar para atribuir uma letra de unidade ao volume BEK. Nesse processo, a letra padrão é mais frequentemente H. Selecione OK.
No Explorador de Arquivos, selecione Este PC no painel esquerdo. Agora você verá o volume BEK listado. Além disso, observe o volume marcado por um ícone de cadeado. Esse é o disco criptografado que você anexou ao criar a VM. (No exemplo a seguir, o disco criptografado recebe a letra de unidade G.)
Para desbloquear o disco criptografado, você deve ter o nome do arquivo .bek dentro do volume BEK. No entanto, por padrão, os arquivos no volume BEK estão ocultos. Em um prompt de comando, digite o seguinte comando para mostrar os arquivos ocultos:
dir <DRIVE LETTER ASSIGNED TO BEK VOLUME>: /a:h /b /s
Por exemplo, se a letra da unidade atribuída ao volume BEK for H, você digitará o seguinte comando:
dir H: /a:h /b /s
Você deve ver uma saída semelhante à seguinte:
H:\66ABF036-E331-4B67-A667-D1A8B47B4DAB.BEK H:\System Volume Information
A primeira entrada é o nome do caminho do arquivo BEK. Você usará o nome do caminho completo na próxima etapa.
No prompt de comando, digite o seguinte comando:
manage-bde -unlock <ENCRYPTED DRIVE LETTER>: -RecoveryKey <.BEK FILE PATH>
Por exemplo, se G for a unidade criptografada e o arquivo BEK for o mesmo listado no exemplo anterior, você digitará o seguinte:
manage-bde -unlock G: -RecoveryKey H:\66ABF036-E331-4B67-A667-D1A8B47B4DAB.BEK
Você verá uma mensagem que indica que o arquivo BEK desbloqueou com êxito o volume especificado. E no Explorador de Arquivos, você pode ver que a unidade não está mais bloqueada.
Agora que você pode acessar o volume, pode concluir a solução de problemas e as mitigações conforme necessário, por exemplo, lendo logs ou executando um script.
Depois de reparar o disco, use o procedimento a seguir para substituir o disco do sistema operacional da VM de origem pelo disco recém-reparado.
Resolução #3: Método manual para desbloquear um disco criptografado em uma VM de reparo
Você pode desbloquear o disco manualmente seguindo este procedimento se precisar desbloquear um disco criptografado de passagem dupla (ADE versão 1) ou um disco não gerenciado, ou se os outros métodos falharem.
Crie a VM de reparo e anexe o disco do sistema operacional da VM de origem
Se o disco do sistema operacional criptografado da VM de origem for um disco gerenciado, siga as etapas 1 a 4 no Método 2 para anexar uma cópia do disco bloqueado a uma VM de reparo.
Se o processo de criação de uma nova VM de reparo que tenha o disco criptografado anexado travar ou falhar (por exemplo, ele retornará uma mensagem informando que "contém configurações de criptografia e, portanto, não pode ser usado como um disco de dados"), você poderá primeiro criar a VM sem anexar o disco criptografado. Depois que a VM de reparo for criada, anexe o disco criptografado à VM por meio do portal do Azure.
Se o disco do sistema operacional criptografado da VM de origem for um disco não gerenciado, consulte Anexar um disco não gerenciado a uma VM para reparo offline.
Instalar o módulo Az PowerShell na VM de reparo
O método de resolução manual para desbloquear um disco criptografado offline depende do módulo Az no PowerShell. Portanto, você precisa instalar este módulo na VM de reparo.
Conecte-se à VM de reparo por meio do RDP.
Na VM de reparo, no Gerenciador do Servidor, selecione Servidor Local e desative a Configuração de Segurança Aprimorada do IE para Administradores.
Na VM de reparo, abra uma janela do PowerShell com privilégios elevados.
Defina o protocolo de segurança de APIs HTTP como TLS 1.2 para a sessão atual inserindo o comando a seguir.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Observação
O protocolo de segurança será revertido para o valor padrão depois que você fechar a sessão atual.
Baixar a última versão do pacote Nuget:
Install-PackageProvider -Name "Nuget" -Force
Quando o prompt retornar, instale a versão mais recente do pacote PowerShellGet.
Install-Module -Name PowerShellGet -Force
Quando o prompt retornar, feche a janela do PowerShell. Em seguida, abra uma nova janela do PowerShell com privilégios elevados para iniciar uma nova sessão do PowerShell.
No prompt do PowerShell, instale a versão mais recente do módulo Az do Azure:
Install-Module -Name Az -Scope AllUsers -Repository PSGallery -Force
Quando o prompt retornar, instale o pacote Az.Account 1.9.4:
Install-Module -Name Az.Accounts -Scope AllUsers -RequiredVersion "1.9.4" -Repository PSGallery -Force
Recupere o nome do arquivo BEK
No portal do Azure, navegue até o cofre de chaves que foi usado para criptografar a VM de origem. Se você não souber o nome do cofre de chaves, insira o seguinte comando no prompt no Azure Cloud Shell e procure o valor ao lado de "sourceVault" na saída:
az vm encryption show --name MyVM --resource-group MyResourceGroup
No menu à esquerda, selecione Políticas de acesso.
Nas políticas de acesso do cofre de chaves, verifique se a conta de usuário que você usa para entrar em sua assinatura do Azure recebe as seguintes permissões: Operações de Gerenciamento de Chaves: Obter, Listar, Atualizar, Criar Operações Criptográficas: Desencapsular Segredo da Chave Permissões: Obter, Listar, Definir
Retorne à VM de reparo e à janela do PowerShell com privilégios elevados.
Defina o protocolo de segurança de APIs HTTP como TLS 1.2 para a sessão atual inserindo o comando a seguir.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Insira o seguinte comando para iniciar o processo de entrada em sua assinatura do Azure, substituindo "[SubscriptionID]" pela ID da assinatura do Azure:
Add-AzAccount -SubscriptionID <SubscriptionID>
Siga os prompts para concluir o processo de entrada em sua assinatura do Azure.
Na VM de reparo, abra uma janela do ISE do Windows PowerShell com privilégios elevados e expanda o painel de script (superior).
Na janela do ISE do PowerShell com privilégios elevados, cole o script a seguir no painel de script vazio. Substitua "myVM" pela VM de origem (com falha) e "myKeyVault" pelo nome do cofre de chaves.
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" }
Selecione Executar Script para executar o script.
Na saída, procure o valor abaixo de DiskEncryptionKeyFileName para o nome do arquivo BEK.
Na saída de exemplo a seguir, o nome do arquivo BEK (nome secreto + o ". BEK") é AB4FE364-4E51-4034-8E09-0087C3D51C18. BEK. Registre esse valor porque ele será usado na próxima etapa. (Se você vir dois volumes duplicados, o volume que tem o carimbo de data/hora mais recente é o arquivo BEK atual usado pela VM de reparo.)
Se o valor do Tipo de Conteúdo na saída for BEK Encapsulado, como no exemplo acima, vá para Baixar e desencapsular o BEK. Se o valor do Tipo de Conteúdo na saída for simplesmente BEK, como no exemplo a seguir, vá para a próxima seção para baixar o BEK para a VM de reparo.
Baixe o BEK para a VM de reparo
Na VM de reparo, crie uma pasta chamada "BEK" (sem as aspas) na raiz do volume C.
Copie e cole o script de exemplo a seguir em um painel de script vazio do ISE do PowerShell.
Observação
Substitua os valores de "$vault" e "$bek" pelos valores do seu ambiente. Para o valor $bek, use o nome do segredo obtido no último procedimento. (O nome secreto é o nome do arquivo BEK sem a extensão de nome de arquivo ".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)
Na janela ISE do PowerShell, selecione Executar Script. Se o script for executado com êxito, não haverá mensagem de saída ou conclusão. No entanto, um novo arquivo será criado na pasta C:\BEK . (O A pasta C:\BEK já deve existir.)
Baixe e desembrulhe o BEK
Na VM de reparo, crie uma pasta chamada "BEK" (sem as aspas) na raiz do volume C.
Registre os seguintes valores no Bloco de Notas. Você será solicitado a fornecê-los quando o script for executado.
secretUrl. Essa é a URL do segredo armazenado no cofre de chaves. Uma URL secreta válida usa o seguinte formato: <<
https://[key
> nome do cofre].vault.azure.net/secrets/[BEK Name]/[version ID]>Para encontrar esse valor no portal do Azure, navegue até a folha Segredos no cofre de chaves. Selecione o nome BEK que foi determinado na etapa anterior, Recupere o nome do arquivo BEK. Selecione o identificador da versão atual e leia a URL do Identificador Secreto abaixo de Propriedades. (Você pode copiar esse URL para a área de transferência.)
keyVaultResourceGroup. O grupo de recursos do cofre de chaves.
kekUrl. Essa é a URL da chave usada para proteger o BEK. Uma URL kek válida usa o seguinte formato: <<
https://[key
> nome do cofre].vault.azure.net/keys/[nome da chave]/[ID da versão]>Você pode obter esse valor no portal do Azure navegando até a folha Chaves no cofre de chaves, selecionando o nome da chave usada como KEK, selecionando o identificador de versão atual e lendo a URL do Identificador de Chave abaixo de Propriedades. (Você pode copiar esse URL para a área de transferência.)
secretFilePath. Este é o nome do caminho completo para o local em que armazenar o arquivo BEK. Por exemplo, se o nome do arquivo BEK for AB4FE364-4E51-4034-8E06-0087C3D51C18. BEK, você pode inserir C:\BEK\AB4FE364-4E51-4034-8E06-0087C3D51C18. BEK. (O A pasta C:\BEK já deve existir.)
Navegue até a página a seguir para baixar o script usado para gerar o arquivo BEK para desbloquear o disco criptografado.
Na página, selecione Raw.
Copie e cole o conteúdo do script em um painel de script vazio em uma janela do ISE do PowerShell com privilégios elevados na VM de reparo.
Selecione Executar script.
Quando solicitado, forneça os valores que você registrou antes de executar o script. Se você for solicitado por uma mensagem de Repositório Não Confiável, selecione Sim para Todos. Se o script for executado com êxito, um novo arquivo será criado na pasta C:\BEK . (Esta pasta já deve existir.)
Verifique se o script foi executado com êxito
Navegue até a pasta C:\BEK no computador local e localize o novo arquivo de saída.
Abra o arquivo no Bloco de notas. Se o script foi executado corretamente, você encontrará a frase BitLocker Extension Key Protector na linha superior do arquivo se rolar para a direita.
Desbloqueie o disco conectado
Agora você está pronto para desbloquear o disco criptografado.
Na VM de reparo, no Gerenciamento de Disco, coloque o disco criptografado anexado online se ele ainda não estiver online. Observe a letra da unidade do volume criptografado do BitLocker.
Em um prompt de comando, insira o comando a seguir.
Observação
Neste comando, substitua "<ENCRYPTED DRIVE LETTER"> pela letra do volume criptografado e "<. BEK FILE PATH>" com o caminho completo para o arquivo BEK recém-criado na pasta C:\BEK.
manage-bde -unlock <ENCRYPTED DRIVE LETTER>: -RecoveryKey <.BEK FILE PATH>
Por exemplo, se a unidade criptografada for F e o nome do arquivo BEK for "DiskEncryptionKeyFileName.BEK", você executará o seguinte comando:
manage-bde -unlock F: -RecoveryKey C:\BEK\DiskEncryptionKeyFileName.BEK
Se a unidade criptografada for F e o nome do arquivo BEK for "EF7B2F5A-50C6-4637-9F13-7F599C12F85C. BEK", você executaria o seguinte comando:
manage-bde -unlock F: -RecoveryKey C:\BEK\EF7B2F5A-50C6-4637-9F13-7F599C12F85C.BEK
Você verá uma saída como no exemplo a seguir:
The file "C:\BEK\0D44E996-4BF3-4EB0-B990-C43C250614A4.BEK" successfully unlocked volume F:.
Agora que você pode acessar o volume, pode solucionar problemas e mitigar conforme necessário, por exemplo, lendo logs ou executando um script.
Importante
O processo de desbloqueio fornece acesso ao disco, mas não descriptografa o disco. O disco permanece criptografado depois que você o desbloqueia. Se você precisar descriptografar o disco, use o comando manage-bde <volume> -off para iniciar o processo de descriptografia e manage-bde <drive> -status para verificar o progresso da descriptografia.
Quando os reparos forem concluídos e se o disco for gerenciado, você poderá prosseguir para Substituir o disco do sistema operacional da VM de origem (discos gerenciados). Se, em vez disso, o disco não for gerenciado, você poderá usar as etapas baseadas em CLI descritas aqui: Substituir o disco do sistema operacional na VM de origem
Substituir o disco do sistema operacional da VM de origem (discos gerenciados)
Depois de reparar o disco, abra a folha Discos para a VM de reparo no portal do Azure. Desanexe a cópia do disco de SO da VM de origem. Para fazer isso, localize a linha do nome do disco associado em Discos de dados, selecione o "X" no lado direito dessa linha e selecione Salvar.
No portal do Azure, navegue até a VM de origem (quebrada) e abra a folha Discos . Em seguida, selecione Trocar disco do sistema operacional para substituir o disco do sistema operacional existente pelo que você reparou.
Selecione o novo disco que você reparou e insira o nome da VM para verificar a alteração. Se você não vir o disco na lista, aguarde 10 a 15 minutos depois de desanexar o disco da VM de solução de problemas.
Clique em OK.
Próximas etapas
Se você estiver tendo problemas para se conectar à sua VM, consulte Solução de problemas de conexões de área de trabalho remota para uma VM do Azure. Para problemas de acesso a aplicativos em execução em sua VM, consulte Solução de problemas de conectividade de aplicativos em uma VM do Windows.
Entre em contato conosco para obter ajuda
Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.