KMS

Encriptación a nivel de agregado en ONTAP

© 2021 NetApp

Previament en un post expliqué como configurar un volumen encriptado utilizando un administrador de llaves de encriptación (KMS) especificamente de la compañía HyTrust. En este caso específico cada volumen es encriptado individualmente utilizado llaves independientes. Una desventaja de este método es que afecta la posibilidad de aumentar los niveles de eficiencia de reducción de datos como lo son; de-duplicación, compresión y compactación.

Para eliminar esta desventaja los gurus de NetApp se ingeniaron la idea de aplicar la función de encriptación a nivel de agregado permitiendo que los volúmenes que residan dentro del mismo agregado compartan la llave de encriptación. Esta tecnología es conocida como “NetApp Aggregate Encryption” (NAE). Esto permite que los clientes tengan la opción de aprovecharse de las tecnologías de eficiencia de almacenamiento en conjunto al proceso de encriptación.

Ahora nos toca hablar de como podemos crear un agregado encriptado en Ontap pero primero que nada… ¿Que es un agregado dentro de Ontap?

Utilizando como referencia el portal de “Knowledge Base” de NetApp:

Un agregado es una colección de discos (o particiones) organizados en uno o más grupos de RAID. Es el objeto de almacenamiento más básico dentro de ONTAP y es necesario para permitir el aprovisionamiento de espacio para los dispositivos conectados.

NetApp Knowledge Base
© 2021 flackbox.com

Paso 1: Validar pre-requisitos en Ontap.

Para poder utilizar la opción de encriptación a nivel de agregado en necesario tener una versión de Ontap 9.6 o mayor y que estén instaladas las licencias necesarias en el cluster. En este caso utilizamos el comando <version> para validar la versión actual del cluster y el comando <license show -package VE> para desplegar la información de las licencias.

OnPrem-HQ::> version
NetApp Release 9.9.1RC1: Fri Apr 30 06:35:11 UTC 2021
 
OnPrem-HQ::> license show -package VE -fields package,owner,description,type  
  (system license show)
serial-number                  package owner         description               type    
------------------------------ ------- ------------- ------------------------- ------- 
X-XX-XXXXXXXXXXXXXXXXXXXXXXXXX VE      OnPrem-HQ-01 Volume Encryption License license 
X-XX-XXXXXXXXXXXXXXXXXXXXXXXXX VE      OnPrem-HQ-02 Volume Encryption License license 
2 entries were displayed.

OnPrem-HQ::> 

Nota: previamente he realizado la configuración del KMS externo en Ontap. Enlace

Paso 2: Validar los disco “Spare” disponibles.

Para comenzar, existen dos formas para encriptar un agregado; inicialmente cuando es creado o la conversión en vivo de un agregado existente. Inicialmente estaré creando un agregado nuevo y luego en otro tutorial les mostrare como podemos convertir un agregado existente. Para crear un agregado es necesario tener disco duros disponibles o en el estado de “spare” como comúnmente le llama NetApp.

El comando <storage aggregate show-spare-disks> nos permite ver cuantos discos particionado están disponibles en el nodo donde crearemos el nuevo agregado encriptado. En este caso en particular podemos ver que existen 24 disco particionados utilizando la opción de “Root-Data1-Data2“. Para conocer mas sobre esta estrategia de disco favor de seguir el siguiente enlace:

ADP(v1) and ADPv2 in a nutshell, it’s delicious!

 © 2021 Chris Maki
OnPrem-HQ::> storage aggregate show-spare-disks -original-owner OnPrem-HQ-01 
                                                                      
Original Owner: OnPrem-HQ-01
 Pool0
  Root-Data1-Data2 Partitioned Spares
                                                              Local    Local
                                                               Data     Root Physical
 Disk             Type   Class          RPM Checksum         Usable   Usable     Size Status
 ---------------- ------ ----------- ------ -------------- -------- -------- -------- --------
 VMw-1.1          SSD    solid-state      - block           11.63GB       0B  26.67GB zeroed
 VMw-1.2          SSD    solid-state      - block           11.63GB       0B  26.67GB zeroed
 VMw-1.3          SSD    solid-state      - block           11.63GB       0B  26.67GB zeroed
 VMw-1.4          SSD    solid-state      - block           11.63GB       0B  26.67GB zeroed
 VMw-1.5          SSD    solid-state      - block           11.63GB       0B  26.67GB zeroed
 VMw-1.6          SSD    solid-state      - block           11.63GB       0B  26.67GB zeroed
 VMw-1.7          SSD    solid-state      - block           11.63GB       0B  26.67GB zeroed
 VMw-1.8          SSD    solid-state      - block           11.63GB       0B  26.67GB zeroed
 VMw-1.9          SSD    solid-state      - block           11.63GB       0B  26.67GB zeroed
 VMw-1.10         SSD    solid-state      - block           11.63GB       0B  26.67GB zeroed
 VMw-1.11         SSD    solid-state      - block           11.63GB   3.35GB  26.67GB zeroed
 VMw-1.12         SSD    solid-state      - block           11.63GB   3.35GB  26.67GB zeroed
 VMw-1.13         SSD    solid-state      - block           11.63GB       0B  26.67GB zeroed
 VMw-1.14         SSD    solid-state      - block           11.63GB       0B  26.67GB zeroed
 VMw-1.15         SSD    solid-state      - block           11.63GB       0B  26.67GB zeroed
 VMw-1.16         SSD    solid-state      - block           11.63GB       0B  26.67GB zeroed
 VMw-1.17         SSD    solid-state      - block           11.63GB       0B  26.67GB zeroed
 VMw-1.18         SSD    solid-state      - block           11.63GB       0B  26.67GB zeroed
 VMw-1.19         SSD    solid-state      - block           11.63GB       0B  26.67GB zeroed
 VMw-1.20         SSD    solid-state      - block           11.63GB       0B  26.67GB zeroed
 VMw-1.21         SSD    solid-state      - block           11.63GB       0B  26.67GB zeroed
 VMw-1.22         SSD    solid-state      - block           11.63GB       0B  26.67GB zeroed
 VMw-1.23         SSD    solid-state      - block           11.63GB       0B  26.67GB zeroed
 VMw-1.24         SSD    solid-state      - block           11.63GB       0B  26.67GB zeroed
24 entries were displayed.

OnPrem-HQ::> 

Paso 3: Crear el agregado encriptado.

Para crear el agregado encriptado utilizamos el comando <storage aggregate create> con la opción de <encrypt-with-aggr-key true>. En este caso creamos un agregado seguro compuesto de 23 disco “particiones”.

Nota: Para este ejemplo se utilizo el tipo de RAID “Dual Parity”

OnPrem-HQ::> storage aggregate create -aggregate OnPrem_HQ_01_SSD_1 -diskcount 23 -node OnPrem-HQ-01 -raidtype raid_dp -encrypt-with-aggr-key true 

Info: The layout for aggregate "OnPrem_HQ_01_SSD_1" on node "OnPrem-HQ-01"
      would be:
      
      First Plex
      
        RAID Group rg0, 23 disks (block checksum, raid_dp)
                                                            Usable Physical
          Position   Disk                      Type           Size     Size
          ---------- ------------------------- ---------- -------- --------
          shared     VMw-1.1                   SSD               -        -
          shared     VMw-1.2                   SSD               -        -
          shared     VMw-1.3                   SSD         11.61GB  11.64GB
          shared     VMw-1.4                   SSD         11.61GB  11.64GB
          shared     VMw-1.5                   SSD         11.61GB  11.64GB
          shared     VMw-1.6                   SSD         11.61GB  11.64GB
          shared     VMw-1.7                   SSD         11.61GB  11.64GB
          shared     VMw-1.8                   SSD         11.61GB  11.64GB
          shared     VMw-1.9                   SSD         11.61GB  11.64GB
          shared     VMw-1.10                  SSD         11.61GB  11.64GB
          shared     VMw-1.18                  SSD         11.61GB  11.64GB
          shared     VMw-1.16                  SSD         11.61GB  11.64GB
          shared     VMw-1.13                  SSD         11.61GB  11.64GB
          shared     VMw-1.14                  SSD         11.61GB  11.64GB
          shared     VMw-1.15                  SSD         11.61GB  11.64GB
          shared     VMw-1.19                  SSD         11.61GB  11.64GB
          shared     VMw-1.20                  SSD         11.61GB  11.64GB
          shared     VMw-1.21                  SSD         11.61GB  11.64GB
          shared     VMw-1.17                  SSD         11.61GB  11.64GB
          shared     VMw-1.22                  SSD         11.61GB  11.64GB
          shared     VMw-1.11                  SSD         11.61GB  11.64GB
          shared     VMw-1.12                  SSD         11.61GB  11.64GB
          shared     VMw-1.23                  SSD         11.61GB  11.64GB
      
      Aggregate capacity available for volume use would be 219.5GB.
      
Do you want to continue? {y|n}: y
[Job 817] Job succeeded: DONE                                                  

OnPrem-HQ::> 

Una vez creado pasaremos a verificar el agregado, para esto utilizaremos el comando <storage aggregate show> y filtraremos el resultado con la opción de <encrypt-with-aggr-key>.

OnPrem-HQ::> storage aggregate show -fields aggregate,size,availsize,usedsize,state,node,raidstatus,encrypt-with-aggr-key 
aggregate           node          availsize raidstatus      size    state  usedsize encrypt-with-aggr-key 
------------------- ------------- --------- --------------- ------- ------ -------- --------------------- 
OnPrem_HQ_01_SSD_1 OnPrem-HQ-01 219.5GB   raid_dp, normal 219.5GB online 480KB    true                  
OnPrem_HQ_02_SSD_1 OnPrem-HQ-02 209.3GB   raid_dp, normal 219.5GB online 10.12GB  false                 
aggr0_OnPrem_HQ_01 OnPrem-HQ-01 1.11GB    raid_dp, normal 22.80GB online 21.69GB  false                 
aggr0_OnPrem_HQ_02 OnPrem-HQ-02 1.11GB    raid_dp, normal 22.80GB online 21.69GB  false                 
4 entries were displayed.

OnPrem-HQ::> 

En el resultado del comando podemos ver que fue creado el agregado con la encriptación habilitada.

Paso 4: Crear un volumen dentro del agregado encriptado.

A diferencia de la encriptación a nivel de volúmenes NVE, al utilizar encriptación a nivel de agregado no es necesario especificar la opción de encriptar a la hora de crear el volumen. El comando <vol create> crea un volumen encriptado de forma predeterminada cuando el volumen reside en un agregado que utiliza NAE.

OnPrem-HQ::> vol create -vserver SAN -volume Secure_Vol -aggregate OnPrem_HQ_01_SSD_1 -size 10GB -space-guarantee none 
[Job 818] Job succeeded: Successful                                            

OnPrem-HQ::>

Al utilizar el comando <vol show> con la opción de <encryption-state full> podemos ver que el volumen fue creado encriptado de forma predeterminada.

OnPrem-HQ::> vol show -encryption-state full -aggregate OnPrem_HQ_01_SSD_1 -fields Vserver,Volume,encrypt,encryption-type,encryption-state 
vserver volume     encryption-type encrypt encryption-state 
------- ---------- --------------- ------- ---------------- 
SAN     Secure_Vol aggregate       true    full             

OnPrem-HQ::>

Resumen

En este tutorial le mostré cómo configurar la tecnología de encriptación de nivel agregado dentro de Ontap que nos permite utilizar una clave única para crear volúmenes encriptados. Esto nos permite utilizar tecnologías de reducción y eficiencia de datos en conjunto con mecanismos de seguridad que mejoran o fortalecen la postura de seguridad de la organización.

Configuración de cifrado en volumen de NetApp con Gestor de llaves externo

Utilizando como referencia la documentación de NetApp:

NetApp Volume Encryption (NVE) de NetApp es una tecnología basada en software para cifrar los datos en reposo de un volumen a la vez. Una clave de cifrado a la que sólo puede acceder el sistema de almacenamiento garantiza que los datos del volumen no puedan leerse si el dispositivo subyacente se reutiliza, se devuelve, se extravía o se roba.

NetApp Documentation

En este tutorial les explico lo fácil que es configurar y administrar esta impresionante característica de seguridad.

Antes de comenzar a configurar esta característica es necesario tener un “Servicio de Gestión de LLaves” existente. Para el propósito de este tutorial usaré el KMS de “HyTrust KeyControl” del que ya explique previamente en el blog. Si quieres saber más sobre el tema, lee el siguiente post.

Paso 1: Crear un certificado de cliente para propósitos de autenticación:

Vaya a [KMIP > Client Certificate] y seleccione Create Certificate en el menú de Actions.

Seleccione un nombre para el certificado y presione Create.

Una vez creado el certificado se debe proceder a guardarlo en un lugar seguro.

El archivo descargado contiene el certificado del Cliente y del Root CA necesarios para configurar la opción de KMS en Ontap.

Paso 2: Validación del clúster Ontap

Los aspectos importantes a tener en cuenta antes de poder configurar esta función de seguridad son el estado del clúster y la licencia necesaria que le brinde soporte a la función de encriptación.

El comando cluster show muestra el estado general del cluster de Ontap.

OnPrem-HQ::> cluster show 
Node                  Health  Eligibility
--------------------- ------- ------------
OnPrem-HQ-01         true    true
OnPrem-HQ-02         true    true
2 entries were displayed.

El comando system node show muestra la salud del nodo y el modelo del sistema.

OnPrem-HQ::> system node show
Node      Health Eligibility Uptime        Model       Owner    Location  
--------- ------ ----------- ------------- ----------- -------- ---------------
OnPrem-HQ-01 true true           00:18:10 SIMBOX
OnPrem-HQ-02 true true           00:18:08 SIMBOX
2 entries were displayed.

Con el comando system license show se puede validar la licencia instalada en el cluster. Aquí se puede ver que la licencia de encriptación de volumen está instalada en ambos nodos.

OnPrem-HQ::> system license show -package VE

Serial Number: X-XX-XXXXXXXXXXXXXXXXXXXXXXXXXX
Owner: OnPrem-HQ-01
Installed License: Legacy Key
Capacity: -
Package           Type     Description           Expiration
----------------- -------- --------------------- -------------------
VE                license  Volume Encryption License 
                                                 -

Serial Number: X-XX-XXXXXXXXXXXXXXXXXXXXXXXXXX
Owner: OnPrem-HQ-02
Installed License: Legacy Key
Capacity: -
Package           Type     Description           Expiration
----------------- -------- --------------------- -------------------
VE                license  Volume Encryption License 
                                                 -
2 entries were displayed.

OnPrem-HQ::> 

Paso 3: Configuración del certificado de KMS en Ontap:

Según establecido en la documentación de NetApp:

El clúster y el servidor KMIP utilizan los certificados SSL de KMIP para verificar la identidad del otro y establecer una conexión SSL. Antes de configurar la conexión SSL con el servidor KMIP, debe instalar los certificados SSL de cliente KMIP para el clúster y el certificado público SSL para la autoridad de certificación (CA) raíz del servidor KMIP.

NetApp KMIP Documentation

Para instalar el certificado de cliente KMIP en el cluster de NetApp, ejecute los siguientes comandos:

Nota: El contendido de los certificados son extraídos de los archivos previamente descargados. Los archivos ONTAPEncryption.pem y cacert.pem contienen la información necesaria.

OnPrem-HQ::> security certificate install –vserver OnPrem-HQ -type client –subtype kmip-cert
Please enter Certificate: Press <Enter> when done
-----BEGIN CERTIFICATE----- 
Certificate Content
-----END CERTIFICATE-----
Please enter Private Key: Press <Enter> when done
-----BEGIN PRIVATE KEY-----  
Certificate Private Key Content
-----END PRIVATE KEY-----
You should keep a copy of the private key and the CA-signed digital certificate for future
reference.

The installed certificate's CA and serial number for reference:
CA: HyTrust KeyControl Certificate Authority
serial: C9A148B9

The certificate's generated name for reference: ONTAPEncryption
OnPrem-HQ::> security certificate install -vserver OnPrem-HQ -type server-ca -subtype kmip-cert 

Please enter Certificate: Press <Enter> when done
-----BEGIN CERTIFICATE-----  
Certificate Content
-----END CERTIFICATE-----
You should keep a copy of the CA-signed digital certificate for future reference.

The installed certificate's CA and serial number for reference:
CA: HyTrust KeyControl Certificate Authority
serial: 60A148B6

The certificate's generated name for reference: HyTrustKeyControlCertificateAuthority

Paso 4: Configuración de la solución Volume Encryption de NetApp:

Para este tutorial es necesario configurar un servidor de gestión de llaves “KMS” externo para que el sistema de almacenamiento pueda almacenar y recuperar de forma segura las llaves de autenticación para la solución de NetApp Volume Encryption (NVE).

Nota: NetApp recomienda un mínimo de dos servidores para la redundancia y la recuperación de desastres.

El siguiente comando permite añadir el servidor de KMS al sistema de Ontap utilizando la dirección de IP 192.168.7.201, el puerto TCP/5696 y utilizando los certificados configurados previamente.

OnPrem-HQ::> security key-manager external enable -vserver OnPrem-HQ -key-servers 192.168.7.201:5696 -client-cert ONTAPEncryption -server-ca-certs HyTrustKeyControlCertificateAuthority 

OnPrem-HQ::> security key-manager external show                                                                                                                                           

                  Vserver: OnPrem-HQ
       Client Certificate: ONTAPEncryption
   Server CA Certificates: HyTrustKeyControlCertificateAuthority
          Security Policy: -

Key Server
------------------------------------------------
192.168.7.201:5696

Es importante validar que el servicio de KMS esté “available” antes de proseguir a crear los volúmenes encriptados. El comando security key-manager external show-status no permite validar el estado del servicio.

OnPrem-HQ::> security key-manager external show-status

Node  Vserver  Key Server                                   Status
----  -------  -------------------------------------------  ---------------
OnPrem-HQ-01
      OnPrem-HQ
               192.168.7.201:5696                           available
OnPrem-HQ-02
      OnPrem-HQ
               192.168.7.201:5696                           available
2 entries were displayed.

OnPrem-HQ::> 

Paso 5: Crear un volumen encriptado (NVE)

En ésta etapa final del tutorial probaremos que la configuración realizada es la correcta al crear un volumen encriptado dentro de Ontap. Para este paso usaremos el comando vol create utilizando la opcion de encrypt true

OnPrem-HQ::> vol create TEST_Encryption -vserver SAN -size 10G -aggregate OnPrem_HQ_01_SSD_1 -encrypt true 
  
[Job 763] Job succeeded: Successful 

Con el comando vol show podemos verificar que el volumen haya sido creado con la opción de encriptación.

OnPrem-HQ::> vol show -encryption -vserver SAN -encryption-state full 
Vserver   Volume       Aggregate    State      Encryption State
--------- ------------ ------------ ---------- ----------------
SAN       TEST_Encryption OnPrem_HQ_01_SSD_1 online full

OnPrem-HQ::> 

Paso 6: Validar en el servidor KMS la información de Encriptación.

En este ultimo paso entramos al portal de administración de la aplicación “HyTrust KeyControl” para validar que las llaves de encriptacion estén grabadas en la plataforma. Para validar ésta información vamos al menú de [KMIP > Objects] donde se puede validar que las llaves fueron creadas luego de creado el volumen dentro de Ontap.

Resumen

En este tutorial mostramos como configurar el servicio de KMS dentro de Ontap que nos permite crear volúmenes encriptados permitiendo aumentar o mejorar la postura de seguridad en nuestra infraestructura u organización.