Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: ✔️ Máquinas virtuales Linux ✔️ Conjuntos de escalado flexible
Cuando se habilita el cifrado en el host, los datos almacenados en el host de máquina virtual se cifran en reposo y se transmiten cifrados al servido Storage. Para obtener información conceptual sobre el cifrado en el host y otros tipos de cifrado de disco administrado, consulte Cifrado en host: cifrado de un extremo a otro para los datos de la máquina virtual.
Restricciones
- No se puede habilitar en máquinas virtuales (VM) ni en conjuntos de escalado de máquinas virtuales que actualmente o nunca tenían habilitado Azure Disk Encryption.
- No se puede habilitar Azure Disk Encryption en discos que tienen habilitado el cifrado en el host.
- El cifrado se puede habilitar en los conjuntos de escalado de máquinas virtuales. Sin embargo, solo se cifrarán automáticamente las nuevas máquinas virtuales creadas después de habilitar el cifrado.
- Las máquinas virtuales existentes se deben desasignar y reasignar para su cifrado.
Las restricciones siguientes solo se aplican a discos Ultra y SSD Premium v2:
- Los discos que usan un tamaño de sector de 512e deben haberse creado después del 13/5/2023.
- Si el disco se creó antes de esta fecha, realice una instantánea del disco y cree un disco con la instantánea.
Tamaños de máquinas virtuales que se admiten
La lista completa de tamaños de máquina virtual admitidos se puede obtener mediante programación. Para obtener información sobre cómo recuperarlos mediante programación, consulte la sección Búsqueda de tamaños de máquina virtual admitidos . La actualización del tamaño de la máquina virtual produce una validación para comprobar si el nuevo tamaño de máquina virtual admite la característica EncryptionAtHost.
Requisitos previos
Debe habilitar la característica para su suscripción antes de usar la propiedad EncryptionAtHost para su VM/VMSS. Siga los pasos que se indican a continuación para habilitar la característica para su suscripción:
- Ejecute el siguiente comando para registrar la característica para su suscripción
az feature register --namespace Microsoft.Compute --name EncryptionAtHost
- Compruebe que el estado de registro es Registrado (tarda unos minutos) en usar el comando siguiente antes de probar la característica.
az feature show --namespace Microsoft.Compute --name EncryptionAtHost
Crear recursos
Nota
Esta sección solo se aplica a las configuraciones con claves administradas por el cliente. Si usa claves administradas por la plataforma, puede ir directamente a la sección Scripts de ejemplo .
Una vez habilitada la función, debe configurar un DiskEncryptionSet y una instancia de Azure Key Vault o un Azure Key Vault Managed HSM.
Azure Key Vault
- Instale la CLI de Azure más reciente e inicie sesión en una cuenta de Azure en con az login.
- Cree una instancia de Azure Key Vault y la clave de cifrado
Al crear la instancia de Key Vault, debe habilitar la protección de purgas. La protección de purga garantiza que una clave eliminada no se pueda eliminar permanentemente hasta que expire el período de retención. Esta configuración le protege contra la pérdida de datos debido a la eliminación accidental. Estos valores son obligatorios cuando se usa una instancia de Key Vault para cifrar discos administrados.
Importante
No use el estilo CamelCase para la región. Si lo hace, podría experimentar problemas al asignar discos adicionales al recurso en Azure Portal.
subscriptionId=yourSubscriptionID
rgName=yourResourceGroupName
location=westcentralus
keyVaultName=yourKeyVaultName
keyName=yourKeyName
diskEncryptionSetName=yourDiskEncryptionSetName
diskName=yourDiskName
az account set --subscription $subscriptionId
az group create --resource-group $rgName --location $location
az keyvault create -n $keyVaultName \
-g $rgName \
-l $location \
--enable-purge-protection true
az keyvault key create --vault-name $keyVaultName \
-n $keyName \
--protection software
- Cree una instancia de DiskEncryptionSet. Puede establecer enable-auto-key-rotation en true para habilitar la rotación automática de la clave. Al habilitar la rotación automática, el sistema actualiza automáticamente todos los discos administrados, las instantáneas y las imágenes que hacen referencia al conjunto de cifrado de disco para usar la nueva versión de la clave en un plazo de una hora.
keyVaultKeyUrl=$(az keyvault key show --vault-name $keyVaultName --name $keyName --query [key.kid] -o tsv)
az disk-encryption-set create -n $diskEncryptionSetName \
-l $location \
-g $rgName \
--key-url $keyVaultKeyUrl \
--enable-auto-key-rotation false
- Conceda al recurso DiskEncryptionSet acceso al almacén de claves.
Nota
Azure puede tardar unos minutos en crear la identidad de DiskEncryptionSet en Microsoft Entra ID. Si recibe un error similar a "No se encuentra el objeto en Active Directory" al ejecutar el siguiente comando, espere unos minutos y vuelva a intentarlo.
desIdentity=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [identity.principalId] -o tsv)
az keyvault set-policy -n $keyVaultName \
-g $rgName \
--object-id $desIdentity \
--key-permissions wrapkey unwrapkey get
HSM administrado por Azure Key Vault
Como alternativa, puede usar un recurso HSM administrado para manejar las claves.
Para ello, debe cumplir los siguientes requisitos previos:
- Instale la CLI de Azure más reciente e inicie sesión en una cuenta de Azure en con az login.
- Cree y configure un HSM administrado.
- Asigne permisos a un usuario para que puedan administrar el HSM administrado.
Configuración
Una vez que haya creado un recurso HSM administrado y haya agregado permisos, habilite la protección de purgas y cree una clave de cifrado.
subscriptionId=yourSubscriptionID
rgName=yourResourceGroupName
location=westcentralus
keyVaultName=yourKeyVaultName
keyName=yourKeyName
diskEncryptionSetName=yourDiskEncryptionSetName
diskName=yourDiskName
az account set --subscription $subscriptionId
az keyvault update-hsm --subscription $subscriptionId -g $rgName --hsm-name $keyVaultName --enable-purge-protection true
az keyvault key create --hsm-name $keyVaultName --name $keyName --ops wrapKey unwrapKey --kty RSA-HSM --size 2048
A continuación, cree una instancia de diskEncryptionSet.
keyVaultKeyUrl=$(az keyvault key show --vault-name $keyVaultName --name $keyName --query [key.kid] -o tsv)
az disk-encryption-set create -n $diskEncryptionSetName \
-l $location \
-g $rgName \
--key-url $keyVaultKeyUrl \
--enable-auto-key-rotation false
Por último, conceda acceso a DiskEncryptionSet para el recurso HSM administrado.
desIdentity=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [identity.principalId] -o tsv)
az keyvault role assignment create --hsm-name $keyVaultName --role "Managed HSM Crypto Service Encryption User" --assignee $desIdentity --scope /keys
Scripts de ejemplo
Creación de una máquina virtual con cifrado en el host habilitado con claves administradas por el cliente
Cree una máquina virtual con discos administrados mediante el identificador URI del recurso de DiskEncryptionSet creado anteriormente para cifrar la caché de los discos de datos y del sistema operativo con claves administradas por el cliente. Los discos temporales se cifran con claves administradas por la plataforma.
rgName=yourRGName
vmName=yourVMName
location=eastus
vmSize=Standard_DS2_v2
image=LinuxImageURN
diskEncryptionSetName=yourDiskEncryptionSetName
diskEncryptionSetId=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [id] -o tsv)
az vm create -g $rgName \
-n $vmName \
-l $location \
--encryption-at-host \
--image $image \
--size $vmSize \
--generate-ssh-keys \
--os-disk-encryption-set $diskEncryptionSetId \
--data-disk-sizes-gb 128 128 \
--data-disk-encryption-sets $diskEncryptionSetId $diskEncryptionSetId
Creación de una máquina virtual con cifrado en el host habilitado con claves administradas por la plataforma
Cree una máquina virtual con cifrado en el host habilitado para cifrar la caché de discos de datos o del sistema operativo, y discos temporales con claves administradas por la plataforma.
rgName=yourRGName
vmName=yourVMName
location=eastus
vmSize=Standard_DS2_v2
image=LinuxImageURN
az vm create -g $rgName \
-n $vmName \
-l $location \
--encryption-at-host \
--image $image \
--size $vmSize \
--generate-ssh-keys \
--data-disk-sizes-gb 128 128 \
Actualización de una máquina virtual para habilitar el cifrado en el host
rgName=yourRGName
vmName=yourVMName
az vm update -n $vmName \
-g $rgName \
--set securityProfile.encryptionAtHost=true
Comprobación del estado del cifrado en el host de una máquina virtual
rgName=yourRGName
vmName=yourVMName
az vm show -n $vmName \
-g $rgName \
--query [securityProfile.encryptionAtHost] -o tsv
Actualización de una máquina virtual para deshabilitar el cifrado en el host
Debe desasignar la máquina virtual para poder deshabilitar el cifrado en el host.
rgName=yourRGName
vmName=yourVMName
az vm update -n $vmName \
-g $rgName \
--set securityProfile.encryptionAtHost=false
Creación de un conjunto de escalado de máquinas virtuales con cifrado en el host habilitado con claves administradas por el cliente
Cree un conjunto de escalado de máquinas virtuales con discos administrados mediante el identificador URI del recurso de DiskEncryptionSet creado anteriormente para cifrar la caché de los discos de datos y del sistema operativo con claves administradas por el cliente. Los discos temporales se cifran con claves administradas por la plataforma.
Importante
A partir de noviembre de 2023, los conjuntos de escalado de máquinas virtuales creados con PowerShell y la CLI de Azure tendrán como valor predeterminado el modo de orquestación flexible si no se especifica ningún modo de orquestación. Para obtener más información sobre este cambio y las acciones que debe realizar, vaya a Cambio importante para clientes de PowerShell/CLI de VMSS: Centro de comunidad de Microsoft.
rgName=yourRGName
vmssName=yourVMSSName
location=westus2
vmSize=Standard_DS3_V2
image=Ubuntu2204
diskEncryptionSetName=yourDiskEncryptionSetName
diskEncryptionSetId=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [id] -o tsv)
az vmss create -g $rgName \
-n $vmssName \
--encryption-at-host \
--image $image \
--orchestration-mode flexible \
--admin-username azureuser \
--generate-ssh-keys \
--os-disk-encryption-set $diskEncryptionSetId \
--data-disk-sizes-gb 64 128 \
--data-disk-encryption-sets $diskEncryptionSetId $diskEncryptionSetId
Creación de un conjunto de escalado de máquinas virtuales con cifrado en el host habilitado con claves administradas por la plataforma
Cree un conjunto de escalado de máquinas virtuales con cifrado en el host habilitado para cifrar la caché de discos de datos o del sistema operativo, y discos temporales con claves administradas por la plataforma.
Importante
A partir de noviembre de 2023, los conjuntos de escalado de máquinas virtuales creados con PowerShell y la CLI de Azure tendrán como valor predeterminado el modo de orquestación flexible si no se especifica ningún modo de orquestación. Para obtener más información sobre este cambio y las acciones que debe realizar, vaya a Cambio importante para clientes de PowerShell/CLI de VMSS: Centro de comunidad de Microsoft.
rgName=yourRGName
vmssName=yourVMSSName
location=westus2
vmSize=Standard_DS3_V2
image=Ubuntu2204
az vmss create -g $rgName \
-n $vmssName \
--encryption-at-host \
--image $image \
--orchestration-mode flexible \
--admin-username azureuser \
--generate-ssh-keys \
--data-disk-sizes-gb 64 128 \
Actualización de un conjunto de escalado de máquinas virtuales para habilitar el cifrado en el host
rgName=yourRGName
vmssName=yourVMName
az vmss update -n $vmssName \
-g $rgName \
--set virtualMachineProfile.securityProfile.encryptionAtHost=true
Comprobación del estado del cifrado en el host de un conjunto de escalado de máquinas virtuales
rgName=yourRGName
vmssName=yourVMName
az vmss show -n $vmssName \
-g $rgName \
--query [virtualMachineProfile.securityProfile.encryptionAtHost] -o tsv
Actualización de un conjunto de escalado de máquinas virtuales para deshabilitar el cifrado en el host
Puede deshabilitar el cifrado en el host en el conjunto de escalado de máquinas virtuales, pero esto solo afectará a las máquinas virtuales creadas después de deshabilitar el cifrado en el host. En el caso de las máquinas virtuales existentes, debe desasignar la máquina virtual, deshabilitar el cifrado en el host en esa máquina virtual individual y, a continuación, reasignar la máquina virtual.
rgName=yourRGName
vmssName=yourVMName
az vmss update -n $vmssName \
-g $rgName \
--set virtualMachineProfile.securityProfile.encryptionAtHost=false
Búsqueda de tamaños de máquinas virtuales admitidos
No se admiten los tamaños de máquina virtual heredados. Puede encontrar la lista de tamaños de máquina virtual admitidos mediante las API de SKU de recursos o la CLI de Azure.
Al llamar a resource Skus API, compruebe que la EncryptionAtHostSupported
funcionalidad está establecida en True.
{
"resourceType": "virtualMachines",
"name": "Standard_DS1_v2",
"tier": "Standard",
"size": "DS1_v2",
"family": "standardDSv2Family",
"locations": [
"CentralUS"
],
"capabilities": [
{
"name": "EncryptionAtHostSupported",
"value": "True"
}
]
}
Para la CLI de Azure, use el comando az vm image list-skus .
location=centralus
az vm list-skus --location $location --all \
--resource-type virtualMachines \
--query "[?capabilities[?name=='EncryptionAtHostSupported' && value=='True']].{VMName:name, EncryptionAtHost:capabilities[?name=='EncryptionAtHostSupported'].value | [0]}" \
--output table
Pasos siguientes
Ahora que ha creado y configurado estos recursos, puede usarlos para proteger los discos administrados. En los vínculos siguientes encontrará scripts de ejemplo, cada uno con un escenario correspondiente, que puede usar para proteger sus discos administrados.