Créez un espace d'isolation de confiance au sein d'une instance ECS avec Enclave pour protéger vos applications et vos données en cours d'utilisation.
Contexte
Les données se classent en trois catégories : données au repos, données en transit et données en cours d'utilisation.
Le chiffrement protège les données au repos et les données en transit.
La protection des données en cours d'utilisation requiert le calcul confidentiel.
Enclave crée un espace d'isolation de confiance au sein d'une instance ECS et exécute des logiciels légitimes dans l'enclave afin de garantir la confidentialité et l'intégrité de votre code et de vos données contre les logiciels malveillants. Cette solution convient aux secteurs exigeant une protection rigoureuse des données, tels que la finance, Internet et la santé.
Fonctionnement d'Enclave
Les ressources de calcul (vCPU et mémoire) d'une instance ECS (la VM principale) sont partitionnées pour créer une VM Enclave (EVM) qui sert d'environnement d'exécution de confiance. L'EVM est sécurisée par :
L'isolation basée sur la virtualisation : l'EVM est isolée de la VM principale et des autres instances ECS.
Une surface d'attaque minimale : l'EVM exécute un système d'exploitation de confiance indépendant, sans stockage persistant, sans connexions interactives ni réseau externe. Elle communique avec la VM principale uniquement via un canal sécurisé local basé sur vsock.
Le schéma suivant illustre le fonctionnement d'Enclave.
Enclave offre une sécurité multicouche. L'architecture SHENLONG de troisième génération, équipée de puces TPM ou TCM, dote l'EVM de dispositifs vTPM ou vTCM pour renforcer la confiance. Les SDK vous permettent de construire et de gérer les environnements Enclave. Pour l'attestation, les applications confidentielles génèrent du matériel d'attestation — incluant les données de la plateforme, les informations sur l'application et les signatures — au moment de l'exécution, puis les vérifient via un serveur d'attestation distante, qui peut interagir avec Key Management Service (KMS). Une fois que la VM principale alloue des ressources à l'EVM, la couche inférieure les isole de sorte que la VM principale ne puisse pas accéder aux ressources vCPU ou mémoire de l'EVM.
Le schéma suivant présente l'architecture d'Enclave.
Limites
Seules les instances disposant d'au moins quatre vCPU dans les familles d'instances hfg9i, hfc9i, hfr9i, g8i, c8i et r8i prennent en charge Enclave.
Chaque instance ECS ne prend en charge qu'une seule enclave.
Réservez au moins un cœur de processeur physique et une partie de la mémoire pour la VM principale avant d'utiliser une enclave. Les ressources restantes peuvent être allouées à l'enclave. Si l'hyperthreading est activé, deux hyperthreads du même cœur sont réservés ; l'instance doit donc disposer d'au moins quatre vCPU.
Pour connaître les autres limites, consultez la rubrique Limites.
Créer une instance compatible avec Enclave
La création d'une instance compatible avec Enclave est similaire à celle d'une instance classique. Cette section couvre uniquement les paramètres spécifiques à Enclave. Pour les autres paramètres, reportez-vous à la rubrique Créer une instance avec Custom Launch.
Accédez à la page Console ECS - Instance.
Dans le coin supérieur gauche de la page, sélectionnez une région et un groupe de ressources.
-
Cliquez sur Create Instance et configurez les paramètres suivants.
Paramètre
Description
Type d'instance
Sélectionnez un type d'instance disposant d'au moins 4 vCPU dans les familles d'instances hfg9i, hfc9i, hfr9i, g8i, c8i ou r8i.
Image
Sélectionnez Enclave, puis choisissez l'image Alibaba Cloud Linux 2.1903 LTS 64-bit (UEFI).
RemarqueLa sélection de Enclave installe automatiquement un système d'exploitation de confiance.
Rôle RAM de l'instance
Sélectionnez AliyunECSInstanceForYundunSysTrustRole, un rôle lié au service fourni par Alibaba Cloud.
Installer la CLI Enclave
Utiliser Workbench pour se connecter à l'instance compatible avec Enclave via SSH.
-
Installez le package RPM de la CLI Enclave.
-
Téléchargez le package RPM de la CLI Enclave.
wget https://enclave-cn-beijing.oss-cn-beijing.aliyuncs.com/download/linux/enclave-cli/x86_64/2.1903/enclave-cli-1.0.8-1.x86_64.rpm -
Installez la CLI Enclave.
sudo rpm -ivh enclave-cli-1.0.8-1.x86_64.rpm -
Vérifiez l'installation.
enclave-cli --versionSi un numéro de version s'affiche, l'installation a réussi.
[test@iz2zebt88ixxx ~]$ enclave-cli --version Enclave CLI 1.0.8
-
-
Ajoutez l'utilisateur actuel aux groupes
deetdocker.-
Ajoutez l'utilisateur actuel au groupe
de:sudo usermod -aG de <username>RemarqueRemplacez
<username>par le nom d'utilisateur réel, par exempletest. -
Ajoutez l'utilisateur actuel au groupe
docker.sudo usermod -aG docker <username>RemarqueRemplacez
<username>par le nom d'utilisateur réel, par exempletest. Reconnectez-vous à l'instance pour appliquer les modifications.
-
-
Préallouez les vCPU et la mémoire pour l'enclave.
-
Ouvrez le fichier
allocator.yaml.sudo vim /etc/ali-enclaves/allocator.yaml Appuyez sur la touche
ipour passer en mode insertion.-
Définissez les paramètres suivants :
memory_mib : mémoire allouée à l'enclave. Unité : MiB.
cpu_count : nombre de vCPU alloués à l'enclave.
L'exemple suivant alloue 1 024 MiB de mémoire et 2 vCPU à l'enclave.
# Enclave configuration file. # # How much memory to allocate for enclaves (in MiB). memory_mib: 1024 # # How many CPUs to reserve for enclaves. cpu_count: 2 Appuyez sur la touche
Esc, saisissez:wq, puis appuyez sur la toucheEnterpour enregistrer et fermer le fichier.
-
-
Démarrez le service d'allocation des ressources et activez-le au démarrage.
sudo systemctl start ali-enclaves-allocator.service && \ sudo systemctl enable ali-enclaves-allocator.serviceLe service crée un pool de vCPU dédié à l'enclave. Ce pool est exclusif à l'enclave et indisponible pour l'instance hôte.
RemarquePour modifier les ressources allouées, mettez à jour le fichier
allocator.yamlet redémarrez le service :sudo systemctl restart ali-enclaves-allocator.service -
Vérifiez l'état du service.
systemctl status ali-enclaves-allocator.serviceLa sortie suivante indique que le service est en cours d'exécution.
[test@iZ2zebt88 ~]$ systemctl status ali-enclaves-allocator.service ● ali-enclaves-allocator.service - Nitro Enclaves Resource Allocator Loaded: loaded (/usr/lib/systemd/system/ali-enclaves-allocator.service; enabled; vendor preset: disabled) Active: active (exited) since Tue 2023-06-20 10:39:57 CST; 46min ago Main PID: 1960 (code=exited, status=0/SUCCESS) -
Démarrez Docker et activez-le au démarrage.
sudo systemctl start docker && sudo systemctl enable dockerRemarquePour désinstaller la CLI Enclave, exécutez la commande
sudo yum remove enclave-cli. Redémarrez l'instance pour appliquer les modifications.
Références
Pour utiliser la CLI Enclave, consultez la rubrique Démarrage rapide.