Share via


Conteneurs confidentiels sur Azure Kubernetes Service(AKS) avec enclaves Intel SGX

Les conteneurs confidentiels vous permettent d’exécuter les applications conteneur non modifiées existantes de la plupart des runtimes dans les langages de programmation les plus courants (Python, Node, Java, etc.) dans l’environnement d’exécution de confiance basé sur Intel SGX. Ce modèle d’empaquetage n’a généralement pas besoin de modifications ou de recompilations de code source et est la méthode la plus rapide à exécuter dans les enclaves Intel SGX. Le processus de déploiement classique pour l’exécution de vos conteneurs Docker standard nécessite un wrapper SGX open source ou une solution partenaire Azure. Dans ce modèle d’empaquetage et d’exécution, chaque application conteneur est chargée dans la limite approuvée (enclave) et avec une isolation matérielle appliquée par le processeur Intel SGX. Chaque conteneur s’exécutant dans une enclave reçoit sa propre clé de chiffrement de mémoire fournie par le processeur Intel SGX. Ce modèle fonctionne bien pour les applications conteneur prêtes à l’emploi disponibles sur le marché ou pour les applications personnalisées qui s’exécutent sur des nœuds à usage général. Pour exécuter un conteneur Docker existant, les applications sur les nœuds de calcul confidentiel nécessitent un logiciel wrapper Intel Software Guard Extensions (SGX) pour aider l’exécution du conteneur dans les limites d’un ensemble d’instructions de processeur spéciales. SGX crée une exécution directe sur le processeur pour supprimer le système d’exploitation invité, le système d’exploitation hôte ou l’hyperviseur de la limite d’approbation. Cette étape réduit la surface globale des zones d’attaque et des vulnérabilités tout en apportant un l’isolation au niveau du processus dans un seul nœud.

Le processus global d’exécution de conteneurs non modifiés implique des modifications de la façon dont votre conteneur est empaqueté aujourd’hui, comme détaillée ci-dessous.

Diagram of confidential container conversion, with new steps for enabling Intel SGX and AKS.

Les logiciels d’habillage SGX nécessaires pour l’exécution des conteneurs standard sont proposés par des partenaires en logiciels Azure ou par des solutions logicielles open source.

Activateurs de partenaires

Les développeurs peuvent choisir des fournisseurs de logiciels en fonction de leurs fonctionnalités, de l’intégration aux services Azure et de la prise en charge des outils.

Important

Les partenaires en logiciels Azure impliquent souvent des frais de licence en plus de votre infrastructure Azure. Vérifiez individuellement toutes les conditions d’utilisation des logiciels de partenaires.

Fortanix

Fortanix dispose d’expériences du portail et de l’interface de ligne de commande (CLI) pour convertir leurs applications conteneurisées en conteneurs confidentiels compatibles SGX. Vous n’avez pas besoin de modifier ou de recompiler l’application. Fortanix offre la flexibilité nécessaire pour exécuter et gérer un large éventail d’applications. Vous pouvez utiliser des applications existantes, de nouvelles applications d’enclave natives et des applications prépackagées. Commencez avec l’interface utilisateur Enclave Manager de Fortanix ou les API REST. Créer des conteneurs confidentiels à l’aide du Guide de démarrage rapide pour AKS de Fortanix .

Diagram of Fortanix deployment process, showing steps to move applications to confidential containers and deploy.

SCONE (Scontain)

Les stratégies de sécurité SCONE (Scontain) génèrent des certificats, des clés et des secrets. Seuls les services avec attestation pour une application voient ces informations d’identification. Les services d’application se fournissent mutuellement une attestation via TLS. Vous n’avez pas besoin de modifier les applications ou TLS. Pour obtenir une explication plus détaillée, consultez la démonstration d’application Flask de SCONE.

SCONE peut convertir la plupart des fichiers binaires existants en applications qui s’exécutent dans des enclaves. SCONE protège également les langages interprétés tels que Python, en chiffrant à la fois les fichiers de données et les fichiers de code Python. Vous pouvez utiliser des stratégies de sécurité SCONE pour protéger les fichiers chiffrés contre les accès non autorisés, les modifications et les restaurations. Pour plus d’informations, consultez la documentation de SCONE sur l’utilisation de SCONE avec une application Python existante.

Diagram of SCONE workflow, showing how SCONE processes binary images.

Vous pouvez déployer SCONE sur des nœuds d’informatique confidentielle Azure avec AKS en suivant cet exemple de déploiement d’application AKS SCONE.

Anjuna

Anjuna fournit un logiciel de plateforme SGX permettant d’exécuter des conteneurs non modifiés sur AKS. Pour plus d’informations, consultez la documentation sur les fonctionnalités et les exemples d’applications d’Anjuna.

Commencez avec un exemple de Cache Redis et d’application personnalisée Python ici.

Diagram of Anjuna's process, showing how containers are run on Azure confidential computing.

Activateurs OSS

Remarque

L’informatique confidentielle Azure et Microsoft ne sont pas directement affiliés à ces projets et solutions.

Gramine

Gramine est un système d’exploitation invité léger, conçu pour exécuter une application Linux unique avec des exigences minimales en matière d’hébergement. Gramine peut exécuter des applications dans un environnement isolé. Il existe une prise en charge d’outils pour la conversion d’un conteneur Docker existant en conteneurs prêts pour SGX.

Pour plus d’informations, consultez l’exemple d’application et de déploiement sur AKS de Gramine

Occlum

Occlum est un système d’exploitation de bibliothèque (LibOS) multiprocessus, à mémoire sécurisée, pour Intel SGX. Ce système d’exploitation permet aux applications héritées de s’exécuter sur SGX avec peu, voire pas, de modification du code source. Occlum protège de manière transparente la confidentialité des charges de travail utilisateur, tout en permettant une migration « lift-and-shift » aisée vers des applications Docker existantes.

Pour plus d’informations, consultez les instructions de déploiement et exemples d’applications sur AKS d’Occlum.

Marblerun

Marblerun est un framework d’orchestration pour les conteneurs confidentiels. Vous pouvez exécuter et mettre à l’échelle des services confidentiels sur Kubernetes compatible SGX. Marblerun assure des tâches réutilisables telles que la vérification des services dans votre cluster, la gestion des secrets pour ces services et l’établissement de connexions mTLS d’enclave à enclave entre eux. Marblerun garantit également que votre cluster de conteneurs confidentiels respecte un manifeste défini en code JSON simple. Vous pouvez vérifier le manifeste avec des clients externes par le biais d’une attestation distante.

Ce framework étend la confidentialité, l’intégrité et les propriétés de vérifiabilité d’une enclave données à un cluster Kubernetes.

Marblerun prend en charge les conteneurs confidentiels créés avec Graphene, Occlum et EGo, avec des exemples pour chaque SDK. Le framework s’exécute sur Kubernetes, parallèlement à vos outils natifs cloud existants. Il existe une interface CLI et des graphiques Helm. Marblerun prend également en charge les nœuds d’informatique confidentielle sur AKS. Suivez le guide fourni pour déployer Marblerun sur AKS de Marblerun.

Architectures de référence des conteneurs confidentiels

Prendre contact

Avez-vous des questions sur votre implémentation ? Voulez-vous devenir un activateur pour les conteneurs confidentiels ? Envoyez un courrier électronique à l’adresse acconaks@microsoft.com.

Étapes suivantes