Bewerken

Delen via


Analyse van big data over confidential computing met Apache Spark in Kubernetes

Azure Kubernetes Service (AKS)
Azure SQL Database
Azure Data Lake

Deze oplossing maakt gebruik van confidential computing in Kubernetes om big data-analyses uit te voeren met Apache Spark in vertrouwelijke containers met gegevens uit Azure Data Lake en Azure SQL Database. Confidential computing wordt geleverd door Intel Software Guard Extensions en AMD EPYCTM-processors met Secure Encrypted Virtualization-Secure Geneste paging. Zie Ondersteuning voor vertrouwelijke VM-knooppuntgroepen op AKS met vertrouwelijke VM's met AMD SEV-SNP voor meer informatie over het inrichten van een AKS-cluster met vertrouwelijke AMD SEV-SNP-VM's. Zie Een AKS-cluster implementeren met knooppunten van de Intel SGX-agent met Confidential Computing Intel SGX-agentknooppunten voor vertrouwelijke computing met behulp van de Azure CLI voor meer informatie over het implementeren van een AKS-cluster met vertrouwelijke computing.

Apache, Apache® Ignite, Ignite en het vlamlogo zijn gedeponeerde handelsmerken of handelsmerken van de Apache Software Foundation in de Verenigde Staten en/of andere landen. Er wordt geen goedkeuring door De Apache Software Foundation geïmpliceerd door het gebruik van deze markeringen.

Architectuur

Diagram van vertrouwelijke big data-analyses met Apache Spark, Azure SQL Always Encrypted, AKS en Secure Container Environment.

Download een PowerPoint-bestand van deze architectuur.

In het voorgaande diagram wordt de architectuur beschreven: een schaalbaar patroon voor het verwerken van grotere gegevenssets op gedistribueerde wijze. Het toont ook vertrouwelijke analyses over relationele database-engines en het opslaan van vertrouwelijke gegevens. In het bijzonder kan de in een container geplaatste Spark-app gegevenssets uit twee gegevensbronnen verwerken, zoals geïllustreerd:

  1. Azure Data Lake Storage - Parquet/Delta Lake-bestanden: zoals wordt weergegeven in de voorbeelddemonstratie, kan een Spark-implementatie met vier pods( één stuurprogramma, drie uitvoerders op de SCONE-runtime (Secure Container Environment) 1,5 miljard rijen parquet-/Delta Lake-bestanden verwerken die binnen twee minuten of ongeveer 131 seconden zijn opgeslagen in Azure Data Lake Storage.

  2. Azure SQL DB - Always Encrypted met beveiligde enclaves: in dit voorbeeld wordt Spark gebruikt voor toegang tot Always Encrypted-gegevens als tekst zonder opmaak met behulp van het Azure SQL JDBC-stuurprogramma in de Spark-container-enclave om analyse- en machine learning-pijplijnen uit te voeren.

U kunt dit patroon eenvoudig uitbreiden om alle gegevensbronnen op te nemen die door het grote ecosysteem van Spark worden ondersteund.

Workflow

  1. Operator persona: Een DevOps-engineer richt Kubernetes-clusters, naamruimten, serviceaccounts en vm-knooppuntgroepen (bijvoorbeeld DC4s_v3) in.

  2. Persona voor ontwikkelaars: een data engineer gebruikt PySpark om een analysetoepassing te schrijven die is ontworpen om grote hoeveelheden gegevens te analyseren.

  3. Data custodian persona: De gegevens of beveiligingstechnicus maakt een beveiligingsbeleid voor de PySpark-toepassing vanuit een gedeelde opslagplaats in de organisatie (een eenmalige activiteit). Dit beleid specificeert de verwachte status van de gegevens en app-code, de minimale beveiligingsvereisten voor het platform en eventuele omgevingsvariabelen, opdrachtregelargumenten of geheimen (zoals de JDBC-tekenreeks, de invoerblob-URI en een SAS-token voor toegang). U kunt deze configuratie ook beschikbaar maken voor de Spark-runtime met behulp van Kubernetes Secrets of met behulp van Azure Key Vault. (Zie voor meer informatie Gebruik de Azure Key Vault-provider voor het CSI-stuurprogramma geheimenarchief in een AKS-cluster). De configuratie wordt alleen in de enclave geïnjecteerd als het bewijs dat deze levert, wordt gevalideerd door een attestation-provider. De attestation-provider (bijvoorbeeld Azure Attestation Service) wordt ook gedefinieerd in het beveiligingsbeleid.

  4. Met behulp van de SCONE Confidential Computing-software bouwt de data engineer een vertrouwelijke Docker-installatiekopieën die de versleutelde analysecode en een beveiligde versie van PySpark bevat. SCONE werkt binnen een AKS-cluster waarvoor Intel SGX is ingeschakeld (zie Een AKS-cluster maken met een systeemknooppuntgroep), waarmee de container binnen een enclave kan worden uitgevoerd. PySpark geeft bewijs dat de gevoelige gegevens en app-code worden versleuteld en geïsoleerd in een TEE (Trusted Execution Environment), wat betekent dat geen mensen, geen processen en logboeken toegang hebben tot de gegevens zonder opmaak of de toepassingscode.

  5. De PySpark-toepassing wordt geïmplementeerd in het externe AKS-cluster. Het begint en verzendt het attestation-bewijs naar de attestation-provider. Als het bewijs geldig is, wordt een attestation-token geretourneerd. De externe infrastructuur accepteert het attestation-token en verifieert het met een openbaar certificaat dat is gevonden in de Azure Attestation-service. Als het token is geverifieerd, is er bijna zeker dat de enclave veilig is en dat de gegevens noch de app-code buiten de enclave zijn geopend. De configuratie in het beveiligingsbeleid (omgevingsvariabelen, opdrachtregelargumenten en geheimen) wordt vervolgens geïnjecteerd in PySpark-enclaves.

  6. U kunt de uitvoering van PySpark horizontaal schalen op verschillende Kubernetes-knooppunten. Alle PySpark-exemplaren communiceren via een versleuteld kanaal en alle bestanden worden versleuteld die naar hun lokale bestandssystemen moeten worden geschreven (bijvoorbeeld willekeurige bestanden).

  7. De resultaten van de analyse worden versleuteld en geüpload naar een Azure SQL Database met Always Encrypted (die gebruikmaakt van versleuteling op kolomniveau). Toegang tot de uitvoergegevens en versleutelingssleutels kan veilig worden verleend aan andere vertrouwelijke toepassingen (bijvoorbeeld in een pijplijn) door gebruik te maken van hetzelfde soort beveiligingsbeleid en op hardware gebaseerde attestation-bewijs dat in dit artikel wordt beschreven.

Onderdelen

  • Azure Attestation is een geïntegreerde oplossing die de betrouwbaarheid van een platform op afstand verifieert. Azure Attestation controleert ook op afstand de integriteit van de binaire bestanden die in het platform worden uitgevoerd. Gebruik Azure Attestation om een vertrouwensrelatie tot stand te brengen met de vertrouwelijke toepassing.

  • Azure Confidential Computing-knooppunten worden gehost op een specifieke VM-serie die gevoelige workloads op AKS in een hardwaregebaseerde TEE kan uitvoeren. In deze omgeving kan code op gebruikersniveau privéregio's van geheugen toewijzen, ook wel enclaves genoemd. Vertrouwelijke rekenknooppunten kunnen vertrouwelijke containers of enclavebewuste containers ondersteunen.

  • Azure Kubernetes Service vereenvoudigt het implementeren en beheren van een Kubernetes-cluster.

  • Apache Spark is een opensource-engine voor meerdere talen voor het uitvoeren van data engineering, data science en machine learning op zowel machines met één knooppunt als clusters met meerdere knooppunten, zoals Kubernetes-pods.

  • Azure SQL Database biedt nu Always Encrypted met beveiligde enclaves, waarmee de mogelijkheden voor vertrouwelijke computing van de Always Encrypted-technologie van SQL Server worden uitgebreid met in-place versleuteling en uitgebreide vertrouwelijke query's.

  • SCONE ondersteunt de uitvoering van vertrouwelijke toepassingen in containers die worden uitgevoerd in een Kubernetes-cluster.

  • SCONE-platform is een oplossing van Scontain, een onafhankelijke softwareleverancier en Azure-partner.

Alternatieven

Occlum is een geheugenveilig, multi-process library OS (LibOS) voor Intel SGX. Occlum maakt het mogelijk voor oudere toepassingen om te worden uitgevoerd op Intel SGX met weinig tot geen wijzigingen in broncode. Occlum beschermt op transparante wijze de vertrouwelijkheid van gebruikersworkloads en maakt eenvoudige migratie naar bestaande Docker-toepassingen mogelijk. Occlum ondersteunt Java-apps.

Het technische team van SCONE onderhoudt een Apache Spark-containerinstallatiekopie waarop de nieuwste versie van Spark wordt uitgevoerd. Een alternatief dat niet specifiek is voor Apache Spark, is Fortanix, waarmee u vertrouwelijke containers kunt implementeren voor gebruik met uw containertoepassing. Fortanix biedt de flexibiliteit die nodig is om de breedste set toepassingen uit te voeren en te beheren: bestaande toepassingen, nieuwe enclavetoepassingen en vooraf verpakte toepassingen.

Scenariodetails

Er is exponentiële groei van gegevenssets, wat heeft geresulteerd in een groeiende controle op de wijze waarop gegevens worden weergegeven vanuit het perspectief van privacy en naleving van consumentengegevens. In deze context wordt confidential computing een belangrijk hulpmiddel om organisaties te helpen voldoen aan hun privacy- en beveiligingsbehoeften voor zakelijke en consumentengegevens. Organisaties kunnen nieuwe inzichten verkrijgen uit gereglementeerde gegevens als de gegevens op een compatibele manier worden verwerkt. Confidential Computing is vooral handig in scenario's waarin de schaal die wordt geleverd door cloud-computing nodig is om de gegevens vertrouwelijk te verwerken.

Confidential Computing-technologie versleutelt gegevens in het geheugen en verwerkt deze alleen nadat de cloudomgeving is geverifieerd of getest. Vertrouwelijke computing voorkomt gegevenstoegang door cloudoperators, kwaadwillende beheerders en bevoegde software, zoals de hypervisor. Het helpt ook om gegevens gedurende de hele levenscyclus beveiligd te houden, terwijl de gegevens in rust zijn, in transit zijn en nu ook terwijl ze in gebruik zijn.

Vertrouwelijke containers in Azure Kubernetes Service (AKS) bieden de benodigde infrastructuur voor klanten om populaire toepassingen, zoals Apache Spark, te gebruiken om gegevens op te schonen en machine learning-training uit te voeren. Dit artikel bevat een oplossing die Azure Confidential Computing biedt voor het uitvoeren van een Apache Spark-toepassing op een AKS-cluster met behulp van knooppuntgroepen met Intel Software Guard Extensions (Intel SGX). De gegevens uit die verwerking worden veilig opgeslagen in Azure SQL Database met behulp van Always Encrypted met beveiligde enclaves.

Notitie

Vertrouwelijke gegevensanalyse in deze context is bedoeld om analyses uit te voeren op gevoelige gegevens met een gerust hart tegen exfiltratie van gegevens. Dit omvat een mogelijke inbreuk op containertoegang op het hoofdniveau, zowel intern (bijvoorbeeld door een rogue beheerder) als extern (door systeemcompromittatie).

Vertrouwelijke gegevensanalyse helpt om te voldoen aan de hoogste behoeften van beveiliging en vertrouwelijkheid door te verwijderen uit de berekening van de niet-vertrouwde partijen, zoals de cloudoperator en service- of gastbeheerders. Deze methode helpt om te voldoen aan de vereisten voor gegevensnaleving via garanties die worden ondersteund door hardware.

Potentiële gebruikscases

Veel branches, met name financiële dienstverlening, beschermen hun gegevens door vertrouwelijke computing te gebruiken voor deze doeleinden:

Overwegingen

Met deze overwegingen worden de pijlers van het Azure Well-Architected Framework geïmplementeerd. Dit is een set richtlijnen die kunnen worden gebruikt om de kwaliteit van een workload te verbeteren. Zie Microsoft Azure Well-Architected Framework voor meer informatie.

Azure Confidential Enclaves die gebruikmaken van VM's uit de DCsv3- en DCdsv3-serie bieden grote geheugengrootten om geheugenintensieve toepassingen zoals analyses uit te voeren. In dit scenario worden VM's uit de Intel SGX-serie DCsv3-serie gebruikt. U kunt alleen bepaalde grootten in bepaalde regio's implementeren. Zie de quickstart: Een Azure Confidential Computing-VM implementeren in marketplace en producten die beschikbaar zijn per regio voor meer informatie.

Beveiliging

Beveiliging biedt garanties tegen opzettelijke aanvallen en misbruik van uw waardevolle gegevens en systemen. Zie Overzicht van de beveiligingspijler voor meer informatie.

Twee primaire factoren in beveiliging voor dit scenario zijn beveiligde enclaves en attestation.

Enclavegaranties

Kubernetes-beheerders, of een bevoegde gebruiker met het hoogste toegangsniveau (bijvoorbeeld root), kan de inhoud in het geheugen of de broncode van stuurprogramma's of uitvoerders niet inspecteren. Enclave-paginacache (EPC) is een gespecialiseerde geheugenpartitie in Azure Confidential-VM's die enclaves of vertrouwelijke containers gebruiken. VM's uit de DCsv3- en DCdsv3-serie worden ook geleverd met regelmatig, niet-versleuteld geheugen om apps uit te voeren waarvoor de beveiligde enclave niet nodig is. Zie Build met SGX-enclaves voor meer informatie over het gebruik van Intel SGX voor enclaves.

Attest

Attestation is een mechanisme dat een client of partij cryptografisch bewijs biedt dat de omgeving waarin een app wordt uitgevoerd betrouwbaar is, inclusief de hardware en software, voordat gegevens worden uitgewisseld. Externe attestation zorgt ervoor dat er niet met uw workload is geknoeid wanneer deze wordt geïmplementeerd op een niet-vertrouwde host, zoals een VM-exemplaar of een Kubernetes-knooppunt dat in de cloud wordt uitgevoerd. In dit proces wordt attestation-bewijs dat wordt geleverd door Intel SGX-hardware geanalyseerd door een attestation-provider.

Er zijn twee services vereist om externe attestation uit te voeren op een SCONE-toepassing (zoals Spark Driver- en Executor-pods):

  • Lokale attestation-service (LAS):een lokale service die wordt uitgevoerd op de niet-vertrouwde host (VM van AKS-knooppuntgroep) en verzamelt het attestation-bewijs dat wordt geleverd door Intel SGX over de toepassing die wordt getest. Vanwege de methode van app-implementatie van SCONE wordt dit bewijs ondertekend en doorgestuurd naar de configuratie- en attestation-service (CAS).

  • CAS: Een centrale service die beveiligingsbeleid beheert (SCONE-sessies), configuratie en geheimen. CAS vergelijkt het attestation-bewijs dat door LAS wordt verzameld op basis van het beveiligingsbeleid van de toepassing (die zijn gedefinieerd door de eigenaar van de toepassing) om te bepalen of de enclave betrouwbaar is. Als dat zo is, staat CAS de enclave toe om te worden uitgevoerd en injecteert SCONE de configuratie en geheimen er veilig in. Zie DE SCONE-configuratie en attestation-service voor meer informatie over CAS en de bijbehorende functies, zoals het genereren van geheimen en toegangsbeheer.

In dit scenario wordt een openbare CAS van SCONE gebruikt voor demonstratie en eenvoud, en wordt de LAS geïmplementeerd om te worden uitgevoerd als een DaemonSet op elk AKS-knooppunt.

Kostenoptimalisatie

Kostenoptimalisatie gaat over manieren om onnodige uitgaven te verminderen en operationele efficiëntie te verbeteren. Zie Overzicht van de pijler kostenoptimalisatie voor meer informatie.

Als u de kosten voor het uitvoeren van dit scenario wilt verkennen, gebruikt u de Azure-prijscalculator, waarmee alle Azure-services vooraf worden geconfigureerd. Let op de extra licenties die de partner nodig heeft om productieworkloads uit te voeren.

Dit scenario implementeren

Het implementeren van dit scenario omvat de volgende stappen op hoog niveau:

  • Krijg toegang tot de PySpark-basisinstallatiekopieën die in dit scenario worden gebruikt vanuit het containerregister van SCONE: zie registry.scontain.com:5050 op gecureerde SCONE-installatiekopieën.

  • Kloon het demoproject op GitHub, Confidential Data Analytics met Apache Spark op Intel SGX Confidential Containers. Dit project bevat alle benodigde resources, implementatiestappen en broncode om de demo te reproduceren.

  • Implementeer Always Encrypted met beveiligde enclaves in Azure SQL Database - Demo's. Deze demo's maken gebruik van een vertrouwelijke gegevensset, ContosoHR, die is opgenomen. In dit scenario worden vertrouwelijke gegevens ontsleuteld in tekst zonder opmaak binnen de Enclave van Spark-containers.

  • Implementeer een AKS-clusterknooppuntgroep met Intel SGX-functionaliteit. Zie quickstart: Een AKS-cluster met vertrouwelijke rekenknooppunten implementeren met behulp van de Azure CLI voor instructies.

  • Implementeer de lokale SCONE Attestation-service in het cluster met behulp van het opgenomen Kubernetes-manifest.

  • Bouw de versleutelde installatiekopieën met SCONE Confidential Computing-software en push deze naar uw eigen Azure Container Registry. De opslagplaats heeft een demotoepassing waarmee het aantal regels in de gele taxiritten van New York City wordt geteld, een geopende gegevensset van tijden, locaties, tarieven en andere gegevens die betrekking hebben op taxiritten. U kunt dit aanpassen aan uw specifieke behoeften.

  • Implementeer de Spark-toepassing door de opdracht spark-submituit te voeren. Hiermee implementeert u een stuurprogrammapod en een configureerbaar aantal uitvoerbare pods (de demo maakt gebruik van drie) die de taken uitvoeren en de analyseresultaten rapporteren aan het stuurprogramma. Alle communicatie wordt versleuteld.

Ook bevat SCONE Confidential PySpark op Kubernetes, een VIRTUELE machine, dezelfde demo die u in een lokaal minikube-cluster kunt reproduceren. Zie de officiële documentatie: SCONE PySpark virtual machine voor meer informatie.

Medewerkers

Dit artikel wordt onderhouden door Microsoft. De tekst is oorspronkelijk geschreven door de volgende Inzenders.

Hoofdauteur:

Andere inzender:

Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.

Volgende stappen