Máquina virtual blindada para inquilinos: Creación de datos de blindaje para definir una VM blindada

Se aplica a: Windows Server 2022, Windows Server 2019, Windows Server 2016

Un archivo de datos de blindaje (también denominado archivo de datos de aprovisionamiento o archivo PDK) es un archivo cifrado que crea un inquilino o el propietario de la máquina virtual para proteger la información de configuración de máquina virtual importante, como la contraseña del administrador, RDP y otros certificados relacionados con la identidad o las credenciales de unión a un dominio, entre otra. Este tema proporciona información sobre cómo crear un archivo de datos de blindaje. Antes de poder crear el archivo, debe obtener un disco de plantilla del proveedor de servicios de hosting o crear un disco de plantilla tal y como se describe en VM blindadas para inquilinos - creación de un disco de plantilla (opcional).

Para obtener una lista y un diagrama de los contenidos de un archivo de datos de blindaje, consulte ¿Qué son los datos de blindaje y por qué son necesarios?.

Importante

Los pasos de esta sección deberían completarse una máquina separada y de confianza fuera del tejido protegido. Normalmente, es el propietario de la VM (inquilino) quien crearía los datos de blindaje para las VM, no los administradores del tejido.

Siga los siguientes pasos para prepararse para crear un archivo de datos de blindaje:

Luego, puede crear el archivo de datos de blindaje:

(Opcional) Obtener un certificado para la conexión a escritorio remoto

Ya que los inquilinos solo pueden conectarse a sus VM blindadas mediante conexión a escritorio remoto u otras herramientas de administración remotas, es importante asegurar que los inquilinos pueden verificar que se conecta al punto de conexión correcto, es decir, que no haya intermediarios interceptando la conexión.

Una forma de comprobar que se está conectando al servidor previsto es instalar y configurar un certificado que los servicios de escritorio remoto presenten al iniciar una conexión. El equipo cliente que se conecta al servidor comprobará sí confía en el certificado y mostrará una advertencia si no lo hace. Por norma general, para asegurar que el cliente que se conecta confía en los certificados, los certificados RPD se emiten desde el PKI del inquilino. Puedo encontrar más información sobre Usar certificados en los servicios de escritorio remoto en TechNet.

Para ayudarle a decidir si necesita obtener un certificado RDP personalizado, tenga en cuenta lo siguiente:

  • Si está probando máquinas virtuales blindadas en un entorno de laboratorio, no necesita un certificado RDP personalizado.
  • Si la MV está configurada para unirse a un dominio de Active Directory, la autoridad de certificación de su organización emitirá automáticamente un certificado de equipo que se usa para identificar el equipo durante las conexiones RDP. No necesita un certificado RPD personalizado.
  • Si la MV no está unida a un dominio pero desea una forma de comprobar que se está conectando al equipo correcto al usar el escritorio remoto, debería considerar utilizar certificados RDP personalizados.

Sugerencia

Al seleccionar un certificado RPD que incluir en el archivo de datos de blindaje, asegúrese de usar un certificado de comodín. Cuál un archivo de datos de blindaje podría usarse para crear un número ilimitado de VM. Ya que cada VM compartirá el mismo certificado, un certificado de comodín asegura que el certificado será válido independientemente del nombre de host de la VM.

Crear un archivo de respuesta

Puesto que el disco de plantilla firmada en VMM se generaliza, es necesario que los inquilinos proporcionen un archivo de respuesta para especializar sus VM blindadas en el proceso de aprovisonamiento. El archivo de respuesta (a veces llamado archivo de instalación desatendida) puede configurar la VM para su función prevista, esto significa que puede instalar características de Windows, registrar el certificado RDP creado en el paso anterior y realizar otras acciones personalizadas. También proporcionará información necesaria para la configuración de Windows, lo cual incluye la contraseña de administrador predeterminado y la clave de producto.

Para más información sobre obtener y usar la función New-ShieldingDataAnswerFile para generar un archivo de respuesta (el archivo Unattend.xml) para la creación de VM blindadas, consulte Generación de un archivo de respuesta mediante la función New-ShieldingDataAnswerFile. Mediante la función, puede generar más fácilmente un archivo de respuesta que refleje opciones como las siguientes:

  • ¿La VM está pensada para unirse a un dominio al final del proceso de inicialización?
  • ¿Usará una licencia por volumen o una clave de producto específica por cada VM?
  • ¿Usa DHCP o una IP estática?
  • ¿Usará un protocolo certificado de escritorio remoto (RDP) personalizado que se usará para comprobar que la VM pertenece a su organización?
  • ¿Quiere ejecutar un script al final de la inicialización?

Los archivos de respuesta de un archivo de datos de blindaje se usarán en cada VM que se cree mediante ese archivo de blindaje. Por tanto, debería asegurarse de que no codifica de forma rígida ninguna información específica de la VM en el archivo de respuesta. VMM soporta algunas cadenas de sustitución (consulte la siguiente tabla) en el archivo de instalación desatendida para controlar los valores de especialización que pueden cambiar entre VM. No es necesario que use estos, sin embargo, el VMM los aprovechará si están presentes.

Al crear el archivo unattend.xml para las VM blindadas, tenga en cuenta las siguientes restricciones:

  • Si una el VMM para administrar su centro de datos, el archivo de instalación desatendida causar que la VM se desactive tras su configuración. Esto es para permitir que VMM sepa cuándo debe informar al inquilino que la VM ha terminado de aprovisionar y está lista para su uso. El VMM encenderá automáticamente la VM de nuevo una vez detecte que se ha apagado durante el aprovisionamiento.

  • Asegúrese de habilitar el RDP y la regla del firewall correspondiente para poder acceder a la VM una vez configurada. No puede usar la consola del VMM para acceder a las VM blindadas, por lo que necesitará RDP para conectarse a la VM. Si prefiere administrar los sistemas mediante comunicación remota con Windows PowerShell, compruebe que WinRM también está habilitado.

  • Las únicas cadenas de su sustitución que los archivos de instalación desatendida de la VM blindada soportan son las siguientes:

    Elemento reemplazable Cadena de sustitución
    ComputerName @ComputerName@
    TimeZone @TimeZone@
    ProductKey @ProductKey@
    IPAddr4-1 @IP4Addr-1@
    IPAddr6-1 @IP6Addr-1@
    MACAddr-1 @MACAddr-1@
    Prefix-1-1 @Prefix-1-1@
    NextHop-1-1 @NextHop-1-1@
    Prefix-1-2 @Prefix-1-2@
    NextHop-1-2 @NextHop-1-2@

    Si tiene más de una NIC, puede agregar varias cadenas de sustitución para la configuración de la IP mediante el incremento del primer dígito. Por ejemplo, para establecer la dirección IPv4, la subred y la puerta de enlace de 2 NIC, usaría las siguientes cadenas de sustitución:

    Cadena de sustitución Sustitución de muestra
    @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

Al usar cadenas de sustitución, es importante asegurarse de que la cadena se rellenarán durante el proceso de aprovisionamiento de la VM. Si no se proporciona una cadena como @ProductKey@ en el tiempo de implementación, lo cual deja el nodo <ProductKey> en blanco en el archivo de instalación desatendida, el proceso de especialización dará error y no podrá conectarse a la VM.

Además, tenga en cuenta que las cadenas de sustitución relacionadas con la red del final de la tabla solo se usa si aprovecha lo grupo de direcciones IP estáticas del VMM. El proveedor de servicios de hosting debería poder comentarle si estas cadenas de sustitución son necesarias. para obtener más información sobre IP estáticas en plantillas VMM, consulte lo siguiente en la documentación sobre VMM:

Finalmente, es importante tener en cuenta que el proceso de implementación de VM blindadas solo encriptará la unidad de sistema operativo. Hoy se implementa una VM blindada con una o más unidades de datos, se recomienda encarecidamente que agregue un comando de desatención o una configuración de directiva de grupo en el dominio del inquilino para incrementar las unidades de datos automáticamente.

Obtención del archivo del catálogo de firmas del volumen

Los archivos de datos de blindaje también contienen información sobre los discos de plantilla en los que confía un inquilino. Los inquilinos obtienen las firmas de disco desde discos de plantilla de confianza en un archivo del catálogo de firmas del volumen (VSC). Por tanto, estas firmas se validan cuando se implementa una VM nueva. Sin ninguna de las firmas en el archivo de datos de blindaje coincide con el disco de plantilla que se intenta implementar con la VM (es decir, cual se modificó o se cambió por un disco diferente y potencialmente malicioso), el proceso de aprovisionamiento dará error.

Importante

Mientras que el VSC garantiza que no se ha alterado un disco, es importante que el inquilino confíe en el disco en primer lugar. Si es un inquilino o el disco de plantilla se lo proporciona el proveedor de servicios, implemente una VM de prueba con ese disco de plantilla y ejecute sus propias herramientas (antivirus, detectores de vulnerabilidades, etc.) para validar que el disco está, de hecho, en un estado en el que se confíe.

Existen dos maneras de adquirir el VSC de un disco de plantilla:

  1. El proveedor de servicios (o el inquilino, si tiene acceso a VMM) usa los cmdlets de VMM de PowerShell para guardar el VSC y se lo da al inquilino. Esto se puede hacer en cualquier equipo con la consola VMM instalada y configurada para administrar el entorno VMM del tejido de hospedaje. Los cmdlets de PowerShell para guardar el VSC son:

    $disk = Get-SCVirtualHardDisk -Name "templateDisk.vhdx"
    
    $vsc = Get-SCVolumeSignatureCatalog -VirtualHardDisk $disk
    
    $vsc.WriteToFile(".\templateDisk.vsc")
    
  2. El inquilino tiene acceso al archivo de disco de plantilla. Esto puede ser el caso si el inquilino crea un disco de plantilla para subirlo a un proveedor de servicios de hospedaje o si el inquilino puede descargar el disco de plantilla del proveedor de servicios. En este caso, sin VMM en la imagen, el instalar ejecutaría el siguiente cmdlet (instalado en la característica de herramientas de VM blindada, parte de las herramientas de administración remota del servidor):

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

Seleccionar os tejidos de confianza

El último componente de un archivo de datos de blindaje hace referencia al propietario y los guardianes de la VM. Los guardianes se usan para designar tanto el propietario de una VM blindada como el tejido de confianza sobre el que se autoriza su ejecución.

Para autorizar un tejido de hospedaje para ejecutar una VM blindada, debe obtener los metadatos del de la protección desde el servicio de protección de host del proveedor del servicio de hospedaje. A veces, el proveedor del servicio de hospedaje le proveerá estos metadatos mediante sus herramientas de administración. En una situación empresarial, puede que tenga acceso directo para obtener estos metadatos usted mismo.

Usted o su proveedor de servicios de hospedaje pueden obtener los metadatos de protección desde HGS mediante una de las siguientes acciones:

  • Obtener los metadatos de protección directamente desde HGS mediante la ejecución del siguiente comando de Windows PowerShell o visitar el sitio web y guardar el archivo XML que se muestra:

    Invoke-WebRequest 'http://hgs.bastion.local/KeyProtection/service/metadata/2014-07/metadata.xml' -OutFile .\RelecloudGuardian.xml
    
  • Obtener los metadatos de protección desde VMM mediante los cmdlets de PowerShell de VMM:

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

Obtener los archivos de metadatos de protección de cada tejido protegido en el que desea autorizar a las VM blindadas que se ejecuten antes de continuar.

Crear un archivo de datos de blindaje y agregar guardianes mediante el Asistente para archivos de datos de blindaje

Ejecute el Asistente para archivos de datos de blindaje para crear un archivo de datos de blindaje (PDK). Aquí, agregará el certificado RDP, el archivo de instalación desatendida, los catálogos de firmas de volumen, el guardián del propietario y los metadatos de protección descargados obtenidos en el paso anterior.

  1. Instale Herramientas de administración remota del servidor > Herramientas de la administración de características > Herramientas de VM blindada en el equipo mediante el administrador del servidor o con el siguiente comando PowerShell de Windows:

    Install-WindowsFeature RSAT-Shielded-VM-Tools
    
  2. Abra el Asistente para archivos de datos de blindaje desde la sección Herramientas del administrador en el menú Inicio o mediante lel siguiente ejecutable C:\Windows\System32\ShieldingDataFileWizard.exe.

  3. En la primera página, use el segundo cuadro de selección de archivos para elegir una ubicación y un nombre de archivo para el archivo de datos de blindaje. Normalmente, nombraría a un archivo de datos de blindaje con el nombre de la entidad que posee algunas de las máquinas virtuales creadas con esos datos de blindaje (por ejemplo, RRHH, TI, Finanzas) y el rol de la carga de trabajo que ejecuta (por ejemplo, servidor de archivos, servidor web o cualquier otra cosa configurada por el archivo de instalación desatendida). Deje el botón de radio establecido en Datos de blindaje para plantillas blindadas.

    Nota

    Verá las dos siguientes opciones en el Asistente para archivos de datos de blindaje:

    • Datos de blindaje para plantillas blindadas
    • Datos de blindaje para VM existentes y plantillas no blindadas
      La primera opción se usa al crear una VM blindada nueva desde las plantillas blindadas. La segunda opción le permite crear datos de blindaje que pueden usar solo al convertir VM existentes o al crear VM blindadas desde plantillas no blindadas.

    Shielding Data File Wizard, file selection

    Además, debe elegir si las VM creadas con este archivo de blindaje de datos se blindará realmente o si se configurarán en modo de cifrado admitido. Para obtener más información sobre estas dos opciones, consulte ¿Cuáles son los tipos de máquinas virtuales que un tejido protegido puede ejecutar?.

    Importante

    Preste especial atención al siguiente paso, ya que define tanto al propietario de la VM blindada como los tejidos en los está autorizada para ejecutarse.
    La posesión del guardián del propietario es necesaria para cambiar posteriormente una VM blindada de Blindada a Cifrado admitido y viceversa.

  4. El objetivo de este paso es doble:

    • Crear o selecciona un guardián del propietario que le represente como propietario de la VM

    • Importar el guardián que descargó del servicio de protección de host del proveedor del hospedaje (o el suyo propio) en el paso anterior

    Para designar un guardián del propietario existente, seleccione el guardián adecuado en el menú desplegable. Solo se mostrarán en esta lista los guardianes instalados en el equipo local con las claves privadas intactas. También puede crear su propio guardián del propietario al seleccionar Administrar guardianes locales en la esquina inferior derecha y al hacer en Crear y completar el asistente.

    Luego, importamos los metadatos del guardián descargados anteriormente mediante la página Propietario y Guardianes. Seleccione Administrar guardianes locales en la esquina inferior derecha. Use la característica Importar para importar el archivo de metadatos de protección. Haga clic en Aceptar una vez que haya importado o agregado todos los guardianes necesarios. Una buena práctica es nombrar a los guardianes con el nombre del proveedor de servicios de hospedaje o con el del centro de datos empresarial que representan. Por último, seleccione todos los guardianes que representan los centros de datos en los que la VM blindada tiene autorización para ejecutarse. No es necesario seleccionar el propietario de nuevo. Haga clic en Siguiente una vez completado.

    Shielding Data File Wizard, owner and guardians

  5. En la página Calificadores de id. de volumen, haga clic en Agregar para autorizar un disco de plantilla firmado en el archivo de datos de blindaje. Al seleccionar un VSC en el cuadro de diálogo, se mostrará información sobre el nombre del disco, la versión y el certificado que se usó para firmarlo. Repita este proceso para cada disco de plantilla que desee autorizar.

  6. En la página Valores de especialización, haga clic en Examinar para seleccionar el archivo unattend.xml que se usará para especializar las VM.

    Use el botón Agregar de la parte inferior para agregar los archivos adicionales a la PDK necesarios durante el proceso de especialización. Por ejemplo, si el archivo de instalación desatendida instala un certificado RDP en la máquina virtual (como se describe en Generación de un archivo de respuesta mediante la función New-ShieldingDataAnswerFile), debería agregar el archivo PFX del certificado RDP y el script de RDPCertificateConfig.ps1 aquí. Tenga en cuenta que los archivos que aquí especifique se copiarán automáticamente en C:\temp\ en la VM que se crea. El archivo de instalación desatendida debe suponer que los archivos estén en esa carpeta al hacerles referencia por ruta.

  7. Revise las selecciones en la siguiente página y haga clic en Generar.

  8. Cierre el asistente una vez completado.

Crear un archivo de datos de blindaje y agregar guardianes mediante PowerShell

Como alternativa al Asistente para archivos de datos de blindaje, puede ejecutar New-ShieldingDataFile para crear un archivo de datos de blindaje.

Todos los archivos de datos de blindaje necesitan configurarse con el propietario y los certificados de guardianes correctos para autorizar que la VM blindada se ejecute en un tejido protegido. Puede comprobar si tiene guardianes instalados localmente al ejecutar Get-HgsGuardian. Los guardianes del propietario tienen claves privadas mientras que los guardianes del centro de datos normalmente no.

Si necesita crear un guardián del propietario, ejecute el siguiente comando:

New-HgsGuardian -Name "Owner" -GenerateCertificates

Este comando crea una pareja de certificados de firma y encriptación en el almacén de certificados del equipo local en la carpeta “Certificados locales de VM blindadas”. Necesitará los certificados de propietario y sus claves privadas correspondientes para quitar el blindaje de una máquina virtual, por lo que asegúrese de que se realicen copias de seguridad de estos certificados y que estén protegidos contra el robo. Un atacante con acceso a los certificados de propietario puede usarlos para iniciar la máquina virtual blindada o cambiar su configuración de seguridad.

Si necesita importar información de protección desde un tejido protegido donde desea ejecutar la máquina virtual (el centro de datos principal, los centros de datos de copias de seguridad, etc.), ejecute el siguiente comando para cada archivo de metadatos recuperado de los tejidos protegidos.

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

Sugerencia

Si usó certificados autofirmados o los certificados registrados con HGS han expirado, es posible que tenga que usar las -AllowUntrustedRoot marcas y/o -AllowExpired con el comando Import-HgsGuardian para omitir las comprobaciones de seguridad.

También necesitará obtener un catálogo de firmas de volumen para cada disco de plantilla que desee usar con este archivo de datos de blindaje yun archivo de respuesta de datos de blindaje para permitir que el sistema operativo complete automáticamente sus tareas de especialización. Por último, decida si desea que la VM esté totalmente blindada o solo habilitada para vTPM. Use -Policy Shielded si desea una VM totalmente blindada o -Policy EncryptionSupported si desea una VM habilitada para vTPM que permita conexiones básicas de consola y de PowerShell Direct.

Una vez que todo esté listo, ejecute el siguiente comando para crear el archivo de datos de blindaje:

$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'

Sugerencia

Si usa un certificado RDP personalizado, claves SSH u otros archivos que deben incluirse con el archivo de datos de blindaje, use el parámetro -OtherFile para incluirlos. Puede proporcionar una lista separada por comas de rutas de acceso de archivo, como -OtherFile "C:\source\myRDPCert.pfx", "C:\source\RDPCertificateConfig.ps1"

En el comando anterior, el guardián denominado "Propietario" (obtenido de Get-HgsGuardian) podrá cambiar la configuración de seguridad de la VM en el futuro, mientras que el centro de datos "EAST-US" puede ejecutar la VM pero no cambiar su configuración. Si tiene más de un guardián, separe los nombres de los guardianes con comas como en 'EAST-US Datacenter', 'EMEA Datacenter'. El calificador de id. de volumen especifica si solo confía en la versión exacta (Equals) del disco de plantilla o si en versiones futuras (GreaterThanOrEquals) también. El nombre del disco y el certificado de firma deben coincidir exactamente para que la comparación de versiones se tenga en cuenta en el momento de la implementación. Puede confiar en más de un disco de plantilla al proporcionar una lista de calificadores de id. de volumen separados por comas al parámetro -VolumeIDQualifier. Por último, si tiene otros archivos que necesitan acompañar al archivo de respuesta con la VM, use el parámetro -OtherFile y proporcione una lista separada por comas de rutas de acceso de archivo.

Para obtener información sobre otras formas de configurar el archivo de datos de blindaje, consulte la documentación del cmdlet New-ShieldingDataFile y New-VolumeIDQualifier.

Referencias adicionales