Cómo configurar Azure Disk Encryption con Azure CLI

Introducción a Azure Disk Encryption

Azure Disk Encryption permite tener un doble nivel de seguridad de los datos almacenados en Azure.

Visita este link si quieres aprender más sobre Cómo funciona Azure Disk Encryption

Azure cli es una de las herramientas de administración de la plataforma Azure y en este tutorial veremos cómo utilizarla para crear una máquina virtual, posteriormente crear un Azure Key Vault y finalmente activar azure disk encryption (ADE).

Requerimientos para Azure Disk Encryption

Para der activar Azure Disk Encryption en una máquina virtual de Azure, es necesario contar con un KeyVault donde se almacenará de manera segura, las claves que requiere la máquina virtual para poder iniciar correctamente.

Este laboratorio lo estaremos realizando desde Windows 10 utilizando Azure CLI para Windows, si usas otro sistema operativo.

Crear máquina virtual

Iniciar sesión en Azure CLI

Puedes verificar si te encuentras autenticado actualmente ejecuta el comando az account list:

az account list
[
  {
    "cloudName": "AzureCloud",
    "homeTenantId": "88c79b9c-2f6c-4f7f-b8c3-1fc99ae88c56",
    "id": "edbee88b-e915-4bad-a132-6911bc888dd7",
    "isDefault": true,
    "managedByTenants": [],
    "name": "Azure subscription 1",
    "state": "Enabled",
    "tenantId": "88c79b9c-2f6c-4f7f-b8c3-1fc99ae88c56",
    "user": {
      "name": "tuusuario@tudominio.com",
      "type": "user"
    }
  }
]

Si no te encuentras autenticado, puedes iniciar sesión en Azure mediante el comando az login.

Crear máquina virtual

Para realizar este laboratorio puedes utilizar una máquina virtual existente o puedes crear una máquina de prueba para que puedas aprender cómo funciona el proceso antes de aplicarlo a tus cargas de producción.

En el primer paso, vamos a crear un grupo de recursos (resoruce group) en el cual crearemos todos los elementos de este laboratorio.

az group create "myResourceGroup" --location eastus

Verifica que el grupo de recursos haya sido creado exitosamente:

az group list -o table

Nuevo grupo de recursos creado exitosamente.

Nota: Tanto la máquina virtual como el Azure KeyVault, deben estar en la misma región.

Nuestra infraestructura será creada en la región East US, si deseas buscar las regiones disponibles en azure, puedes ejecutar el siguiente comando az account list-locations:

az account list-locations --output table

DisplayName               Name                 RegionalDisplayName
------------------------  -------------------  -------------------------------------
East US                   eastus               (US) East US
East US 2                 eastus2              (US) East US 2
South Central US          southcentralus       (US) South Central US
West US 2                 westus2              (US) West US 2
West US 3                 westus3              (US) West US 3
Australia East            australiaeast        (Asia Pacific) Australia East
Southeast Asia            southeastasia        (Asia Pacific) Southeast Asia
North Europe              northeurope          (Europe) North Europe
Sweden Central            swedencentral        (Europe) Sweden Central
UK South                  uksouth              (Europe) UK South
West Europe               westeurope           (Europe) West Europe
Central US                centralus            (US) Central US
North Central US          northcentralus       (US) North Central US
West US                   westus               (US) West US
South Africa North        southafricanorth     (Africa) South Africa North
Central India             centralindia         (Asia Pacific) Central India
East Asia                 eastasia             (Asia Pacific) East Asia
Japan East                japaneast            (Asia Pacific) Japan East
Jio India West            jioindiawest         (Asia Pacific) Jio India West
Korea Central             koreacentral         (Asia Pacific) Korea Central
Canada Central            canadacentral        (Canada) Canada Central
France Central            francecentral        (Europe) France Central
Germany West Central      germanywestcentral   (Europe) Germany West Central
Norway East               norwayeast           (Europe) Norway East
Switzerland North         switzerlandnorth     (Europe) Switzerland North
UAE North                 uaenorth             (Middle East) UAE North
Brazil South              brazilsouth          (South America) Brazil South
Central US (Stage)        centralusstage       (US) Central US (Stage)
East US (Stage)           eastusstage          (US) East US (Stage)
East US 2 (Stage)         eastus2stage         (US) East US 2 (Stage)
North Central US (Stage)  northcentralusstage  (US) North Central US (Stage)
South Central US (Stage)  southcentralusstage  (US) South Central US (Stage)
West US (Stage)           westusstage          (US) West US (Stage)
West US 2 (Stage)         westus2stage         (US) West US 2 (Stage)
Asia                      asia                 Asia
Asia Pacific              asiapacific          Asia Pacific
Australia                 australia            Australia
Brazil                    brazil               Brazil
Canada                    canada               Canada
...
...

En el siguiente comando, crearemos una máquina virtual basada en UbuntuLTS, si deseas buscar cuáles imágenes puedes utilizar, usa el siguiente comando:

az vm image list --query [].urnAlias
[
  "CentOS",
  "Debian",
  "Flatcar",
  "openSUSE-Leap",
  "RHEL",
  "SLES",
  "UbuntuLTS",
  "Win2019Datacenter",
  "Win2016Datacenter",
  "Win2012R2Datacenter",
  "Win2012Datacenter",
  "Win2008R2SP1"
]

Adicionalmente usaremos una máquina virtual con el tamaño Standard_D2S_V3

Para la autenticación utilizaremos usuario/contraseña en vez de SSH keys.

Nota: La clave debe cumplir con los requerimientos de complejidad de Azure

az vm create --resource-group myResourceGroup --name myVM --image UbuntuLTS --size "Standard_D2S_V3" --admin-username "linux-admin-user" --admin-password "..MyComplexPassword.."

Después de unos minutos tendrás una nueva máquina virtual creada en Azure con una dirección IP pública asociada a ella.

Nueva máquina virtual creada en Azure mediante CLI

Por defecto, Azure abre por defecto, el puerto TCP 22 desde cualquier dirección IP de Internet (se recomienda abrir este puerto solo a las IPs desde las que nos estaremos conectando a la máquina virtual), vamos a conectarnos a la máquina virtual por medio de SSH.

Para eso utilizaremos el cliente de ssh de Windows 10 que viene instalado por defecto. Si no tienes el cliente de SSH, puedes utilizar Putty que es un cliente de SSH para Windows.

ssh nombreDeUsuario@52.188.21.128
The authenticity of host '52.188.21.128 (52.188.21.128)' can't be established.
ECDSA key fingerprint is SHA256:yX08tZCoinpAqM+HVO9QmlaFrMPLejTJgHpoNeU4O6s.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

Después de aceptar el fingerprint de esta nueva máquina, estemos conectados por medio de SSH a la nueva máquina virtual.

Antes de comenzar el proceso de cifrado del disco, podemos ver el estado de los discos actuales con el comando lsblk, donde veremos que en el disco sda existe una partición sda1 de tipo «part» que al finalizar el laboratorio será de tipo «crypt».

lsblk

Crear Azure KeyVault

En este momento podemos proceder a crear el KeyVault.

Ten en cuenta que si borras el KeyVault, este será guardado durante 90 días debido al periodo de retención de Soft Delete.

Azure Key Vault soft delete retention in days
az keyvault create --name "<your-unique-keyvault-name>" --resource-group "myResourceGroup" --location "eastus" --enabled-for-disk-encryption

Activar Azure Disk Encryption en la máquina virtual

Una vez creado el KeyVault podemos comenzar el proceso de cifrado de los discos de la máquina virtual, para eso usamos el comando az vm encryption enable.

az vm encryption enable -g myResourceGroup --name MyVM --disk-encryption-keyvault 

"<your-unique-keyvault-name>"
az vm encryption enable

Monitorear estado del proceso de cifrado con azure cli

Una vez inicializado el proceso de cifrado de los discos de la máquina virtual, podemos monitorear el proceso con el comando az vm encryption show.

az vm encryption show --name "myVM" -g "MyResourceGroup" -o table

Proceso de cifrado iniciado / az vm encryption show

Finalización de cifrado de datos de Azure Disk Encryption

Después de unos 20 ó 30 minutos, dependiendo de la cantidad de datos a cifrar, podrás verificar que el proceso terminó exitosamente.

Cifrado de datos terminado

Adicionalmente puedes conectarte nuevamente al servidor y verificar que la partición sda1 se encuentra encriptada.

lsblk después de activar Azure Disk Encryption con Azure CLI

Borrar elementos (opcional)

Si este proceso lo realizaste a modo de laboratorio, es importante eliminar estos elementos para evitar cargos inesperados por parte de Azure.

Para eso vamos a eliminar el grupo de recursos donde hemos creado la máquina virtual y el KeyVault.

Importante
Verifica que no tengas otros elementos en este grupo de recursos, todo será eliminado de manera irrebercible.
az group delete myResourceGroup

Responses

Tu dirección de correo electrónico no será publicada.