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

La creación y configuración de un almacén de claves para su uso con Azure Disk Encryption conlleva estos tres pasos:

  1. Creación de un grupo de recursos, en caso de que sea necesario.
  2. Creación de un almacén de claves.
  3. Establecimiento de directivas de acceso avanzadas del almacén de claves.

Estos pasos se muestran en los siguientes tutoriales de inicio rápido:

Si lo desea, también puede generar o importar una clave de cifrado de claves (KEK).

Instalación de herramientas y conexión a Azure

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.

Conexión a la cuenta de Azure

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

Crear un grupo de recursos

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.

Azure CLI

az group create --name "myResourceGroup" --location eastus

Azure PowerShell

New-AzResourceGroup -Name "myResourceGroup" -Location "EastUS"

Creación de un Almacén de claves

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.

Azure CLI

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

Azure PowerShell

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

Plantilla de Resource Manager

También puede crear un almacén de claves mediante la plantilla de Resource Manager.

  1. En la plantilla de inicio rápido de Azure, haga clic en Implementar en Azure.
  2. 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.

Establecimiento de directivas de acceso avanzadas del almacén de claves

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.

Azure CLI

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"
    

Azure PowerShell

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
    

Portal de Azure

  1. Seleccione el almacén de claves y vaya a Directivas de acceso.

  2. En "Habilitar acceso a", active la casilla llamada Azure Disk Encryption para el cifrado de volúmenes.

  3. Seleccione Azure Virtual Machines para la implementación o Azure Resource Manager para la implementación de plantillas, si fuera necesario.

  4. Haga clic en Save(Guardar).

    Azure key vault advanced access policies

Azure Disk Encryption y la rotación automática

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á.

Configuración de una clave de cifrado de claves (KEK)

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:

Azure CLI

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"

Azure PowerShell

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

Pasos siguientes