Escenarios de Azure Disk Encryption en máquinas virtuales Linux

Se aplica a: ✔️ máquinas virtuales Linux ✔️ conjuntos de escalado flexibles

Azure Disk Encryption para máquinas virtuales Linux usa la característica DM-Crypt de Linux para proporcionar un cifrado completo tanto del disco del sistema operativo como de los discos de datos. Además, proporciona cifrado del disco temporal cuando se usa la característica EncryptFormatAll.

Azure Disk Encryption se integra con Azure Key Vault para ayudarle a controlar y administrar las claves y los secreto de cifrado de discos. Para obtener información general del servicio, consulte Azure Disk Encryption para máquinas virtuales Linux.

Requisitos previos

El cifrado de disco solo se puede aplicar a las máquinas virtuales que tengan tamaños y sistemas operativos compatibles. También es preciso que se cumplan los siguientes requisitos previos:

En todos los casos es preciso hacer una instantánea o crear una copia de seguridad antes de cifrar los discos. Las copias de seguridad garantizan que, en caso de un error inesperado durante el cifrado, sea posible una opción de recuperación. Las máquinas virtuales con discos administrados requieren una copia de seguridad antes del cifrado. Una vez realizada la copia de seguridad, puede usar el cmdlet Set-AzVMDiskEncryptionExtension para cifrar los discos administrados mediante la especificación del parámetro -skipVmBackup. Para más información sobre cómo realizar la copia de seguridad y restauración de máquinas virtuales cifradas, consulte el artículo sobre Azure Backup.

Restricciones

Si ya ha usado Azure Disk Encryption con Microsoft Entra ID para cifrar una máquina virtual, debe seguir usando esta opción para cifrarla. Para más información, consulte Azure Disk Encryption con Microsoft Entra ID (versión anterior).

Al cifrar los volúmenes del sistema operativo Linux, la máquina virtual se debe considerar como no disponible. Se recomienda encarecidamente evitar los inicios de sesión de SSH mientras el cifrado está en curso para evitar que se bloqueen los archivos abiertos a los que se debe tener acceso durante el proceso de cifrado. Para comprobar el progreso, use el cmdlet Get-AzVMDiskEncryptionStatus de PowerShell o el comando vm encryption show de la CLI. Este proceso puede tardar unas horas si trabaja con un volumen de sistema operativo de 30 GB; además, deberá tener en cuenta el tiempo necesario para realizar el cifrado de los volúmenes de datos. El tiempo de cifrado del volumen de datos será proporcional al tamaño y la cantidad de los volúmenes de datos, a menos que se use la opción "all" del formato de cifrado.

Solo se puede deshabilitar el cifrado en máquinas virtuales Linux para volúmenes de datos. No se admite en volúmenes de datos o volúmenes del sistema operativo si el volumen del sistema operativo se ha cifrado.

Azure Disk Encryption no funciona en los siguientes escenarios, características y tecnologías de Linux:

  • VM de cifrado de nivel básico o VM creadas a través del método de creación de VM clásico.
  • Deshabilitación del cifrado en una unidad de SO o datos de una VM Linux cuando se cifra la unidad de SO.
  • Cifrado de la unidad del sistema operativo para los conjuntos de escalado de máquinas virtuales de Linux.
  • Cifrado de imágenes personalizadas en VM Linux.
  • Integración con un sistema de administración de claves local.
  • Azure Files (sistema de archivos compartido).
  • Network File System (NFS).
  • Volúmenes dinámicos.
  • Discos de sistema operativo efímero.
  • Cifrado de sistemas de archivos compartidos o distribuidos como (pero no limitados a): DFS, GFS, DRDB y CephFS.
  • Traslado de una máquina virtual cifrada a otra suscripción o región.
  • Creación de una imagen o instantánea de una máquina virtual cifrada y su uso para implementar máquinas virtuales adicionales.
  • Volcado de memoria de kernel (kdump).
  • Oracle ACFS (ASM Cluster File System).
  • Discos NVMe, como los que se encuentran en los tamaños de máquina virtual de informática de alto rendimiento o los tamaños de máquina virtual optimizada para almacenamiento.
  • Una máquina virtual con "puntos de montaje anidados", es decir, varios puntos de montaje en una sola ruta de acceso (como "/1stmountpoint/data/2stmountpoint").
  • Una máquina virtual con una unidad de datos montada en la parte superior de una carpeta de sistema operativo.
  • Una máquina virtual en la que se ha ampliado un volumen lógico raíz (disco del sistema operativo) mediante un disco de datos.
  • Máquinas virtuales de la serie M con discos de Acelerador de escritura.
  • Aplicación de ADE a una máquina virtual que tiene discos cifrados con el Cifrado en el host o cifrado del lado servidor con claves administradas por el cliente (SSE + CMK). La aplicación de SSE + CMK a un disco de datos o agregar un disco de datos con SSE + CMK configurado en una máquina virtual cifrada con ADE tampoco es un escenario admitido.
  • Migración de una máquina virtual cifrada con ADE, o que alguna vez haya estado cifrada con ADE, al Cifrado en el host o cifrado del lado servidor con claves administradas por el cliente.
  • Cifrado de máquinas virtuales en clústeres de conmutación por error.
  • Cifrado de discos Ultra de Azure.
  • Cifrado de discos SSD prémium v2.
  • El cifrado de máquinas virtuales en suscripciones que tienen los secretos debe tener habilitada la directiva especificada de período de validez máximo con el efecto DENY.

Instalación de herramientas y conexión a Azure

Azure Disk Encryption se puede habilitar y administrar mediante la CLI de Azure y Azure PowerShell. Para ello, es preciso instalar las herramientas de forma local y conectarse a su suscripción de Azure.

La CLI de Azure 2.0 es una herramienta de línea de comandos para administrar recursos de Azure. La CLI está diseñada para flexibilizar los datos de consulta, admitir operaciones de larga duración (como los procesos sin bloqueo) y facilitar la realización de scripts. Para instalarla localmente, siga los pasos que puede encontrar en Instalación de la CLI de Azure.

Para iniciar sesión en su cuenta de Azure con la CLI de Azure, use el comando az login.

az login

Si quiere seleccionar un inquilino con el que iniciar sesión, use:

az login --tenant <tenant>

Si tiene varias suscripciones y quiere especificar una en concreto, use az account list para obtener la lista de suscripciones y az account set para especificar cuál.

az account list
az account set --subscription "<subscription name or ID>"

Para más información, consulte Service Fabric y CLI de Azure 2.0.

Habilitación del cifrado en una máquina virtual Linux existente o en ejecución

En este escenario, puede habilitar el cifrado mediante la plantilla de Resource Manager, los cmdlets de PowerShell o los comandos de la CLI. Si necesita información de esquema para la extensión de máquina virtual, consulte el artículo Extensión de Azure Disk Encryption para Linux.

Importante

Es obligatorio crear una instantánea o una copia de seguridad de una instancia de máquina virtual basada en un disco administrado fuera de Azure Disk Encryption y antes de habilitar esta característica. Se puede tomar una instantánea del disco administrado desde el portal o mediante Azure Backup. Las copias de seguridad garantizan que es posible disponer de una opción de recuperación en el caso de que se produzca un error inesperado durante el cifrado. Una vez que se realiza una copia de seguridad, el cmdlet Set-AzVMDiskEncryptionExtension puede usarse para cifrar los discos administrados mediante la especificación del parámetro -skipVmBackup. El comando Set-AzVMDiskEncryptionExtension produce un error en las máquinas virtuales basadas en un disco administrado hasta que se realice una copia de seguridad y se especifique este parámetro.

Cifrar o deshabilitar el cifrado puede provocar el reinicio de la máquina virtual.

Para deshabilitar el cifrado, vea Deshabilitación del cifrado y eliminación de la extensión de cifrado.

Parr habilitar el cifrado de disco en un disco duro virtual cifrado, instale y use la herramienta de línea de comandos CLI de Azure. Se puede usar en el explorador con Azure Cloud Shell, o lo puede instalar en el equipo local y usarlo en cualquier sesión de PowerShell. Para habilitar el cifrado en máquinas virtuales Linux existentes o en ejecución en Azure, use los siguientes comandos de la CLI:

Use el comando az vm encryption enable para habilitar el cifrado en una máquina virtual en ejecución en Azure.

  • Cifrado de una máquina virtual en ejecución:

    az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault "MySecureVault" --volume-type [All|OS|Data]
    
  • Cifrado de una máquina virtual en ejecución mediante KEK:

    az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault  "MySecureVault" --key-encryption-key "MyKEK_URI" --key-encryption-keyvault "MySecureVaultContainingTheKEK" --volume-type [All|OS|Data]
    

    Nota

    La sintaxis del valor del parámetro "disk-encryption-keyvault" es la cadena de identificador completa: /subscriptions/[subscription-id-guid]/resourceGroups/[resource-group-name]/providers/Microsoft.KeyVault/vaults/[keyvault-name]
    La sintaxis del valor del parámetro key-encryption-key es el URI completo de la KEK como se muestra {1} en: https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id]

  • Comprobar que los discos están cifrados: Para comprobar el estado de cifrado de una máquina virtual, use el comando az vm encryption show.

    az vm encryption show --name "MySecureVM" --resource-group "MyVirtualMachineResourceGroup"
    

Para deshabilitar el cifrado, vea Deshabilitación del cifrado y eliminación de la extensión de cifrado.

Uso de la característica EncryptFormatAll para discos de datos en máquinas virtuales Linux

El parámetro EncryptFormatAll reduce el tiempo que se tardan en cifrar los discos de datos de Linux. Se formatearán las particiones que cumplan ciertos criterios, junto con sus sistemas de archivos actuales, y se volverán a montar en el lugar en que estaban antes de la ejecución del comando. Si quiere excluir un disco de datos que cumple los criterios, puede desmontarlo antes de ejecutar el comando.

Después de ejecutar este comando, se dará formato a todas las unidades que se montaron previamente y el nivel de cifrado se iniciará encima de la unidad vacía. Cuando se selecciona esta opción, también se cifrará el disco temporal asociado a la máquina virtual. Si el disco temporal se restablece, la solución Azure Disk Encryption lo vuelve a formatear y cifrar para la máquina virtual en la siguiente oportunidad. Una vez que el disco de recursos se cifra, el agente de Linux de Microsoft Azure no podrá administrarlo ni habilitar el archivo de intercambio, pero puede configurar este último manualmente.

Advertencia

EncryptFormatAll no debe usarse cuando hay datos necesarios en los volúmenes de datos de una máquina virtual. Para excluir discos del cifrado, puede desmontarlos. Debe probar primero EncryptFormatAll en una máquina virtual de prueba y comprender el parámetro de característica y su implicación antes de intentar usarlo en la máquina virtual de producción. La opción EncryptFormatAll formatea el disco de datos, y todos los datos que contiene se pierden. Antes de continuar, compruebe que los discos que quiere excluir estén desmontados correctamente.

Si configura este parámetro mientras actualiza la configuración de cifrado, podría provocar un reinicio antes del cifrado real. En este caso, también querrá quitar el disco que no quiere que se formatee del archivo fstab. De igual forma, debe agregar la partición que quiere cifrar formateada al archivo fstab antes de iniciar la operación de cifrado.

Criterios de EncryptFormatAll

El parámetro recorre todas las particiones y las cifra siempre que cumplan todos los siguientes criterios:

  • No es una partición raíz, de arranque o del sistema operativo
  • Ya no está cifrada
  • No es un volumen BEK
  • No es un volumen RAID
  • No es un volumen LVM
  • Está montada

Cifre los discos que componen el volumen LVM o RAID en lugar de los volúmenes LVM o RAID.

Use el comando az vm encryption enable para habilitar el cifrado en una máquina virtual en ejecución en Azure.

  • Cifrar una máquina virtual en ejecución mediante EncryptFormatAll:

    az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault "MySecureVault" --volume-type "data" --encrypt-format-all
    

Uso del parámetro EncryptFormatAll con el Administrador de volúmenes lógicos (LVM)

Se recomienda una configuración LVM-on-crypt. Para obtener instrucciones detalladas sobre LVM en la configuración de cifrado, consulte Configuración de LVM y RAID en dispositivos cifrados de ADE.

Nuevas máquinas virtuales creadas a partir de discos duros virtuales cifrados por el cliente y claves de cifrado

En este escenario, puede habilitar el cifrado mediante los cmdlets de PowerShell o los comandos de la CLI.

Use las instrucciones de los mismos scripts de Azure Disk Encryption para preparar imágenes previamente cifradas que se pueden usar en Azure. Una vez creada la imagen, puede seguir los pasos de la sección siguiente para crear una VM cifrada de Azure.

Importante

Es obligatorio crear una instantánea o una copia de seguridad de una instancia de máquina virtual basada en un disco administrado fuera de Azure Disk Encryption y antes de habilitar esta característica. Puede tomar una instantánea del disco administrado desde el portal o se puede usar Azure Backup. Las copias de seguridad garantizan que es posible disponer de una opción de recuperación en el caso de que se produzca un error inesperado durante el cifrado. Una vez que se realiza una copia de seguridad, el cmdlet Set-AzVMDiskEncryptionExtension puede usarse para cifrar los discos administrados mediante la especificación del parámetro -skipVmBackup. El comando Set-AzVMDiskEncryptionExtension produce un error en las máquinas virtuales basadas en un disco administrado hasta que se realice una copia de seguridad y se especifique este parámetro.

Cifrar o deshabilitar el cifrado puede provocar el reinicio de la máquina virtual.

Uso de Azure PowerShell para cifrar máquinas virtuales con discos duros virtuales previamente cifrados

Puede habilitar el cifrado de disco en el disco duro virtual cifrado mediante el cmdlet Set-AzVMOSDisk de PowerShell. En el ejemplo siguiente se proporcionan algunos parámetros comunes.

$VirtualMachine = New-AzVMConfig -VMName "MySecureVM" -VMSize "Standard_A1"
$VirtualMachine = Set-AzVMOSDisk -VM $VirtualMachine -Name "SecureOSDisk" -VhdUri "os.vhd" Caching ReadWrite -Linux -CreateOption "Attach" -DiskEncryptionKeyUrl "https://mytestvault.vault.azure.net/secrets/Test1/514ceb769c984379a7e0230bddaaaaaa" -DiskEncryptionKeyVaultId "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.KeyVault/vaults/mytestvault"
New-AzVM -VM $VirtualMachine -ResourceGroupName "MyVirtualMachineResourceGroup"

Habilitación del cifrado en un disco de datos recién agregado

Puede agregar un nuevo disco de datos mediante az vm disk attach, o Azure Portal. Para poder cifrarlo, deberá montar primero el disco de datos recién asociado. Dado que la unidad de datos no se puede usar mientras el cifrado está en curso, deberá solicitar el cifrado de la unidad.

Si la máquina virtual se cifró previamente con "All", el parámetro --volume-type debe permanecer como "All". All incluye los discos de datos y del SO. Si la máquina virtual se cifró previamente con el tipo de volumen "OS", el parámetro--volume-type se debe cambiar a "All", con el fin de que se incluyan tanto el nuevo disco de datos como el sistema operativo. Si la VM se cifró con el tipo de volumen de "Data", entonces puede permanecer como "Data", tal y como se muestra a continuación. Para preparar el cifrado, no es suficiente con agregar y asociar un nuevo disco de datos a una VM. El disco recién conectado también se debe formatear y montar correctamente en la VM antes de habilitar el cifrado. En Linux, el disco se debe montar en /etc/fstab con un nombre de dispositivo de bloque persistente.

A diferencia de la sintaxis de PowerShell, la CLI no requiere que el usuario proporcione ninguna versión de secuencia única cuando se habilita el cifrado. La CLI genera y usa su propio valor de versión de secuencia único automáticamente.

  • Cifrar los volúmenes de datos de una VM en ejecución:

    az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault "MySecureVault" --volume-type "Data"
    
  • Cifrar los volúmenes de datos de una VM con KEK:

    az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault  "MySecureVault" --key-encryption-key "MyKEK_URI" --key-encryption-keyvault "MySecureVaultContainingTheKEK" --volume-type "Data"
    

Deshabilitación del cifrado y eliminación de la extensión de cifrado

Puede deshabilitar la extensión de Azure Disk Encryption y puede quitar la extensión de Azure Disk Encryption. Se trata de dos operaciones distintas.

Para quitar ADE, se recomienda deshabilitar primero el cifrado y, luego, quitar la extensión. Si quita la extensión de cifrado sin deshabilitarla, los discos aún estarán cifrados. Si deshabilita el cifrado después de quitar la extensión, esta se volverá a instalar (para realizar la operación de descifrado) y deberá quitarse una segunda vez.

Advertencia

No se puede deshabilitar el cifrado si el disco del sistema operativo está cifrado. (Los discos del sistema operativo se cifran cuando la operación de cifrado original especifica volumeType=ALL o volumeType=OS).

La deshabilitación del cifrado solo funciona cuando los discos de datos están cifrados, pero el disco del sistema operativo no lo está.

Deshabilitación del cifrado

Puede deshabilitar el cifrado con Azure PowerShell, la CLI de Azure o una plantilla de Resource Manager. La deshabilitación del cifrado no quita la extensión (vea Eliminación de la extensión de cifrado).

  • Deshabilitar el cifrado de disco con Azure PowerShell: para deshabilitar el cifrado, use el cmdlet Disable-AzVMDiskEncryption.

    Disable-AzVMDiskEncryption -ResourceGroupName "MyVirtualMachineResourceGroup" -VMName "MySecureVM" -VolumeType "data"
    
  • Deshabilitar el cifrado con la CLI de Azure: para deshabilitar el cifrado, use el comando az vm encryption disable.

    az vm encryption disable --name "MySecureVM" --resource-group "MyVirtualMachineResourceGroup" --volume-type "data"
    
  • Deshabilitar el cifrado con una plantilla de Resource Manager:

    1. Haga clic en Deploy to Azure (Implementar en Azure) en la plantilla Deshabilitar el cifrado de disco en una máquina virtual Linux en ejecución.
    2. Seleccione la suscripción, el grupo de recursos, la ubicación, la máquina virtual, el tipo de volumen, los términos legales y el contrato.
    3. Haga clic en Comprar para deshabilitar el cifrado de disco en una máquina virtual Linux en ejecución.

Eliminación de la extensión de cifrado

Si quiere descifrar los discos y quitar la extensión de cifrado, tiene que deshabilitar el cifrado antes de quitar la extensión; consulte deshabilitación del cifrado.

Puede quitar la extensión de cifrado mediante Azure PowerShell o la CLI de Azure.

  • Deshabilitar el cifrado de disco con Azure PowerShell: para quitar el cifrado, use el cmdlet Remove-AzVMDiskEncryptionExtension.

    Remove-AzVMDiskEncryptionExtension -ResourceGroupName "MyVirtualMachineResourceGroup" -VMName "MySecureVM"
    
  • Deshabilitar el cifrado con la CLI de Azure: para quitar el cifrado, use el comando az vm extension delete.

    az vm extension delete -g "MyVirtualMachineResourceGroup" --vm-name "MySecureVM" -n "AzureDiskEncryptionForLinux"
    

Pasos siguientes