VMs blindadas para locatários - Criando dados de blindagem para definir uma VM blindada

Um arquivo de dados de blindagem (também chamado de um arquivo de dados de provisionamento ou arquivo PDK) é um arquivo criptografado que um locatário ou proprietário de VM cria para proteger as informações de configuração de VM importantes, como a senha do administrador, RDP e outros certificados relacionados à identidade, credenciais de associação de domínio e assim por diante. Este tópico fornece informações sobre como criar um arquivo de dados de blindagem. Antes de criar o arquivo, você deve obter um disco de modelo do provedor de serviços de hospedagem ou criar um disco de modelo, conforme descrito em VMs blindadas para locatários – Criando um disco de modelo (opcional).

Para obter uma lista e um diagrama do conteúdo de um arquivo de dados de blindagem, confira O que são dados de blindagem e por que isso é necessário?.

Importante

As etapas nesta seção devem ser concluídas em um computador separado e confiável fora da malha protegida. Normalmente, o proprietário da VM (locatário) criaria os dados de blindagem para suas VMs, não para os administradores de malha.

Para se preparar para criar um arquivo de dados de blindagem, execute as seguintes etapas:

Em seguida, você pode criar o arquivo de dados de blindagem:

(Opcional) Obter um certificado para Conexão de Área de Trabalho Remota

Como os locatários só podem se conectar às VMs blindadas usando a Conexão de Área de Trabalho Remota ou outras ferramentas de gerenciamento remoto, é importante garantir que eles possam verificar se estão se conectando ao ponto de extremidade certo (ou seja, não há um intermediário interceptando a conexão).

Uma maneira de verificar se você está se conectando ao servidor pretendido é instalar e configurar um certificado para os Serviços de Área de Trabalho Remota apresentarem quando você inicia uma conexão. O computador cliente que se conecta ao servidor verificará se ele confia no certificado e exibirá um aviso se não confiar. Em geral, para garantir que o cliente de conexão confie no certificado, os certificados RDP são emitidos da PKI do locatário. Mais informações sobre Como usar certificados nos Serviços de Área de Trabalho Remota podem ser encontradas no TechNet.

Para ajudá-lo a decidir se você precisa obter um certificado RDP personalizado, considere o seguinte:

  • Se você estiver apenas testando VMs blindadas em um ambiente de laboratório, não precisará de um certificado RDP personalizado.
  • Se a VM estiver configurada para ingressar em um domínio do Active Directory, um certificado de computador normalmente será emitido pela autoridade de certificação da sua organização automaticamente e usado para identificar o computador durante conexões RDP. Você não precisa de um certificado RDP personalizado.
  • Se a VM não estiver ingressada no domínio, mas você quiser verificar se está se conectando ao computador correto ao usar a Área de Trabalho Remota, considere o uso de certificados RDP personalizados.

Dica

Ao selecionar um certificado RDP para incluir no arquivo de dados de blindagem, use um certificado curinga. Um arquivo de dados de blindagem pode ser usado para criar um número ilimitado de VMs. Como cada VM compartilhará o mesmo certificado, um certificado curinga garante que o certificado será válido independentemente do nome do host da VM.

Criar um arquivo de resposta

Como o disco de modelo assinado no VMM é generalizado, os locatários são obrigados a fornecer um arquivo de resposta para especializar suas VMs blindadas durante o processo de provisionamento. O arquivo de resposta (geralmente chamado de arquivo autônomo) pode configurar a VM para sua função pretendida, ou seja, ele pode instalar recursos do Windows, registrar o certificado RDP criado na etapa anterior e executar outras ações personalizadas. Ele também fornecerá as informações necessárias para a instalação do Windows, incluindo a senha do administrador padrão e a chave do produto (Product Key).

Para obter informações sobre como obter e usar a função New-ShieldingDataAnswerFile para gerar um arquivo de resposta (arquivo Unattend.xml) para criar VMs blindadas, consulte Gerar um arquivo de resposta usando a função New-ShieldingDataAnswerFile. Usando a função, você pode gerar, com mais facilidade, um arquivo de resposta que reflete opções como as seguintes:

  • A VM deve ser ingressada no domínio no final do processo de inicialização?
  • Você usará uma licença de volume ou uma chave do produto (Product Key) específica por VM?
  • Você está usando DHCP ou IP estático?
  • Você usará um certificado RDP personalizado que será usado para provar que a VM pertence à sua organização?
  • Você deseja executar um script no final da inicialização?

Os arquivos de resposta usados nos arquivos de dados de blindagem serão usados em todas as VMs criadas usando esse arquivo de dados de blindagem. Portanto, você não deve codificar nenhuma informação específica da VM no arquivo de resposta. O VMM dá suporte a algumas cadeias de caracteres de substituição (consulte a tabela abaixo) no arquivo autônomo para lidar com valores de especialização que podem mudar de VM para VM. Você não precisa usá-los. No entanto, se eles estiverem presentes, o VMM tirará proveito deles.

Ao criar um arquivo unattend.xml para VMs blindadas, tenha em mente as seguintes restrições:

  • Se você estiver usando o VMM para gerenciar seu datacenter, o arquivo autônomo deverá resultar na desativação da VM após a configuração. Isso serve para permitir que o VMM saiba quando ele deve relatar ao locatário que a VM terminou o provisionamento e está pronta para uso. O VMM ligará automaticamente a VM novamente depois de detectar que ela foi desativada durante o provisionamento.

  • Habilite o RDP e a regra de firewall correspondente para que você possa acessar a VM depois que ela tiver sido configurada. Você não pode usar o console do VMM para acessar VMs blindadas, portanto, o RDP será necessário para se conectar à sua VM. Se você preferir gerenciar seus sistemas com comunicação remota do Windows PowerShell, verifique se o WinRM também está habilitado.

  • As únicas cadeias de caracteres de substituição com suporte em arquivos autônomos de VM blindada são as seguintes:

    Elemento substituível Cadeia de caracteres de substituição
    ComputerName @ComputerName@
    TimeZone @TimeZone@
    ProductKey @ProductKey@
    IPAddr4-1 @IP4Addr-1@
    IPAddr6-1 @IP6Addr-1@
    MACAddr-1 @MACAddr-1@
    Prefixo-1-1 @Prefix-1-1@
    NextHop-1-1 @NextHop-1-1@
    Prefixo-1-2 @Prefix-1-2@
    NextHop-1-2 @NextHop-1-2@

    Se você tiver mais de uma NIC, poderá adicionar várias cadeias de caracteres de substituição para a configuração de IP incrementando o primeiro dígito. Por exemplo, para definir o endereço IPv4, a sub-rede e o gateway para 2 NICs, você usaria as seguintes cadeias de caracteres de substituição:

    Cadeia de caracteres de substituição Substituição de exemplo
    @IP4Addr-1@ 192.168.1.10/24
    @MACAddr-1@ Ethernet
    @Prefix-1-1@ 24
    @NextHop-1-1@ 192.168.1.254
    @IP4Addr-2@ 10.0.20.30/24
    @MACAddr-2@ Ethernet 2
    @Prefix-2-1@ 24
    @NextHop-2-1@ 10.0.20.1

Ao usar cadeias de caracteres de substituição, é importante garantir que as cadeias de caracteres sejam preenchidas durante o processo de provisionamento da VM. Se uma cadeia de caracteres como @ProductKey@ não for fornecida no momento da implantação, deixando o nó <ProductKey> no arquivo autônomo em branco, o processo de especialização falhará e você não poderá se conectar à VM.

Além disso, observe que as cadeias de caracteres de substituição relacionadas à rede no final da tabela só serão usadas se você estiver aproveitando Pools de Endereço IP Estático do VMM. Seu provedor de serviços de hospedagem deve ser capaz de informar se essas cadeias de caracteres de substituição são necessárias. Para obter mais informações sobre endereços IP estáticos em modelos do VMM, consulte o seguinte na documentação do VMM:

Por fim, é importante observar que o processo de implantação de VM blindada criptografará apenas a unidade do sistema operacional. Se você implantar uma VM blindada com uma ou mais unidades de dados, é altamente recomendável adicionar um comando autônomo ou configuração de Política de Grupo no domínio do locatário para criptografar automaticamente as unidades de dados.

Obter o arquivo do catálogo de assinatura de volume

Os arquivos de dados de blindagem também contêm informações sobre os discos de modelo no qual um locatário confia. Os locatários adquirem as assinaturas de disco de discos de modelo confiáveis na forma de um arquivo VSC (catálogo de assinatura de volume). Essas assinaturas são validadas quando uma nova VM é implantada. Se nenhuma das assinaturas no arquivo de dados de blindagem corresponder ao disco de modelo que está tentando ser implantado com a VM (ou seja, ela foi modificada ou trocada por um disco diferente, potencialmente mal-intencionado), o processo de provisionamento falhará.

Importante

Embora o VSC garanta que um disco não tenha sido adulterado, ainda é importante que o locatário confie no disco em primeiro lugar. Se você for o locatário e o disco de modelo for fornecido pelo hoster, implante uma VM de teste usando esse disco de modelo e execute suas próprias ferramentas (antivírus, verificações de vulnerabilidade e assim por diante) para validar se o disco está, de fato, em um estado em que você confia.

Há duas maneiras de adquirir o VSC de um disco de modelo:

  1. O hoster (ou locatário, se o locatário tiver acesso ao VMM) usará os cmdlets do PowerShell do VMM para salvar o VSC e o fornecerá ao locatário. Isso pode ser executado em qualquer computador com o console do VMM instalado e configurado para gerenciar o ambiente do VMM da malha de hospedagem. Os cmdlets do PowerShell para salvar o VSC são:

    $disk = Get-SCVirtualHardDisk -Name "templateDisk.vhdx"
    
    $vsc = Get-SCVolumeSignatureCatalog -VirtualHardDisk $disk
    
    $vsc.WriteToFile(".\templateDisk.vsc")
    
  2. O locatário tem acesso ao arquivo de disco de modelo. Esse pode ser o caso se o locatário criar um disco de modelo a ser carregado em um provedor de serviços de hospedagem ou se o locatário puder baixar o disco de modelo do hoster. Nesse caso, sem o VMM na imagem, o locatário executaria o seguinte cmdlet (instalado com o recurso Ferramentas de VM Blindada, parte das Ferramentas de Administração de Servidor Remoto):

    Save-VolumeSignatureCatalog -TemplateDiskPath templateDisk.vhdx -VolumeSignatureCatalogPath templateDisk.vsc
    

Selecionar malhas confiáveis

O último componente no arquivo de dados de blindagem está relacionado ao proprietário e aos guardiões de uma VM. Os guardiões são usados para designar o proprietário de uma VM blindada e as malhas protegidas nas quais ela está autorizada a ser executada.

Para autorizar uma malha de hospedagem a executar uma VM blindada, você deve obter os metadados do guardião do Serviço Guardião de Host do provedor de serviços de hospedagem. Muitas vezes, o provedor de serviços de hospedagem fornecerá esses metadados por meio de suas ferramentas de gerenciamento. Em um cenário empresarial, você pode ter acesso direto para obter os metadados por conta própria.

Você ou seu provedor de serviços de hospedagem podem obter os metadados do guardião do HGS executando uma das seguintes ações:

  • Obtenha os metadados do guardião diretamente do HGS executando o seguinte comando do Windows PowerShell ou navegando até o site e salvando o arquivo XML exibido:

    Invoke-WebRequest 'http://hgs.bastion.local/KeyProtection/service/metadata/2014-07/metadata.xml' -OutFile .\RelecloudGuardian.xml
    
  • Obtenha os metadados do guardião do VMM usando os cmdlets do PowerShell do VMM:

    $relecloudmetadata = Get-SCGuardianConfiguration
    $relecloudmetadata.InnerXml | Out-File .\RelecloudGuardian.xml -Encoding UTF8
    

Obtenha os arquivos de metadados do guardião para cada malha protegida na qual você deseja autorizar suas VMs blindadas a serem executadas antes de continuar.

Criar um arquivo de dados de blindagem e adicionar guardiões usando o assistente de Arquivo de Dados de Blindagem

Execute o assistente de Arquivo de Dados de Blindagem para criar um arquivo de dados de blindagem (PDK). Aqui, você adicionará o certificado RDP, o arquivo autônomo, os catálogos de assinatura de volume, o guardião do proprietário e os metadados do guardião baixados obtidos na etapa anterior.

  1. Instale Ferramentas de Administração de Servidor Remoto > Ferramentas de Administração de Recursos > Ferramentas de VM Blindada em seu computador usando o Gerenciador do Servidor ou o seguinte comando do Windows PowerShell:

    Install-WindowsFeature RSAT-Shielded-VM-Tools
    
  2. Abra o Assistente de Arquivo de Dados de Blindagem na seção Ferramentas de Administrador no menu Iniciar ou executando o seguinte executável C:\Windows\System32\ShieldingDataFileWizard.exe.

  3. Na primeira página, use a segunda caixa de seleção de arquivo para escolher um local e um nome de arquivo para o arquivo de dados de blindagem. Normalmente, você nomearia um arquivo de dados de blindagem após a entidade que possui todas as VMs criadas com esses dados de blindagem (por exemplo, RH, TI, Finanças) e a função de carga de trabalho em execução (por exemplo, servidor de arquivos, servidor Web ou qualquer outra coisa configurada pelo arquivo autônomo). Deixe o botão de opção definido como Dados de blindagem para modelos blindados.

    Observação

    No Assistente de Arquivo de Dados de Blindagem, você observará as duas opções abaixo:

    • Blindagem de dados para modelos blindados
    • Blindagem de dados para VMs existentes e modelos não blindados
      A primeira opção é usada ao criar novas VMs blindadas de modelos blindados. A segunda opção permite que você crie dados de blindagem que só podem ser usados ao converter VMs existentes ou criar VMs blindadas de modelos não blindados.

    Assistente de Arquivo de Dados de Blindagem, seleção de arquivos

    Além disso, você deve escolher se as VMs criadas usando esse arquivo de dados de blindagem serão verdadeiramente blindadas ou configuradas no modo de "criptografia com suporte". Para obter mais informações sobre essas duas opções, confira Quais são os tipos de máquinas virtuais que uma malha protegida pode executar?.

    Importante

    Preste atenção à próxima etapa, pois ela define o proprietário de suas VMs blindadas e em quais malhas suas VMs blindadas podem ser executadas.
    A posse do guardião do proprietário é necessária para alterar posteriormente uma VM blindada existente de Blindada para Criptografia com suporte ou vice-versa.

  4. Sua meta nesta etapa é dobrada:

    • Criar ou selecionar um responsável proprietário que represente você como o proprietário da VM

    • Importe o guardião que você baixou do Serviço Guardião de Host do provedor de hospedagem (ou seu próprio) na etapa anterior

    Para designar um guardião proprietário existente, selecione o guardião apropriado no menu suspenso. Somente os guardiões instalados em seu computador local com as chaves privadas intactas aparecerão nesta lista. Você também pode criar seu próprio guardião proprietário selecionando Gerenciar Guardiões Locais no canto inferior direito, clicando em Criar e concluindo o assistente.

    Em seguida, importamos os metadados do guardião baixados anteriormente novamente usando a página Proprietário e Guardiões. Selecione Gerenciar Guardiões Locais no canto inferior direito. Use o recurso Importar para importar o arquivo de metadados do guardião. Clique em OK depois de importar ou adicionar todos os guardiões necessários. Como prática recomendada, nomeie os guardiões após o provedor de serviços de hospedagem ou o datacenter corporativo que eles representam. Por fim, selecione todos os guardiões que representam os datacenters nos quais sua VM blindada está autorizada a ser executada. Você não precisa selecionar o guardião proprietário novamente. Clique em Avançar quando terminar.

    Assistente de Arquivo de Dados de Blindagem, proprietário e guardiões

  5. Na página Qualificadores de ID de Volume, clique em Adicionar para autorizar um disco de modelo assinado no arquivo de dados de blindagem. Quando você selecionar um VSC na caixa de diálogo, ele mostrará informações sobre o nome, a versão e o certificado do disco que foi usado para assiná-lo. Repita esse processo para cada disco de modelo que você deseja autorizar.

  6. Na página Valores de Especialização, clique em Procurar para selecionar o arquivo unattend.xml que será usado para especializar suas VMs.

    Use o botão Adicionar na parte inferior para incluir arquivos adicionais ao PDK necessários durante o processo de especialização. Por exemplo, se o arquivo autônomo estiver instalando um certificado RDP na VM (conforme descrito em Gerar um arquivo de resposta usando a função New-ShieldingDataAnswerFile), você deverá adicionar o arquivo PFX do certificado RDP e o script RDPCertificateConfig.ps1 aqui. Observe que todos os arquivos especificados aqui serão copiados automaticamente para C:\temp\ na VM criada. Seu arquivo autônomo deve esperar que os arquivos estejam nessa pasta ao referenciá-los por caminho.

  7. Examine suas seleções na próxima página e clique em Gerar.

  8. Feche o assistente depois que ele for concluído.

Criar um arquivo de dados de blindagem e adicionar guardiões usando o PowerShell

Como alternativa ao Assistente de Arquivo de Dados de Blindagem, você pode executar New-ShieldingDataFile para criar um arquivo de dados de blindagem.

Todos os arquivos de dados de blindagem precisam ser configurados com os certificados de proprietário e guardião corretos para autorizar suas VMs blindadas a serem executadas em uma malha protegida. Você pode verificar se tem guardiões instalados localmente executando Get-HgsGuardian. Os guardiões do proprietário têm chaves privadas, enquanto os responsáveis pelo datacenter normalmente não têm.

Se você precisar criar um guardião proprietário, execute o seguinte comando:

New-HgsGuardian -Name "Owner" -GenerateCertificates

Esse comando cria um par de certificados de assinatura e criptografia no repositório de certificados do computador local na pasta "Certificados Locais de VM Blindada". Você precisará dos certificados de proprietário e suas chaves privadas correspondentes para desproteger uma máquina virtual. Portanto, verifique se esses certificados são copiados em backup e protegidos contra roubo. Um invasor com acesso aos certificados de proprietário pode usá-los para iniciar sua máquina virtual blindada ou alterar sua configuração de segurança.

Se você precisar importar informações do guardião de uma malha protegida na qual deseja executar sua máquina virtual (seu datacenter primário, datacenters de backup etc.), execute o comando a seguir para cada arquivo de metadados recuperado de suas malhas protegidas.

Import-HgsGuardian -Name 'EAST-US Datacenter' -Path '.\EastUSGuardian.xml'

Dica

Se você usou certificados autoassinados ou os certificados registrados com o HGS expiraram, talvez seja necessário usar os sinalizadores -AllowUntrustedRoot e/ou -AllowExpired com o comando Import-HgsGuardian para ignorar as verificações de segurança.

Você também precisará obter um catálogo de assinatura de volume para cada disco de modelo que deseja usar com esse arquivo de dados de blindagem e um arquivo de resposta de dados de blindagem para permitir que o sistema operacional conclua suas tarefas de especialização automaticamente. Por fim, decida se deseja que sua VM seja totalmente blindada ou apenas habilitada para vTPM. Use -Policy Shielded para uma VM totalmente blindada ou -Policy EncryptionSupported para uma VM habilitada para vTPM que permita conexões básicas do console e do PowerShell Direct.

Quando tudo estiver pronto, execute o seguinte comando para criar o arquivo de dados de blindagem:

$viq = New-VolumeIDQualifier -VolumeSignatureCatalogFilePath 'C:\temp\marketing-ws2016.vsc' -VersionRule Equals
New-ShieldingDataFile -ShieldingDataFilePath "C:\temp\Marketing-LBI.pdk" -Policy EncryptionSupported -Owner 'Owner' -Guardian 'EAST-US Datacenter' -VolumeIDQualifier $viq -AnswerFile 'C:\temp\marketing-ws2016-answerfile.xml'

Dica

Se você estiver usando um certificado RDP personalizado, chaves SSH ou outros arquivos que precisam ser incluídos no arquivo de dados de blindagem, use o parâmetro -OtherFile para incluí-los. Você pode fornecer uma lista separada por vírgulas de caminhos de arquivo, como -OtherFile "C:\source\myRDPCert.pfx", "C:\source\RDPCertificateConfig.ps1"

No comando acima, o guardião chamado "Proprietário" (obtido de Get-HgsGuardian) poderá alterar a configuração de segurança da VM no futuro, enquanto o 'East-US Datacenter' pode executar a VM, mas não alterar suas configurações. Se você tiver mais de um guardião, separe os nomes dos guardiões com vírgulas como 'EAST-US Datacenter', 'EMEA Datacenter'. O qualificador de ID de volume especifica se você confia apenas na versão exata (Equals) do disco de modelo ou em versões futuras (GreaterThanOrEquals) também. O nome do disco e o certificado de autenticação devem corresponder exatamente à comparação de versão a ser considerada no momento da implantação. Você pode confiar em mais de um disco de modelo fornecendo uma lista separada por vírgulas de qualificadores de ID de volume para o parâmetro -VolumeIDQualifier. Por fim, se você tiver outros arquivos que precisam acompanhar o arquivo de resposta com a VM, use o parâmetro -OtherFile e forneça uma lista separada por vírgulas de caminhos de arquivo.

Consulte a documentação do cmdlet para New-ShieldingDataFile e New-VolumeIDQualifier para saber mais sobre maneiras adicionais de configurar o arquivo de dados de blindagem.

Referências adicionais