AMD SME / SEV en Ubuntu 20
Objectivo
Habilite AMD SME en su servidor Ubuntu 20.04 y genere una máquina virtual KVM / QEMU asegurada con SEV
Requisitos
- Un servidor dedicado con una CPU AMD Naples / Rome Epyc
- Acceso administrativo (sudo) al servidor a través de SSH
- Ubuntu 20.04 instalado
Procedimiento
Paso 1: habilite SME y SEV
Habilitar SME solo requiere agregar mem_encrypt=on en el cmdline de arranque del kernel. Para poder usar SEV en KVM, necesitamos agregar kvm_amd.sev=1 también.
Para hacer esto, necesitamos agregarlo a GRUB_CMDLINE_LINUX_DEFAULT.
La forma habitual de hacerlo es editando /etc/default/grub, sin embargo, en las imágenes de nube de Ubuntu, necesitamos editar este archivo en su lugar: /etc/default/grub.d/50-cloudimg-settings.cfg
Esto es lo que parece en un Ubuntu 20.04 recién instalado, después de editar el archivo:
Ahora, necesitamos actualizar nuestra configuración de grub para que nuestro cambio sea efectivo:
Paso 2: reinicie el servidor para tener SME / SEV disponible
Reiniciemos el servidor para aplicar nuestros cambios de cmdline:
Una vez que el servidor esté respaldado, deberíamos ver mem_encrypt=on y kvm_amd.sev=1 en /proc/cmdline:
También debería ver los siguientes mensajes en dmesg:
También puede verificar /sys/module/kvm_amd/parameters/sev para verificar que SEV esté disponible:
Paso 3: requisitos de instalación / descarga para generar nuestra VM invitada
Instalar paquetes:
Descarguemos la imagen para nuestra VM. Usaremos una imagen de nube Ubuntu 20.04:
Paso 4 - Prepara la imagen
Asegurémonos de que la imagen tenga el formato correcto para QEMU / KVM y colóquela en la carpeta adecuada:
Como estamos usando una imagen en la nube, también debemos preparar una pequeña ISO que configurará la contraseña del usuario de ubuntu:
Paso 5 - Inicie nuestra VM
Nota: al momento de escribir, hay un problema en apparmor / libvirt que hará que el comando anterior falle con el siguiente mensaje:
Para solucionarlo, editaremos /etc/apparmor.d/abstraction/libvirt-qemu para autorizar el acceso de rw a /dev/sev. Así es como debería verse una vez editado:
Una vez que hemos generado con éxito la VM, podemos iniciar sesión utilizando las credenciales definidas en la cloud-config anteriormente, y verificar que SEV esté habilitado:
Referencias y recursos adicionales.
- AMD Secure Encrypted Virtualization (SEV)
- libvirt : Launch security with AMD SEV
- libvirt XML domain format - launchSecurity
- libvirt domain capabilities - SEV
- github.com/AMDESE/AMDSEV
- github.com/AMDESE/sev-tool
Más información
Interactúe con nuestra comunidad de usuarios en https://community.ovh.com/en/
-
Secure Shell (SSH) : un protocole de réseau sécurisé utilisé pour établir des connexions entre un client et un serveur. Il permet d'exécuter des commandes à distance de manière sécurisée. ↩