Les agents IA gèrent les conversations utilisateur, les appels d'outils externes, la mémoire à long terme et les identifiants de service au moment de l'exécution, ce qui expose une surface d'attaque bien plus large que celle des applications traditionnelles. Les instances de calcul confidentiel hétérogènes gn8v-tee d'Alibaba Cloud s'appuient sur Intel TDX et le calcul confidentiel GPU NVIDIA pour offrir un environnement d'exécution de confiance (TEE) complet. Déployez le framework open source d'agent IA OpenClaw sur ces instances afin de bénéficier d'une protection des données au niveau matériel, d'une attestation à distance et d'une vérification de la chaîne d'approvisionnement, garantissant ainsi une sécurité de bout en bout pour l'inférence des modèles et les interactions utilisateur.
Vue d'ensemble
La solution Confidential Agent déploie OpenClaw sur des instances gn8v-tee compatibles avec Intel TDX (Trust Domain Extensions). Le modèle Mixture of Experts (MoE) Qwen3,6-35B-A3B s'exécute localement sur l'instance ; ainsi, l'exécution de l'agent et l'inférence du modèle restent entièrement confinées dans le domaine de confiance TDX, sans faire appel à des services API tiers. Les entrées utilisateur, les poids du modèle, les états intermédiaires de l'inférence et les sorties de l'IA ne quittent jamais la limite de confiance de l'instance confidentielle pendant le traitement.
gn8v-tee est une famille d'instances de calcul confidentiel basée sur les GPU, lancée par Alibaba Cloud. Elle intègre le chiffrement matériel Intel TDX et l'accélération GPU NVIDIA pour répondre aux exigences de performance d'inférence IA ainsi qu'aux contraintes de conformité en matière de sécurité des données. Cette rubrique utilise l'instance ecs.gn8v-tee.4xlarge à titre d'exemple, exécutant Alibaba Cloud Linux 3 dans la zone cn-beijing-l. Pour des charges de travail plus importantes, vous pouvez passer à l'échelle vers des types d'instances multi-GPU.
Architecture de sécurité
Toutes les données critiques du déploiement Confidential Agent restent confinées à l'intérieur de la limite du TEE. Les trois catégories d'actifs suivantes sont strictement protégées :
|
Actif protégé |
Description |
|
Confidentialité des conversations utilisateur |
Entrées utilisateur, contexte d'exécution des outils et réponses de l'IA, susceptibles de contenir des informations sensibles telles que des données personnelles identifiables (PII), des dossiers médicaux ou des données financières. |
|
Mémoire et état de l'agent |
Mémoire à long terme, configurations et fichiers SKILL dans OpenClaw, qui deviennent des cibles de grande valeur au fil du temps. |
|
Identifiants de service |
Identifiants OAuth pour les plateformes de messagerie instantanée comme DingTalk, clés API externes et jetons de passerelle. |
L'architecture de sécurité repose sur cinq couches, de bas en haut : matériel, chaîne de démarrage, runtime, gestion des clés et communication :
|
Couche de protection |
Mécanisme |
|
Matériel |
Le moteur de chiffrement de la mémoire (MEE) d'Intel TDX chiffre de manière transparente toute la mémoire invitée. Le fournisseur cloud ne peut pas lire le texte en clair. |
|
Chaîne de démarrage |
UKI (Unified Kernel Image) + rootfs dm-verity pour la protection contre la falsification. L'attestation à distance vérifie l'intégrité du runtime. Les valeurs de référence de la chaîne d'approvisionnement sont enregistrées dans le journal de transparence Rekor. |
|
Runtime |
Le bac à sable de politique PEP bloque les commandes à haut risque et l'accès aux chemins sensibles, empêchant l'escalade de privilèges causée par l'injection de prompt. |
|
Gestion des clés |
Les clés de chiffrement du disque sont injectées via un défi d'attestation à distance lors du démarrage et sont détenues localement par l'utilisateur. Le fournisseur cloud n'est pas impliqué. |
|
Communication |
Chiffrement de bout en bout RATS-TLS. Le canal chiffré n'est établi qu'après que l'attestation à distance a vérifié l'identité de l'instance. Toutes les communications sont chiffrées en transit. |
Flux de déploiement
Audit du code source : le responsable du déploiement audite le code source métier pour confirmer l'absence de code malveillant ou de portes dérobées.
Génération des artefacts de build et publication des valeurs de référence logicielles : construisez une image OS légère contenant uniquement le service OpenClaw à partir du code source audité, puis téléchargez la signature SLSA des artefacts de build dans le journal de transparence Rekor afin de publier les valeurs de référence logicielles.
Création d'une instance confidentielle : créez une instance de calcul confidentiel gn8v-tee en utilisant l'image construite.
Audit par attestation à distance et téléchargement des ressources confidentielles : le responsable du déploiement utilise l'outil de déploiement pour effectuer une attestation à distance sur l'instance afin de vérifier qu'elle s'exécute sur du matériel TDX authentique. Après vérification, les ressources confidentielles telles que les clés de chiffrement du disque et les identifiants du bot DingTalk sont automatiquement téléchargées.
Accès à OpenClaw : les utilisateurs peuvent accéder directement à OpenClaw via un navigateur web, un client de bureau ou un terminal TUI, ou indirectement via des plateformes de messagerie instantanée comme DingTalk.
Audit par attestation à distance et transmission chiffrée : avant d'établir une connexion, le client de passerelle approuvée récupère les valeurs de référence logicielles depuis Rekor et les valeurs de référence matérielles depuis Intel PCCS et RIM/OCSP. Une fois la vérification par attestation à distance terminée, un canal chiffré RATS-TLS est établi. Toutes les communications sont chiffrées de bout en bout.
Prérequis
Vous avez activé Alibaba Cloud ECS et votre compte dispose des autorisations nécessaires pour créer des instances gn8v-tee.
-
Vous avez préparé une instance ECS exécutant Alibaba Cloud Linux 3 (à usage général ou autre type) servant de machine de déploiement, avec au moins 80 Go d'espace disque disponible.
ImportantLa machine de déploiement sert uniquement aux opérations de déploiement. Une instance à usage général suffit. Il n'est pas nécessaire d'utiliser une instance gn8v-tee. Dans les étapes suivantes, vous exécuterez des commandes sur la machine de déploiement pour créer l'instance gn8v-tee.
Vous avez obtenu une paire de clés AccessKey Alibaba Cloud. Nous vous recommandons d'utiliser un rôle RAM ou des identifiants temporaires STS.
Si vous souhaitez utiliser l'intégration DingTalk, vous avez créé une application d'entreprise interne DingTalk et obtenu les identifiants requis.
Procédure
Étape 1 : Construire une image de confiance contenant OpenClaw et le moteur d'inférence vLLM
Effectuez les tâches suivantes sur la machine de déploiement (une instance Alibaba Cloud Linux 3) : téléchargez le code source, installez les dépendances, générez les clés, configurez les ressources cloud et construisez l'image de confiance.
-
Connectez-vous à une instance ECS.
Accédez à Console ECS - Instances. Dans le coin supérieur gauche, sélectionnez la région et le groupe de ressources correspondant à l'instance cible.
Accédez à la page de détails de l'instance cible. Cliquez sur Connect et sélectionnez Workbench. Définissez la méthode de connexion sur Terminal Connection, saisissez votre nom d'utilisateur et votre mot de passe, puis connectez-vous au terminal graphique.
-
Téléchargez le code source du projet.
cd ~/ git clone https://github.com/inclavare-containers/confidential-agent cd confidential-agent -
Installez toutes les dépendances logicielles requises.
make install-depsCette commande installe Docker, Terraform, Go, Python, cosign, rekor-cli et d'autres outils nécessaires à la construction et au déploiement.
-
Générez les clés de chiffrement et les fichiers de configuration requis pour le déploiement.
make generate-secretsUne fois les clés générées, modifiez le fichier
secrets/openclaw-vllm.jsonet remplacez les espaces réservés par des valeurs réelles, telles que les identifiants de l'application DingTalk et les configurations du modèle. Le tableau suivant décrit les espaces réservés :Espace réservé
Description
Comment l'obtenir
<DINGTALK_BOT_CLIENT_ID>ClientId du bot DingTalk
Consultez la documentation DingTalk Bot + OpenClaw. Créez une application dans le Portail développeur DingTalk pour obtenir la valeur.
<DINGTALK_BOT_CLIENT_SECRET>ClientSecret du bot DingTalk
Idem ci-dessus. Obtenez la valeur depuis la page de détails de l'application.
-
Configurez le fichier de variables Terraform.
RemarqueTerraform est un outil open source d'Infrastructure as Code (IaC) qui automatise la création, la modification et la gestion des versions des ressources et services cloud sur Alibaba Cloud via des fichiers de configuration déclaratifs. Dans cette solution, Terraform automatise le déploiement des instances confidentielles.
cp terraform/terraform.tfvars.example terraform/terraform.tfvarsModifiez le fichier
terraform/terraform.tfvarset configurez les paramètres clés comme indiqué dans le tableau suivant.Paramètre
Valeur recommandée
Description
zone_id"cn-beijing-l"Une zone compatible avec la famille d'instances gn8v-tee
vpc_cidr"10.0.0.0/16"Bloc CIDR VPC
vswitch_cidr"10.0.1.0/24"Bloc CIDR vSwitch
security_group_allowed_cidrLe bloc CIDR IP de l'environnement client qui doit accéder au service OpenClaw
Plage d'adresses IP sources autorisée par le groupe de sécurité
ImportantLa valeur par défaut de
security_group_allowed_cidrest0.0.0.0/0. Dans les environnements de production, vous devez modifier cette valeur pour spécifier un bloc CIDR IP précis et n'autoriser que les adresses IP sources requises. -
Exportez vos identifiants d'accès Alibaba Cloud pour permettre à Terraform de créer les ressources cloud.
export ALICLOUD_ACCESS_KEY="<YOUR_ACCESS_KEY>" export ALICLOUD_SECRET_KEY="<YOUR_SECRET_KEY>"RemarqueNous vous recommandons d'utiliser un rôle RAM ou des identifiants temporaires (STS) pour éviter le stockage à long terme des paires de clés AccessKey. Pour savoir comment créer une paire de clés AccessKey, consultez la rubrique Créer une paire de clés AccessKey.
-
Construisez une image de confiance contenant OpenClaw et le moteur d'inférence vLLM.
make build PROFILE=openclaw-vllmRemarqueLa première construction implique des étapes telles que l'installation des pilotes GPU. Veuillez patienter.
Une fois la construction terminée, les deux images suivantes sont générées :
Type d'image
Description
Image de production
Version renforcée en sécurité avec serveur SSH supprimé et ne conservant que le runtime minimal, destinée au déploiement en production
Image de débogage
Conserve l'accès SSH et les outils de débogage, réservée au dépannage
Pendant le processus de construction, les valeurs de référence de l'image sont également téléchargées dans le journal de transparence Rekor. Un fichier de métadonnées
.rekor-meta.jsonest généré pour la vérification lors du déploiement.
Étape 2 : Déployer l'image de confiance sur une instance
Déployez l'image de confiance sur une instance gn8v-tee et établissez un canal chiffré de bout en bout via TNG.
-
Sur la machine de déploiement, exécutez la commande suivante pour créer une instance gn8v-tee à l'aide de l'image de confiance. Une fois l'instance créée, une attestation à distance est effectuée sur l'instance et les ressources confidentielles sont téléchargées.
make deploy PROFILE=openclaw-vllm RV_MODE=rekorLe tableau suivant décrit les paramètres clés :
Paramètre
Description
PROFILE=openclaw-vllmLe profil de déploiement à utiliser
RV_MODE=rekorVérifie les valeurs de référence de l'image via le journal de transparence Rekor pendant le déploiement
Le déploiement crée les ressources suivantes dans le cloud :
Bucket OSS : un espace de stockage privé utilisé pour télécharger et héberger l'image VM de confiance (.qcow2).
Image personnalisée ECS : importée depuis le fichier image OSS vers la bibliothèque d'images personnalisées Alibaba Cloud ECS.
Instance de calcul confidentiel GPU ECS : une instance de calcul confidentiel ecs.gn8v-tee.4xlarge associée au groupe de sécurité et au vSwitch. Les paramètres de démarrage UKI incluent la configuration du défi d'attestation à distance.
Groupe de sécurité : ouvre les ports SSH (22) et TNG (18789), en n'autorisant l'accès qu'à partir du bloc CIDR spécifié.
RemarquePar défaut, l'image de débogage est déployée. Pour déployer l'image de production (sans accès SSH), spécifiez manuellement le fichier image.
ImportantPendant le déploiement, l'image est téléchargée vers OSS et les modèles sont téléchargés depuis ModelScope, ce qui nécessite un accès Internet et engendre des frais de trafic.
-
Démarrez le client TNG sur la machine de déploiement pour établir un canal chiffré RATS-TLS entre la machine de déploiement et l'instance gn8v-tee dans le cloud.
make connect-tngAprès une connexion réussie, la sortie affiche les URL HTTP et WebSocket ainsi que le jeton d'accès pour OpenClaw. Toutes les communications ultérieures sont protégées par le chiffrement RATS-TLS.
-
Vérifiez si le service OpenClaw est prêt via le tunnel TNG.
curl -s http://localhost:18789/healthUne fois qu'un statut sain est retourné, vous pouvez procéder à l'accès au service.
Étape 3 : Accéder au service OpenClaw protégé par le calcul confidentiel
Une fois le service prêt, accédez à OpenClaw via l'une des quatre méthodes suivantes.
Méthode 1 : Via le chat DingTalk
Trouvez le bot configuré dans DingTalk et envoyez un message pour démarrer une conversation avec OpenClaw.

Méthode 2 : Via l'interface web dans le navigateur
Préparation : Établir la redirection de port depuis votre machine locale vers la machine de déploiement
La commande make connect-tng de l'étape 2 s'exécute sur la machine de déploiement et lie le tunnel TNG à localhost:18789 sur la machine de déploiement. Configurez la redirection de port SSH depuis votre machine locale vers la machine de déploiement :
ssh -L 18789:127.0.0.1:18789 root@<deployment machine IP>
Une fois la redirection de port établie, l'accès à localhost:18789 depuis un navigateur ou un client sur votre machine locale équivaut à accéder au tunnel TNG sur la machine de déploiement.
Accès via un navigateur
Une fois la redirection de port SSH configurée sur votre machine locale, accédez à http://localhost:18789/openclaw dans votre navigateur pour ouvrir le panneau de contrôle web. Saisissez le jeton OpenClaw obtenu à l'étape 2 pour accéder au service.

Méthode 3 : Via le client de bureau OpenClaw
Préparation : Établir la redirection de port depuis votre machine locale vers la machine de déploiement
La commande make connect-tng de l'étape 2 s'exécute sur la machine de déploiement et lie le tunnel TNG à localhost:18789 sur la machine de déploiement. Configurez la redirection de port SSH depuis votre machine locale vers la machine de déploiement :
ssh -L 18789:127.0.0.1:18789 root@<deployment machine IP>
Une fois la redirection de port établie, l'accès à localhost:18789 depuis un navigateur ou un client sur votre machine locale équivaut à accéder au tunnel TNG sur la machine de déploiement.
Accès via le client de bureau
Installez le client de bureau OpenClaw sur votre machine locale, configurez le mode distant, définissez l'adresse de connexion sur ws://localhost:18789 et saisissez le jeton OpenClaw obtenu à l'étape 2.
Méthode 4 : Via l'interface TUI OpenClaw
Installez OpenClaw en tant que client sur la machine de déploiement :
npm install -g openclaw@latest --registry=https://registry.npmmirror.com
Exécutez ensuite la commande suivante sur la machine de déploiement pour démarrer l'interface TUI OpenClaw et vous connecter à l'instance OpenClaw distante :
openclaw tui --url ws://localhost:18789 --token <gateway-token>
Remplacez <gateway-token> par le jeton de passerelle OpenClaw obtenu à l'étape 2.
Lors de la première connexion via l'interface TUI, un message pairing required s'affiche. Accédez à http://localhost:18789/openclaw dans votre navigateur, repérez l'appareil en attente d'autorisation sur la page Nodes, puis cliquez sur Approve pour finaliser l'autorisation. Revenez ensuite à l'interface TUI.
Une fois l'autorisation terminée, l'interface TUI est prête pour la conversation :

Étape 4 (facultative) : Libérer les ressources
Lorsque vous n'avez plus besoin du service, exécutez la commande suivante pour libérer toutes les ressources cloud :
make destroy PROFILE=openclaw-vllm
Cette opération est irréversible et supprime l'instance ECS ainsi que les ressources réseau associées. Assurez-vous de ne plus avoir besoin des données présentes sur l'instance avant d'exécuter cette commande.
Vérification de la sécurité
Vérifier la fiabilité de l'environnement d'exécution
OpenClaw intègre une compétence tdx-remote-attestation qui déclenche automatiquement une attestation à distance lorsque des questions liées à la sécurité sont posées, permettant ainsi de vérifier l'état de sécurité de l'environnement d'exécution actuel.
Comment déclencher : posez des questions relatives à la sécurité dans DingTalk, l'interface Web ou l'interface TUI, par exemple « Mes données sont-elles sécurisées ? » ou « Cet environnement est-il fiable ? ».
Contenu retourné :
|
Élément de vérification |
Description |
|
État de confiance matérielle |
Une valeur matérielle inférieure ou égale à 32 indique que la vérification a réussi |
|
Type de TEE |
Domaine de confiance Intel TDX |
|
Protection par chiffrement de la mémoire |
Confirme que le moteur de chiffrement de la mémoire est activé |
|
Intégrité de la chaîne de démarrage UKI |
Vérifie la cohérence des valeurs de mesure des composants |

Vérifier l'application de la politique PEP
PEP (Policy Enforcement Point) est un mécanisme de filtrage au moment de l'exécution pour les agents IA confidentiels. Lorsqu'un agent tel qu'OpenClaw exécute une commande via l'outil exec, la requête passe d'abord par cai-pep pour la mise en correspondance des politiques, puis s'exécute dans un bac à sable Docker isolé (mode réseau none). Des politiques configurables imposent des restrictions obligatoires sur les outils disponibles pour l'agent, prévenant ainsi les risques de sécurité liés à l'injection de prompt malveillante.
PEP offre trois niveaux de protection :
Blocage au niveau des commandes : rejette les commandes à haut risque sur la base d'une liste de blocage, telles que
curl,wget,nc,sshetdocker.Blocage au niveau des chemins : empêche l'accès aux chemins sensibles, tels que
/etc,/proc,/rootet/home/openclaw/.openclaw.Isolation réseau : le bac à sable n'a aucun accès réseau. Même si une commande contourne la liste de blocage, elle ne peut pas établir de connexions sortantes.
Le fichier de politique par défaut se trouve à l'emplacement ~/confidential-agent/image/customize/files/cai-pep-default-policy.json sur la machine de déploiement. Vous pouvez modifier la liste de blocage des commandes, la liste de blocage des chemins et les limites de ressources avant de construire l'image.
Si un agent est compromis par une injection de prompt malveillante et qu'un attaquant tente d'établir un shell inversé ou de télécharger une charge utile malveillante, PEP bloque automatiquement ces opérations à haut risque :
|
Méthode d'attaque |
Exemple de commande |
Raison du blocage |
|
Shell inversé |
|
|
|
Téléchargement d'une charge utile malveillante |
|
|
|
Lecture de fichiers sensibles |
|
|
Vérifier l'intégrité de la chaîne d'approvisionnement
Le déploiement utilise par défaut le journal de transparence Rekor pour stocker les valeurs de référence des images. Lors de l'attestation à distance, les valeurs de référence sont automatiquement récupérées depuis Rekor pour vérification. Vous pouvez auditer les entrées du journal Rekor pour vérifier l'intégrité de la chaîne d'approvisionnement en utilisant les méthodes suivantes.
Afficher les enregistrements Rekor
Une fois la construction terminée, vous pouvez trouver l'index du journal et l'URL de l'entrée de l'enregistrement sur la machine de déploiement :
cat ~/confidential-agent/image/output/slsa-output-cai-openclaw-vllm-debug-*/rekor-v1-upload.txt
Exemple de sortie :
Created entry at index 1205944956, available at: https://rekor.sigstore.dev/api/v1/log/entries/<uuid>
Vérifier la preuve d'inclusion
La preuve d'inclusion confirme que l'entrée contenant les valeurs de référence de l'image existe dans la racine Merkle du journal Rekor.
rekor-cli verify --log-index 1205944956 --rekor_server https://rekor.sigstore.dev
Si la sortie contient deux valeurs de hachage identiques, la vérification est réussie :
Computed Root Hash: 1291abcee27148a4c00241ba8719f798ce060e8a5ccc8b18249017c25c6d0090
Expected Root Hash: 1291abcee27148a4c00241ba8719f798ce060e8a5ccc8b18249017c25c6d0090
Vérifier la preuve de cohérence
La preuve de cohérence confirme qu'une ancienne racine Merkle (Racine A) est un préfixe ou un état historique d'une nouvelle racine Merkle (Racine B), garantissant que les entrées de valeurs de référence stockées dans Rekor n'ont pas été falsifiées ou supprimées.
rekor-cli loginfo --rekor_server https://rekor.sigstore.dev
Si la sortie contient le contenu suivant, la vérification est réussie :
Verification Successful!
Configuration du groupe de sécurité
Lors de l'exécution de make deploy, les règles du groupe de sécurité sont automatiquement créées. Si vous devez modifier le groupe de sécurité ultérieurement, assurez-vous qu'il contient les règles suivantes :
|
Port |
Protocole |
Description |
Recommandation de sécurité |
|
22 |
TCP |
Gestion à distance SSH (image de débogage uniquement) |
Restreindre l'IP source au réseau de gestion |
|
18789 |
TCP |
Point de terminaison du tunnel TNG (RATS-TLS), utilisé pour accéder au service OpenClaw |
Restreindre l'IP source ou accéder via TNG |
Important : Dans les environnements de production, veillez à modifiersecurity_group_allowed_cidrpour spécifier un bloc CIDR IP de gestion précis. Évitez d'utiliser0.0.0.0/0.
FAQ
-
Échec de make build avec une erreur de dépendance manquante
Vérifiez que toutes les dépendances sont installées et que l'espace disque est suffisant :
make install-deps df -h /Si cela ne résout pas le problème, exécutez
make clean-imagepour nettoyer les artefacts de construction et reconstruire. -
Échec de make deploy avec l'erreur NoSetRoletoECSServiceAcount
Cette erreur indique que le rôle d'importation d'image ECS n'est pas autorisé. Résolvez-la en effectuant l'une des opérations suivantes :
Connectez-vous à la console Alibaba Cloud, accédez à ECS > Images > Import Image, puis cliquez sur Authorize pour créer le rôle
AliyunECSImageImportDefaultRole.Dans la console RAM, attribuez la stratégie
AliyunOSSFullAccessau rôleAliyunECSImageImportDefaultRole.
-
Le service ne répond pas
Vérifiez que l'image de débogage est déployée (l'image de production n'inclut pas SSH).
Redéployez et vérifiez que
make deployse termine sans erreur.Déployez l'image de débogage et connectez-vous via SSH pour consulter les journaux et résoudre le problème.
-
Échec de la vérification TNG locale
Vérifiez que le conteneur Trustee local est en cours d'exécution et fonctionne correctement :
# Verify the local Trustee container is running docker ps | grep cai-local-trustee # Check Trustee health status curl http://127.0.0.1:18081/api/health # If Trustee is not ready, re-run make connect-tng -
cai-pep rejette tous les appels d'outils
Déployez l'image de débogage et connectez-vous via SSH pour consulter les journaux cai-pep et identifier la raison précise du blocage.