Creación y configuración de un almacén de claves para Azure Disk Encryption
Se aplica a: ✔️ máquinas virtuales Linux ✔️ conjuntos de escalado flexibles
Azure Disk Encryption usa Azure Key Vault para controlar y administrar las claves y los secretos de cifrado de discos. Para más información sobre los almacenes de claves, consulte Introducción a Azure Key Vault y Protección de un almacén de claves.
Advertencia
- Si ya ha usado Azure Disk Encryption con Microsoft Entra ID para cifrar una máquina virtual, debe seguir usando esta opción para cifrar la máquina virtual. Consulte Creación y configuración de un almacén de claves para Azure Disk Encryption con Microsoft Entra ID (versión anterior) para obtener información más detallada.
La creación y configuración de un almacén de claves para su uso con Azure Disk Encryption conlleva estos tres pasos:
- Creación de un grupo de recursos, en caso de que sea necesario.
- Creación de un almacén de claves.
- Establecimiento de directivas de acceso avanzadas del almacén de claves.
Estos pasos se muestran en los siguientes tutoriales de inicio rápido:
- Creación y cifrado de una máquina virtual Linux con la CLI de Azure
- Creación y cifrado de una máquina virtual Linux con Azure PowerShell
Si lo desea, también puede generar o importar una clave de cifrado de claves (KEK).
Nota
Los pasos que se describen en este artículo se automatizan en el script de la CLI de requisitos previos de Azure Disk Encryption y en el script de PowerShell de requisitos previos de Azure Disk Encryption.
Los pasos que se describen en este artículo se pueden completar con la CLI de Azure, el módulo Az de Azure PowerShell o Azure Portal.
Aunque se puede acceder al portal a través de un explorador, tanto la CLI de Azure como Azure PowerShell requieren una instalación local; consulte Azure Disk Encryption para Linux: instalación de herramientas para más información.
Antes de usar la CLI de Azure o Azure PowerShell, es preciso conectarse a su suscripción de Azure. Para ello, inicie sesión con la CLI de Azure, inicie sesión con Azure PowerShell o escriba sus credenciales en Azure Portal cuando se le soliciten.
az login
Connect-AzAccount
Si ya tiene un grupo de recursos, puede pasar a Creación de un almacén de claves.
Un grupo de recursos es un contenedor lógico en el que se implementan y se administran los recursos de Azure.
Cree un grupo de recursos mediante el comando az group create de la CLI de Azure, el comando New-AzResourceGroup de Azure PowerShell o bien desde Azure Portal.
az group create --name "myResourceGroup" --location eastus
New-AzResourceGroup -Name "myResourceGroup" -Location "EastUS"
Si ya tiene un almacén de claves, puede pasar a la sección Establecimiento de directivas de acceso avanzadas del almacén de claves.
Cree un almacén de claves mediante el comando az keyvault create de la CLI de Azure, el comando New-AzKeyvault de Azure PowerShell, Azure Portal o una plantilla de Resource Manager.
Advertencia
Para asegurarse de que los secretos de cifrado no crucen los límites regionales, deberá crear y usar un almacén de claves que se encuentre en la misma región y el mismo inquilinoque las máquinas virtuales que se van a cifrar.
Cada instancia de Key Vault debe tener un nombre único. Reemplace <nombre-almacén de claves-único> por el nombre del almacén de claves en los siguientes ejemplos.
Al crear un almacén de claves mediante la CLI de Azure, agregue la marca "--enabled-for-disk-encryption".
az keyvault create --name "<your-unique-keyvault-name>" --resource-group "myResourceGroup" --location "eastus" --enabled-for-disk-encryption
Al crear un almacén de claves mediante Azure PowerShell, agregue la marca "-EnabledForDiskEncryption".
New-AzKeyvault -name "<your-unique-keyvault-name>" -ResourceGroupName "myResourceGroup" -Location "eastus" -EnabledForDiskEncryption
También puede crear un almacén de claves mediante la plantilla de Resource Manager.
- En la plantilla de inicio rápido de Azure, haga clic en Implementar en Azure.
- Seleccione la suscripción, el grupo de recursos, la ubicación del grupo de recursos, el nombre del almacén de claves, el identificador de objeto, los términos legales y el contrato, y luego haga clic en Comprar.
Importante
Los almacenes de claves recién creados tienen eliminación temporal de forma predeterminada. Si usa un almacén de claves existente, debe habilitar la eliminación temporal. Consulte Información general sobre la eliminación temporal de Azure Key Vault
La plataforma Azure necesita acceso a las claves de cifrado o secretos del almacén de claves para ponerlos a disposición de la máquina virtual para el proceso de arranque y descifrado de los volúmenes.
Si no ha habilitado el almacén de claves para el cifrado de discos, la implementación o la implementación de plantillas en el momento de la creación (como se muestra en el paso anterior), debe actualizar sus directivas de acceso avanzadas.
Use az keyvault update para habilitar el cifrado de disco para el almacén de claves.
Habilitar Key Vault para el cifrado de disco: Es necesario Enabled-for-disk-encryption.
az keyvault update --name "<your-unique-keyvault-name>" --resource-group "MyResourceGroup" --enabled-for-disk-encryption "true"
Habilitar Key Vault para la implementación, si es necesario: permite que el proveedor de recursos Microsoft.Compute recupere los secretos de este almacén de claves cuando se hace referencia al almacén de claves en la creación de recursos, por ejemplo, cuando se crea una máquina virtual.
az keyvault update --name "<your-unique-keyvault-name>" --resource-group "MyResourceGroup" --enabled-for-deployment "true"
Habilitar Key Vault para la implementación de plantillas, si es necesario: permite que Resource Manager recupere secretos del almacén.
az keyvault update --name "<your-unique-keyvault-name>" --resource-group "MyResourceGroup" --enabled-for-template-deployment "true"
Use el cmdlet Set-AzKeyVaultAccessPolicy de PowerShell del almacén de claves para habilitar el cifrado de disco para el almacén de claves.
Habilitar Key Vault para el cifrado de disco: se requiere EnabledForDiskEncryption para el cifrado de Azure Disk.
Set-AzKeyVaultAccessPolicy -VaultName "<your-unique-keyvault-name>" -ResourceGroupName "MyResourceGroup" -EnabledForDiskEncryption
Habilitar Key Vault para la implementación, si es necesario: permite que el proveedor de recursos Microsoft.Compute recupere los secretos de este almacén de claves cuando se hace referencia al almacén de claves en la creación de recursos, por ejemplo, cuando se crea una máquina virtual.
Set-AzKeyVaultAccessPolicy -VaultName "<your-unique-keyvault-name>" -ResourceGroupName "MyResourceGroup" -EnabledForDeployment
Habilitar Key Vault para la implementación de plantillas, si es necesario: permite que Azure Resource Manager obtenga los secretos de este almacén de claves cuando se hace referencia al almacén de claves en una implementación de plantilla.
Set-AzKeyVaultAccessPolicy -VaultName "<your-unique-keyvault-name>" -ResourceGroupName "MyResourceGroup" -EnabledForTemplateDeployment
Seleccione el almacén de claves y vaya a Directivas de acceso.
En "Habilitar acceso a", active la casilla llamada Azure Disk Encryption para el cifrado de volúmenes.
Seleccione Azure Virtual Machines para la implementación o Azure Resource Manager para la implementación de plantillas, si fuera necesario.
Haga clic en Save(Guardar).
Aunque ahora Azure Key Vault posee una característica de rotación automática de claves, no es compatible con Azure Disk Encryption por el momento. Esto quiere decir que Azure Disk Encryption siempre usará la clave de cifrado original, incluso después de que esta haya rotado automáticamente.
La rotación de una clave de cifrado no interrumpirá el funcionamiento de Azure Disk Encryption. En cambio, deshabilitar la clave de cifrado "antigua" (es decir, la clave que usa Azure Disk Encryption), sí lo hará.
Importante
La cuenta que se ejecuta para habilitar el cifrado de disco en el almacén de claves debe tener permisos de "lector".
Si desea usar una clave de cifrado de claves (KEK) para una brindar una capa adicional de seguridad para las claves de cifrado, agregue una KEK a su almacén de claves. Cuando se especifica una clave de cifrado de claves, Azure Disk Encryption usa esa clave para encapsular los secretos de cifrado antes de escribirlos en Key Vault.
Puede generar una nueva clave de cifrado de claves mediante el comando az keyvault key create
de la CLI de Azure, el cmdlet Add-AzKeyVaultKey de Azure PowerShell o Azure Portal. Debe generar un tipo de clave RSA; Azure Disk Encryption no admite actualmente el uso de claves de curva elíptica.
En su lugar, puede importar una clave de cifrado de claves en el HSM de administración de claves local. Para más información, consulte la documentación de Key Vault.
Las direcciones URL de la KEK del almacén de claves deben tener versiones. Azure exige esta restricción del control de versiones. Para ver direcciones URL de KEK y de secretos válidas, vea los ejemplos siguientes:
- Ejemplo de dirección URL de secreto válida: https://contosovault.vault.azure.net/secrets/EncryptionSecretWithKek/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- Ejemplo de dirección URL de clave de cifrado de claves válida: https://contosovault.vault.azure.net/keys/diskencryptionkek/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Use el comando az keyvault key create
de la CLI de Azure para generar una clave de cifrado de claves y almacenarla en el almacén de claves.
az keyvault key create --name "myKEK" --vault-name "<your-unique-keyvault-name>" --kty RSA --size 4096
En su lugar, puede importar una clave privada mediante el comando az keyvault key import de la CLI de Azure:
En cualquier caso, proporciona el nombre de la clave de cifrado de claves al parámetro az vm encryption enable
--key-encryption-key del comando de la CLI de Azure.
az vm encryption enable -g "MyResourceGroup" --name "myVM" --disk-encryption-keyvault "<your-unique-keyvault-name>" --key-encryption-key "myKEK"
Use el cmdlet Add-AzKeyVaultKey de Azure PowerShell para generar una clave de cifrado de claves y almacenarla en el almacén de claves.
Add-AzKeyVaultKey -Name "myKEK" -VaultName "<your-unique-keyvault-name>" -Destination "HSM" -Size 4096
En su lugar, puede importar una clave privada mediante el comando az keyvault key import
de Azure PowerShell.
En cualquier caso, especificará tanto el identificador del almacén de claves de la clave de cifrado de claves como la dirección URL de la clave de cifrado de claves en los parámetros Set-AzVMDiskEncryptionExtension -KeyEncryptionKeyVaultId y -KeyEncryptionKeyUrl de Azure PowerShell. En este ejemplo, se asume que se usa el mismo almacén de claves para la clave de cifrado de discos y la clave de cifrado de claves.
$KeyVault = Get-AzKeyVault -VaultName "<your-unique-keyvault-name>" -ResourceGroupName "myResourceGroup"
$KEK = Get-AzKeyVaultKey -VaultName "<your-unique-keyvault-name>" -Name "myKEK"
Set-AzVMDiskEncryptionExtension -ResourceGroupName MyResourceGroup -VMName "MyVM" -DiskEncryptionKeyVaultUrl $KeyVault.VaultUri -DiskEncryptionKeyVaultId $KeyVault.ResourceId -KeyEncryptionKeyVaultId $KeyVault.ResourceId -KeyEncryptionKeyUrl $KEK.Id -SkipVmBackup -VolumeType All
- Script de la CLI de requisitos previos de Azure Disk Encryption
- Script de PowerShell de requisitos previos de Azure Disk Encryption
- Información acerca de Escenarios de Azure Disk Encryption en máquinas virtuales Linux
- Aprenda a solucionar los problemas de Azure Disk Encryption
- Lea los scripts de ejemplo de Azure Disk Encryption