Redigera

Dela via


Konfidentiell databehandling på en sjukvårdsplattform

Azure Kubernetes Service (AKS)

Den här artikeln beskriver en lösning som Azure Confidential Computing (ACC) erbjuder för kryptering av data som används.

Arkitektur

Diagram över en demonstration av en konfidentiell sjukvårdsplattform. Plattformen innehåller ett sjukhus, en medicinsk plattformsleverantör och en diagnostikleverantör.

Ladda ned en Visio-fil med den här arkitekturen.

Diagrammet beskriver arkitekturen. I hela systemet:

Arbetsflöde

Lösningen omfattar följande steg:

  1. En kontorist för ett lokalt sjukhus öppnar en webbportal. Hela webbappen är en statisk Azure Blob Storage-webbplats .
  2. Kontoristen anger data i sjukhusets webbportal, som ansluter till ett Python Flask-baserat webb-API som skapats av en populär leverantör av medicinska plattformar. En konfidentiell nod i SCONE: s programvara för konfidentiell databehandling skyddar patientdata. SCONE fungerar i ett AKS-kluster som har Software Guard Extensions (SGX) aktiverat som hjälper dig att köra containern i en enklav. Webb-API:et visar att känsliga data och appkod är krypterade och isolerade i en betrodd körningsmiljö. Det innebär att inga människor, inga processer och inga loggar har åtkomst till cleartext-data eller programkoden.
  3. Sjukhusets webbappsklient begär att en attesteringstjänst (Azure Attestation) validerar dessa bevis och tar emot en signerad attesteringstoken som andra appar kan verifiera.
  4. Om webb-API:et kräver ytterligare komponenter (till exempel en Redis-cache) kan det skickas vidare med attesteringstoken för att verifiera att data och appkod hittills har förblivit i en säker enklav (se steg 6 för verifiering).
  5. Webb-API:et kan till och med använda fjärrtjänster, till exempel en ML-modell som hanteras av en diagnostikprovider från tredje part. När du gör det fortsätter den att vidarebefordra eventuella attesteringstoken för bevis på att nödvändiga enklaver är säkra. Webb-API:et kan också försöka ta emot och verifiera attesteringstoken för diagnostikproviderns infrastruktur.
  6. Fjärrinfrastrukturen accepterar attesteringstoken från den medicinska plattformens webb-API och verifierar den med ett offentligt certifikat som finns i Azure Attestation-tjänsten. Om token verifieras är det nästan säkert att enklaven är säker och att varken data- eller appkoden har öppnats utanför enklaven.
  7. Diagnostikprovidern, som är säker på att data inte har exponerats, skickar dem till en egen enklav på en ONNX-körningsserver (Open Neural Network Exchange). En AI-modell tolkar de medicinska bilderna och returnerar sina diagnosresultat tillbaka till den medicinska plattformens konfidentiella webb-API-app. Härifrån kan programvaran sedan interagera med patientjournaler och/eller kontakta annan sjukhuspersonal.

Komponenter

  • Azure Blob Storage hanterar statiskt innehåll som HTML, CSS, JavaScript och bildfiler direkt från en lagringscontainer.

  • Azure Attestation är en enhetlig lösning som fjärrverifierar en plattforms pålitlighet. Azure Attestation verifierar också integriteten för binärfilerna som körs på plattformen. Använd Azure Attestation för att upprätta förtroende med det konfidentiella programmet.

  • Azure Kubernetes Service förenklar processen med att distribuera ett Kubernetes-kluster.

  • Konfidentiella beräkningsnoder finns i en specifik serie med virtuella datorer som kan köra känsliga arbetsbelastningar på AKS i en maskinvarubaserad betrodd körningsmiljö (TEE) genom att tillåta kod på användarnivå att allokera privata minnesregioner, så kallade enklaver. Noder för konfidentiell databehandling kan ha stöd för konfidentiella containrar eller enklavermedvetna containrar.

  • SCONE-plattformen är en ISV-lösning (Azure Partner Independent Software Vendor) från Scontain.

  • Redis är ett datastrukturlager med öppen källkod i minnet.

  • Secure Container Environment (SCONE) stöder körning av konfidentiella program i containrar som körs i ett Kubernetes-kluster.

  • Konfidentiell slutsatsdragning av ONNX Runtime Server Enclave (ONNX RT – Enclave) är en värd som begränsar ML-värdparten från att komma åt både inferensbegäran och motsvarande svar.

Alternativ

  • Du kan använda Fortanix i stället för SCONE för att distribuera konfidentiella containrar som ska användas med ditt containerbaserade program. Fortanix ger den flexibilitet du behöver för att köra och hantera den bredaste uppsättningen program: befintliga program, nya enklaverbaserade program och förpaketerade program.

  • Du kan använda Occlum i stället för SCONE för att köra i AKS-klustret som har SGX aktiverat. Occlum gör det möjligt för äldre program att köras med små eller inga ändringar i en isolerad miljö.

  • Graphene är ett enkelt gästoperativsystem med öppen källkod. Graphene kan köra ett enda Linux-program i en isolerad miljö med fördelar som är jämförbara med att köra ett fullständigt operativsystem. Den har bra verktygsstöd för konvertering av befintliga Docker-containerprogram till Graphene Shielded Containers (GSC).

Information om scenario

När organisationer samarbetar delar de information. Men de flesta parter vill inte ge andra parter åtkomst till alla delar av data. Det finns mekanismer för att skydda vilande data och under överföring. Kryptering av data som används innebär dock olika utmaningar.

Med hjälp av konfidentiell databehandling och containrar ger lösningen ett sätt för ett program med providervärd att på ett säkert sätt samarbeta med ett sjukhus och en diagnostikprovider från tredje part. Azure Kubernetes Service (AKS) är värd för konfidentiella beräkningsnoder. Azure Attestation upprättar förtroende hos diagnostikprovidern. Med hjälp av dessa Azure-komponenter isolerar arkitekturen känsliga data för sjukhuspatienterna medan specifika delade data bearbetas i molnet. Sjukhusdata är sedan otillgängliga för diagnostikprovidern. Med den här arkitekturen kan det providerhanterade programmet också dra nytta av avancerad analys. Diagnostikprovidern gör dessa analyser tillgängliga som konfidentiella databehandlingstjänster för maskininlärningsprogram (ML).

Potentiella användningsfall

Många branscher skyddar sina data med hjälp av konfidentiell databehandling för följande ändamål:

  • Skydda finansiella data
  • Skydda patientinformation
  • Köra ML-processer på känslig information
  • Utföra algoritmer på krypterade datauppsättningar från många källor
  • Skydda containerdata och kodintegritet

Att tänka på

Dessa överväganden implementerar grundpelarna i Azure Well-Architected Framework, som är en uppsättning vägledande grundsatser som kan användas för att förbättra kvaliteten på en arbetsbelastning. Mer information finns i Microsoft Azure Well-Architected Framework.

Virtuella datorer (VM) för konfidentiell databehandling i Azure är tillgängliga i andra generationens D-familjestorlekar för allmänna behov. Dessa storlekar kallas tillsammans för D-Serien v2 eller DCsv2-serien. I det här scenariot används Intel SGX-aktiverade virtuella datorer i DCs_v2-serien med Operativsystemavbildningar i Gen2 (OS). Men du kan bara distribuera vissa storlekar i vissa regioner. Mer information finns i Snabbstart: Distribuera en virtuell Azure Confidential Computing-dator på Marketplace och produkter som är tillgängliga per region.

Kostnadsoptimering

Kostnadsoptimering handlar om att titta på sätt att minska onödiga utgifter och förbättra drifteffektiviteten. Mer information finns i Översikt över kostnadsoptimeringspelare.

Om du vill utforska kostnaden för att köra det här scenariot använder du Priskalkylatorn för Azure, som förkonfigurerar alla Azure-tjänster.

En exempelkostnadsprofil är tillgänglig för Contoso Medical Software as a Service (SaaS) Platform, enligt bilden i diagrammet. Den innehåller följande komponenter:

  • Systemnodpool och SGX-nodpool: inga diskar, alla tillfälliga
  • AKS Load Balancer
  • Azure Virtual Network: nominellt
  • Azure Container Registry
  • Lagringskonto för ensidesprogram (SPA)

Profilen innehåller inte följande komponenter:

  • Azure Attestation Service: kostnadsfritt

  • Azure Monitor-loggar: användningsbaserad

  • SCONE ISV-licensiering

  • Efterlevnadstjänster som krävs för lösningar som arbetar med känsliga data, inklusive:

    • Microsoft Defender för molnet och Microsoft Defender för Kubernetes
    • Azure DDoS Protection: Network Protection
    • Azure Firewall
    • Azure Application Gateway och Azure Web Application Firewall
    • Azure Key Vault

Distribuera det här scenariot

Distributionen av det här scenariot omfattar följande övergripande steg:

  • Distribuera den konfidentiella slutsatsdragningsservern på ett befintligt SGX-aktiverat AKS-kluster. Mer information om det här steget finns i det konfidentiella ONNX-slutsatsdragningsserverprojektet på GitHub.

  • Konfigurera Azure Attestation-principer.

  • Distribuera en SGX-aktiverad AKS-klusternodpool.

  • Få åtkomst till utvalda konfidentiella program som kallas SconeApps. SconeApps är tillgängliga på en privat GitHub-lagringsplats som för närvarande endast är tillgänglig för kommersiella kunder via SCONE Standard Edition. Gå till SCONE-webbplatsen och kontakta företaget direkt för att få den här servicenivån.

  • Installera och köra SCONE-tjänster i ditt AKS-kluster.

  • Installera och testa det Flask-baserade programmet i ditt AKS-kluster.

  • Distribuera och få åtkomst till webbklienten.

De här stegen fokuserar på enklavercontainrarna. En säker infrastruktur skulle sträcka sig bortom den här implementeringen och omfatta efterlevnadskrav, till exempel ytterligare skydd som krävs av HIPAA.

Deltagare

Den här artikeln underhålls av Microsoft. Det har ursprungligen skrivits av följande medarbetare.

Huvudförfattare:

Nästa steg