Informatique confidentielle sur une plateforme de santé

Azure Kubernetes Service (AKS)

Cet article présente une solution proposée par l’informatique confidentielle Azure (ACC, Azure Confidential Computing) pour le chiffrement des données en cours d’utilisation.

Architecture

Diagramme de démonstration d’une plateforme médicale confidentielle. La plateforme comprend un hôpital, un fournisseur de plateforme médicale et un fournisseur de diagnostic.

Téléchargez un fichier Visio de cette architecture.

Le diagramme présente l’architecture. Dans tout le système :

  • La communication réseau en transit est chiffrée par le protocole TLS.
  • Azure Monitor effectue le suivi des performances des composants, tandis qu’Azure Container Registry (ACR) gère les conteneurs de la solution.

Flux de travail

La solution implique les étapes suivantes :

  1. Un comptable dans un hôpital local ouvre un portail web. L’application web au complet est un site web statique Stockage Blob Azure.
  2. Le comptable entre des données dans le portail web de l’hôpital, qui se connecte à une API web basée sur Python Flask créée par un fournisseur de premier plan spécialisé dans les plateformes médicales. Un nœud confidentiel dans le logiciel de calcul confidentiel SCONE protège les données des patients. SCONE fonctionne au sein d’un cluster AKS sur lequel est activé Software Guard Extensions (SGX) qui permet d’exécuter le conteneur dans une enclave. L’API web fournit la preuve que les données sensibles et le code de l’application sont chiffrés et isolés dans un environnement d’exécution de confiance. Cela signifie qu’aucun humain, aucun processus et aucun journal n’ont accès aux données en texte clair ou au code de l’application.
  3. Le client de l’application web de l’hôpital demande qu’un service d’attestation (Azure Attestation) valide cette preuve, et reçoit un jeton d’attestation que d’autres applications peuvent vérifier.
  4. Si l’API web nécessite des composants supplémentaires (comme un cache Redis), elle peut passer le jeton d’attestation pour vérifier que les données et le code de l’application sont toujours dans une enclave sécurisée (voir l’étape 6 pour la vérification).
  5. L’API web peut même consommer des services distants, tels qu’un modèle ML hébergé par un fournisseur de diagnostics tiers. Dans ce cas, elle continue à transmettre les jetons d’attestation pour prouver que les enclaves requises sont sécurisées. L’API web peut également tenter de recevoir et de vérifier les jetons d’attestation pour l’infrastructure du fournisseur de diagnostics.
  6. L’infrastructure distante accepte le jeton d’attestation de l’API web de la plateforme médicale et le vérifie avec un certificat public trouvé dans le service Azure Attestation. Si le jeton est vérifié, il est presque certain que l’enclave est sécurisée et que ni les données ni le code d’application n’ont été ouverts en dehors de l’enclave.
  7. Le fournisseur de diagnostics, convaincu que les données n’ont pas été exposées, les envoie dans leur propre enclave dans un serveur d’exécution ONNX (Open Neural Network Exchange). Un modèle AI interprète l’imagerie médicale et retourne ses résultats de diagnostic à l’application API web confidentielle de la plateforme médicale. À partir de là, le logiciel peut interagir avec les dossiers des patients et/ou contacter d’autres membres du personnel de l’hôpital.

Components

  • Stockage Blob Azure fournit du contenu statique comme des fichiers HTML, CSS, JavaScript et image directement à partir d’un conteneur de stockage.

  • Azure Attestation est une solution unifiée qui vérifie à distance la fiabilité d’une plateforme. Azure Attestation vérifie également à distance l’intégrité des fichiers binaires qui s’exécutent dans la plateforme. Utilisez Azure Attestation pour établir une approbation avec l’application confidentielle.

  • Azure Kubernetes Service simplifie le processus de déploiement d’un cluster Kubernetes.

  • Les nœuds d’informatique confidentielle sont hébergés sur une série de machines virtuelles spécifiques qui peuvent exécuter des charges de travail sensibles sur AKS au sein d’un environnement d’exécution de confiance (TEE) basé sur le matériel en permettant au code utilisateur d’allouer des régions privées de mémoire, appelées « enclaves ». Les nœuds d’informatique confidentielle peuvent prendre en charge les conteneurs confidentiels ou les conteneurs reconnaissant les enclaves.

  • La plateforme SCONE est une solution d’éditeur de logiciels indépendant (ISV) Azure Partner de Scontain.

  • Redis est un magasin open source de structures de données en mémoire.

  • L’environnement de conteneur sécurisé (SCONE) prend en charge l’exécution d’applications confidentielles dans des conteneurs qui s’exécutent à l’intérieur d’un cluster Kubernetes.

  • L’enclave de serveur d’exécution ONNX d’inférence confidentielle (ONNX RT - Enclave) est un hôte qui empêche la partie d’hébergement ML d’accéder à la demande d’inférence et à la réponse correspondante.

Autres solutions

  • Vous pouvez utiliser Fortanix au lieu de SCONE pour déployer des conteneurs confidentiels à utiliser avec votre application conteneurisée. Fortanix offre la flexibilité dont vous avez besoin pour exécuter et gérer l’ensemble d’applications le plus vaste : des applications existantes, de nouvelles applications d’enclave natives et des applications prépackagées.

  • Graphene est un système d’exploitation invité open source et léger. Graphene peut exécuter une application Linux unique dans un environnement isolé avec des avantages comparables à l’exécution d’un système d’exploitation complet. Il offre une bonne prise en charge des outils pour la conversion d’applications de conteneur Docker existantes en conteneurs renforcés Graphene (GSC, Graphene Shielded Containers).

Détails du scénario

Quand les organisations collaborent, elles partagent des informations. Toutefois, la plupart des participants ne souhaitent pas accorder aux autres participants l’accès à toutes les parties des données. Il existe des mécanismes de protection des données au repos et en transit. Toutefois, le chiffrement des données en cours d’utilisation pose différents problèmes.

Grâce à l’informatique confidentielle et aux conteneurs, la solution permet à une application hébergée par un fournisseur de collaborer de manière sécurisée avec un hôpital et un fournisseur de diagnostic tiers. Azure Kubernetes Service (AKS) héberge des nœuds d’informatique confidentielle. Azure Attestation établit une approbation avec le fournisseur de diagnostic. À l’aide de ces composants Azure, l’architecture isole les données sensibles des patients en hôpital pendant le traitement des données partagées spécifiques dans le cloud. Les données médicales sont alors inaccessibles au fournisseur de diagnostic. Grâce à cette architecture, l’application hébergée par le fournisseur peut également tirer parti de l’analytique avancée. Le fournisseur de diagnostic rend cette analytique disponible sous forme de services d’informatique confidentielle d’applications Machine Learning (ML).

Cas d’usage potentiels

De nombreux secteurs protègent leurs données à l’aide de l’informatique confidentielle aux fins suivantes :

  • Sécurisation des données financières
  • Protection des informations relatives aux patients
  • Exécution de processus ML sur des informations sensibles
  • Exécution d’algorithmes sur des jeux de données chiffrés provenant de nombreuses sources
  • Protection des données de conteneur et de l’intégrité du code

Considérations

Ces considérations implémentent les piliers d’Azure Well-Architected Framework qui est un ensemble de principes directeurs qui permettent d’améliorer la qualité d’une charge de travail. Pour plus d'informations, consultez Microsoft Azure Well-Architected Framework.

Les machines virtuelles d’informatique confidentielle sont disponibles dans des tailles de la famille D de deuxième génération pour des besoins d’usage général. Ces tailles sont désignées collectivement sous le nom de « série D v2 ou série DCsv2 ». Ce scénario utilise des machines virtuelles de série DCs_v2 compatibles avec Intel SGX, avec des images de système d’exploitation Gen2. Toutefois, vous pouvez uniquement déployer certaines tailles dans certaines régions. Pour plus d’informations, consultez Démarrage rapide : Déployer une machine virtuelle d’informatique confidentielle Azure dans la Place de marché et Disponibilité des produits par région.

Optimisation des coûts

L’optimisation des coûts consiste à examiner les moyens de réduire les dépenses inutiles et d’améliorer l’efficacité opérationnelle. Pour plus d’informations, consultez Vue d’ensemble du pilier d’optimisation des coûts.

Pour explorer le coût d’exécution de ce scénario, utilisez la calculatrice de prix Azure, qui préconfigure tous les services Azure.

Un exemple de profil de coût est disponible pour la plateforme Contoso Medical SaaS Platform, comme illustré dans le diagramme. Ses composants sont les suivants :

  • Pool de nœuds système et pool de nœuds SGX : aucun disque, tous éphémères
  • Équilibreur de charge AKS
  • Réseau virtuel Azure : nominal
  • Azure Container Registry
  • Compte de stockage pour une application monopage (SPA)

Le profil n’inclut pas les composants suivants :

  • Service Azure Attestation : gratuit

  • Journaux Azure Monitor : basés sur l’utilisation

  • Licence ISV SCONE

  • Services de conformité nécessaires pour les solutions utilisant des données sensibles, notamment :

    • Microsoft Defender pour le cloud et Microsoft Defender pour Kubernetes
    • Azure DDoS Protection : Protection réseau
    • Pare-feu Azure
    • Azure Application Gateway et Azure Web Application Firewall
    • Azure Key Vault

Déployer ce scénario

Le déploiement de ce scénario implique les étapes générales suivantes :

  • Déployez le serveur d’inférence confidentielle sur un cluster AKS compatible SGX existant. Pour obtenir des informations sur cette étape, consultez le projet de serveur d’inférence ONNX confidentiel sur GitHub.

  • Configurez des stratégies Azure Attestation.

  • Déployez un pool de nœuds de cluster AKS compatibles SGX.

  • Accédez aux applications confidentielles organisées appelées SconeApps. Les applications SconeApps sont disponibles sur un dépôt GitHub privé qui est actuellement disponible uniquement pour les clients commerciaux, à l’aide de l’édition standard de SCONE. Accédez au site web SCONE, puis contactez l’entreprise directement pour bénéficier de ce niveau de service.

  • Installez et exécutez les services SCONE sur votre cluster AKS.

  • Installez et testez l’application basée sur Flask sur votre cluster AKS.

  • Déployez le client web et accédez à celui-ci.

Ces étapes se concentrent sur les conteneurs d’enclave. Une infrastructure sécurisée s’étend au-delà de cette implémentation et inclut des impératifs de conformité, comme des protections supplémentaires exigées par HIPAA.

Contributeurs

Cet article est géré par Microsoft. Il a été écrit à l’origine par les contributeurs suivants.

Auteur principal :

Étapes suivantes