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
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.
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».
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.
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>"
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
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.
Adicionalmente puedes conectarte nuevamente al servidor y verificar que la partición sda1 se encuentra encriptada.
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.
az group delete myResourceGroup
Responses