Activer AMD SME/SEV sur un serveur dédié (Ubuntu)
Activez SME sur votre serveur dédié Ubuntu et créez une machine virtuelle SEV sécurisée
Objectif
Activez AMD SME sur votre serveur Ubuntu 20.04 et créez une machine virtuelle KVM/QEMU sécurisée avec SEV
Prérequis
- Un serveur dédié avec d'un processeur Epyc AMD Naples/Rome
- Accès administratif (sudo) au serveur avec SSH
- Ubuntu 20.04 installé
En practique
Étape 1 - Activer SME et 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 :
Maintenant, nous devons mettre à jour notre configuration grub pour rendre notre changement efficace :
Étape 2 - Redémarrez le serveur pour que SME/SEV soit disponible
Redémarrons le serveur pour appliquer nos modifications de ligne de commande :
Une fois le serveur en ligne, nous devrions voir "mem_encrypt=on" et "kvm_amd.sev=1" dans `/proc/cmdline" :
Vous devriez également voir les messages suivants dans dmesg :
Vous pouvez également vérifier que SEV est disponible :
Étape 3 - Configuration requise pour la création de notre machine virtuelle invitée
Installer des packages :
Téléchargeons l'image pour notre machine virtuelle. Nous utiliserons une image cloud Ubuntu 20.04
Étape 4 - Préparer l'image
Veillons à ce que l'image soit dans le bon format pour QEMU/KVM, et la mettons dans le dossier approprié :
Puisque nous utilisons une image cloud, nous devons aussi préparer une petite ISO qui configurera le mot de passe de l'utilisateur "ubuntu" :
Étape 5 - Lancer la machine virtuelle
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 :
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é :
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é :
Références et ressources supplémentaires
- 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
Aller plus loin
Comment gérer Intel SGX sur un serveur dédié
Échangez avec notre communauté d'utilisateurs.