AMD SME/SEV sur Ubuntu 20
Activer SME sur votre serveur ubuntu et générer une machine virtuelle SEV
Activer SME sur votre serveur ubuntu et générer une machine virtuelle SEV
Dernière mise à jour le 2020/05/07
Activez AMD SME sur votre serveur Ubuntu 20.04 et créez une machine virtuelle KVM/QEMU sécurisée avec SEV
L'activation de SME nécessite simplement l'ajout de "mem_encrypt=on" sur la ligne de commande de démarrage du kernel. Pour pouvoir utiliser SEV dans KVM, nous devons aussi ajouter "kvm_amd.sev=1".
Pour ce faire, nous devons l'ajouter à "GRUB_CMDLINE_LINUX_DEFAULT".
La façon habituelle de faire cela est de modifier /etc/default/grub
, cependant, sur les images cloud Ubuntu, nous devons modifier ce fichier à la place : "/etc/default/grub.d/50-cloudimg-settings.cfg"
Voici à quoi ça ressemble sur un Ubuntu 20.04 fraîchement installé, après avoir modifié le fichier :
ubuntu@nsXXX:~# grep mem_encry /etc/default/grub.d/50-cloudimg-settings.cfg
GRUB_CMDLINE_LINUX_DEFAULT="modprobe.blacklist=btrfs mem_encrypt=on kvm_amd.sev=1"
ubuntu@nsXXX:~#
Maintenant, nous devons mettre à jour notre configuration grub pour rendre notre changement efficace :
sudo update-grub
Redémarrons le serveur pour appliquer nos modifications de ligne de commande :
sudo reboot
Une fois le serveur en ligne, nous devrions voir "mem_encrypt=on" et "kvm_amd.sev=1" dans `/proc/cmdline" :
ubuntu@nsXXX:~# cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-5.4.0-26-generic root=UUID=41b1b860-c5d2-4b43-a7e5-cb45c2f44e08 ro vga=normal nomodeset modprobe.blacklist=btrfs mem_encrypt=on kvm_amd.sev=1
Vous devriez également voir les messages suivants dans dmesg :
7ubuntu@nsXXX:~# dmesg | grep SME
[ 1.247928] AMD Secure Memory Encryption (SME) active
ubuntu@nsXXX:~# dmesg | grep "SEV supported"
[ 7.637219] SVM: SEV supported
Vous pouvez également vérifier que SEV est disponible :
ubuntu@nsXXX:~# cat /sys/module/kvm_amd/parameters/sev
1
Installer des packages :
sudo apt update
sudo apt install libvirt-daemon-system virtinst qemu-utils cloud-image-utils
Téléchargeons l'image pour notre machine virtuelle. Nous utiliserons une image cloud Ubuntu 20.04
wget https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img
Veillons à ce que l'image soit dans le bon format pour QEMU/KVM, et la mettons dans le dossier approprié :
sudo qemu-img convert focal-server-cloudimg-amd64.img /var/lib/libvirt/images/sev-guest.img
Puisque nous utilisons une image cloud, nous devons aussi préparer une petite ISO qui configurera le mot de passe de l'utilisateur "ubuntu" :
cat >cloud-config <<EOF
#cloud-config
password: CHANGEME.aiZ4aetiesig
chpasswd: { expire: False }
ssh_pwauth: False
EOF
sudo cloud-localds /var/lib/libvirt/images/sev-guest-cloud-config.iso cloud-config
sudo virt-install \
--name sev-guest \
--memory 4096 \
--memtune hard_limit=4563402 \
--boot uefi \
--disk /var/lib/libvirt/images/sev-guest.img,device=disk,bus=scsi \
--disk /var/lib/libvirt/images/sev-guest-cloud-config.iso,device=cdrom \
--os-type linux \
--os-variant ubuntu20.04 \
--import \
--controller type=scsi,model=virtio-scsi,driver.iommu=on \
--controller type=virtio-serial,driver.iommu=on \
--network network=default,model=virtio,driver.iommu=on \
--memballoon driver.iommu=on \
--graphics none \
--launchSecurity sev
A noter : au moment de l'écriture de cet article, il y a un problème dans apparmor/libvirt qui fera échouer la commande ci-dessus avec le message suivant :
ERROR internal error: process exited while connecting to monitor: 2020-04-28T15:04:14.348979Z qemu-system-x86_64: sev_guest_init: Failed to open /dev/sev 'Permission denied'
Pour le corriger, nous allons éditer "/etc/apparmor.d/abstractions/libvirt-qemu" pour autoriser l'accès "rw" à /dev/sev
. Voici à quoi ça devrait ressembler une fois édité :
[...]
/dev/net/tun rw,
/dev/kvm rw,
/dev/ptmx rw,
/dev/sev rw,
@{PROC}/*/status r,
[...]
Une fois la machine virtuelle créée avec succès, nous pouvons nous connecter en utilisant les informations d'identification définies précédemment dans "cloud-config", et vérifier que SEV est effectivement activé :
ubuntu@ubuntu:~$ dmesg | grep SEV
[ 0.158239] AMD Secure Encrypted Virtualization (SEV) active
Échangez avec notre communauté d'utilisateurs sur https://community.ovh.com.
Please feel free to give any suggestions in order to improve this documentation.
Whether your feedback is about images, content, or structure, please share it, so that we can improve it together.
Your support requests will not be processed via this form. To do this, please use the "Create a ticket" .
Thank you. Your feedback has been received.
Accedez à votre espace communautaire. Posez des questions, recherchez des informations, publiez du contenu et interagissez avec d’autres membres d'OVHcloud Community.
Echanger sur OVHcloud Community