Analitik big data pada komputasi rahasia dengan Apache Spark di Kubernetes

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

Solusi ini menggunakan komputasi rahasia di Kubernetes untuk menjalankan analitik big data dengan Apache Spark di dalam kontainer rahasia dengan data dari Azure Data Lake dan Azure SQL Database. Komputasi rahasia disediakan oleh Intel Software Guard Extensions dan prosesor AMD EPYCTM dengan Secure Encrypted Virtualization-Secure Nested Paging. Untuk informasi selengkapnya tentang penyediaan kluster AKS dengan VM rahasia AMD SEV-SNP, lihat Dukungan kumpulan simpul VM Rahasia pada AKS dengan VM rahasia AMD SEV-SNP. Untuk informasi selengkapnya tentang menyebarkan kluster AKS dengan simpul agen Intel SGX komputasi rahasia, lihat Menyebarkan kluster AKS dengan komputasi rahasia simpul agen Intel SGX dengan menggunakan Azure CLI.

Apache®, Apache Ignite, Ignite, dan logo api adalah merek dagang terdaftar atau merek dagang dari Apache Software Foundation di Amerika Serikat dan/atau negara lain. Tidak ada dukungan oleh The Apache Software Foundation yang tersirat oleh penggunaan tanda ini.

Sistem

Diagram analitik big data rahasia dengan Apache Spark, Azure SQL Always Encrypted, AKS, dan Secure Container Environment.

Unduh file PowerPoint arsitektur ini.

Diagram sebelumnya menguraikan arsitektur: pola yang dapat diskalakan untuk memproses himpunan data yang lebih besar secara terdistribusi. Ini juga menampilkan analitik rahasia pada mesin database relasional dan menyimpan data rahasia. Secara khusus, aplikasi Spark kontainer dapat memproses himpunan data dari dua sumber data, seperti yang diilustrasikan:

  1. Azure Data Lake Storage - File Parquet/Delta Lake: Seperti yang ditunjukkan dalam contoh demonstrasi, penyebaran Spark empat pod—satu Driver, tiga Pelaksana pada runtime Secure Container Environment (SCONE) —mampu memproses 1,5 miliar baris file Parquet/Delta Lake yang disimpan di penyimpanan Azure Data Lake dalam waktu dua menit, atau sekitar 131 detik.

  2. Azure SQL DB - Always Encrypted dengan enklave aman: Contoh ini menggunakan Spark untuk mengakses data Always Encrypted sebagai teks biasa dengan menggunakan driver Azure SQL JDBC di dalam enklave kontainer Spark untuk menjalankan analitik dan alur pembelajaran mesin.

Anda dapat dengan mudah memperluas pola ini untuk menyertakan sumber data apa pun yang didukung ekosistem besar Spark.

Alur kerja

  1. Persona operator: Teknisi DevOps menyediakan kluster Kubernetes, Namespace, Akun Layanan, dan kumpulan simpul komputer virtual Rahasia (misalnya, DC4s_v3).

  2. Persona pengembang: Teknisi data menggunakan PySpark untuk menulis aplikasi analitik yang dirancang untuk menganalisis data dalam volume besar.

  3. Persona kustodian data: Teknisi data atau keamanan membuat kebijakan keamanan untuk aplikasi PySpark dari repositori bersama di organisasi (aktivitas satu kali). Kebijakan ini menentukan status data dan kode aplikasi yang diharapkan, persyaratan keamanan minimum untuk platform, dan variabel lingkungan apa pun, argumen baris perintah, atau rahasia (seperti string JDBC, URI blob input, dan token SAS untuk akses). Anda juga dapat membuat konfigurasi ini tersedia untuk runtime Spark dengan menggunakan Rahasia Kubernetes atau dengan menggunakan Azure Key Vault. (Untuk informasi selengkapnya, lihat Gunakan Penyedia Azure Key Vault untuk Driver Secrets Store CSI dalam kluster AKS). Konfigurasi disuntikkan ke enklave hanya jika bukti yang disediakan divalidasi oleh penyedia pengesahan. Penyedia pengesahan (misalnya, Azure Attestation Service), juga didefinisikan dalam kebijakan keamanan.

  4. Dengan bantuan perangkat lunak komputasi rahasia SCONE, teknisi data membangun gambar Docker rahasia yang berisi kode analitik terenkripsi dan versi PySpark yang aman. SCONE bekerja dalam kluster AKS yang mengaktifkan Intel SGX (lihat Membuat kluster AKS dengan kumpulan simpul sistem), yang memungkinkan kontainer berjalan di dalam enklave. PySpark memberikan bukti bahwa data sensitif dan kode aplikasi dienkripsi dan diisolasi dalam Trusted Execution Environment (TEE)—yang berarti bahwa tidak ada manusia, tidak ada proses, dan tidak ada log yang memiliki akses ke data teks biasa atau kode aplikasi.

  5. Aplikasi PySpark disebarkan ke kluster AKS jarak jauh. Ini memulai dan mengirim bukti pengesahannya ke penyedia pengesahan. Jika bukti valid, token pengesahan akan dikembalikan. Infrastruktur jarak jauh menerima token pengesahan dan memverifikasinya dengan sertifikat publik yang ditemukan di layanan Azure Attestation. Jika token diverifikasi, ada hampir kepastian bahwa enklave aman dan bahwa data atau kode aplikasi belum dibuka di luar enklave. Konfigurasi dalam kebijakan keamanan (variabel lingkungan, argumen baris perintah, dan rahasia) kemudian disuntikkan ke enklave PySpark.

  6. Anda dapat menskalakan eksekusi PySpark secara horizontal di beberapa simpul Kubernetes. Semua instans PySpark berkomunikasi melalui saluran terenkripsi, dan semua file dienkripsi yang perlu ditulis ke sistem file lokal mereka (misalnya, file acak).

  7. Hasil analisis dienkripsi dan diunggah ke Azure SQL Database dengan Always Encrypted (yang menggunakan enkripsi tingkat kolom). Akses ke data output dan kunci enkripsi dapat diberikan dengan aman ke aplikasi rahasia lainnya (misalnya, dalam alur) dengan menggunakan semacam kebijakan keamanan yang sama dan bukti pengesahan berbasis perangkat keras yang dijelaskan dalam artikel ini.

Komponen

  • Azure Attestation adalah solusi terpadu yang memverifikasi kepercayaan platform dari jarak jauh. Azure Attestation juga memverifikasi integritas binari yang berjalan dari jarak jauh di platform. Gunakan Azure Attestation untuk membangun kepercayaan dengan aplikasi rahasia.

  • Simpul komputasi rahasia Azure dihosting pada seri VM tertentu yang dapat menjalankan beban kerja sensitif pada AKS dalam TEE berbasis perangkat keras. Di lingkungan ini, kode tingkat pengguna dapat mengalokasikan wilayah memori privat, yang dikenal sebagai enklave. Node komputasi rahasia dapat mendukung kontainer rahasia atau kontainer enclave yang sadar.

  • Azure Kubernetes Service menyederhanakan proses penyebaran dan pengelolaan kluster Kubernetes.

  • Apache Spark adalah mesin multibahasa sumber terbuka untuk mengeksekusi rekayasa data, ilmu data, dan pembelajaran mesin pada komputer node tunggal dan kluster multi-simpul, seperti pod Kubernetes.

  • Azure SQL Database sekarang menawarkan Always Encrypted dengan enklave aman, memperluas kemampuan komputasi rahasia teknologi Always Encrypted SQL Server untuk menyertakan enkripsi di tempat dan kueri rahasia yang kaya.

  • SCONE mendukung eksekusi aplikasi rahasia dalam kontainer yang berjalan di dalam kluster Kubernetes.

  • Platform SCONE adalah solusi dari Scontain, vendor perangkat lunak independen dan mitra Azure.

Alternatif

Occlum adalah OS pustaka (LibOS) multi-proses yang aman-memori untuk Intel SGX. Oklum memungkinkan aplikasi warisan berjalan di Intel SGX dengan sedikit atau tanpa modifikasi pada kode sumber. Oklum secara transparan melindungi kerahasiaan beban kerja pengguna sambil memungkinkan migrasi mudah ke aplikasi Docker yang ada. Occlum mendukung aplikasi Java.

Tim teknik SCONE mempertahankan gambar kontainer Apache Spark yang menjalankan versi terbaru Spark. Alternatif yang tidak spesifik untuk Apache Spark adalah Fortanix, yang dengannya Anda dapat menyebarkan kontainer rahasia untuk digunakan dengan aplikasi kontainer Anda. Fortanix memberikan fleksibilitas yang diperlukan untuk menjalankan dan mengelola serangkaian aplikasi terluas: aplikasi yang ada, aplikasi asli enklave baru, dan aplikasi pra-paket.

Detail skenario

Ada pertumbuhan eksponensial himpunan data, yang telah mengakibatkan meningkatnya pengamatan tentang bagaimana data diekspos dari perspektif privasi dan kepatuhan data konsumen. Dalam konteks ini, komputasi rahasia menjadi alat penting untuk membantu organisasi memenuhi kebutuhan privasi dan keamanan mereka untuk data bisnis dan konsumen. Organisasi dapat memperoleh wawasan baru dari data yang diatur jika data diproses dengan cara yang sesuai. Komputasi rahasia sangat membantu dalam skenario di mana skala yang disediakan oleh komputasi cloud diperlukan untuk memproses data secara rahasia.

Teknologi komputasi rahasia mengenkripsi data dalam memori dan hanya memprosesnya setelah lingkungan cloud diverifikasi, atau diujarkan. Komputasi rahasia mencegah akses data oleh operator cloud, admin berbahaya, dan perangkat lunak istimewa, seperti hypervisor. Ini juga membantu menjaga data tetap terlindungi sepanjang siklus hidupnya—saat data tidak aktif, saat transit, dan juga sekarang saat sedang digunakan.

Kontainer rahasia pada Azure Kubernetes Service (AKS) menyediakan infrastruktur yang diperlukan bagi pelanggan untuk menggunakan aplikasi populer, seperti Apache Spark, untuk melakukan pembersihan data dan pelatihan pembelajaran mesin. Artikel ini menyajikan solusi yang ditawarkan komputasi rahasia Azure untuk menjalankan aplikasi Apache Spark pada kluster AKS dengan menggunakan kumpulan simpul dengan Intel Software Guard Extensions (Intel SGX). Data dari pemrosesan tersebut disimpan dengan aman di Azure SQL Database dengan menggunakan Always Encrypted dengan enklave aman.

Catatan

Analitik data rahasia dalam konteks ini dimaksudkan untuk menyiratkan menjalankan analitik pada data sensitif dengan ketenangan pikiran terhadap penyelundupan data. Ini termasuk potensi pelanggaran akses kontainer di tingkat akar, baik secara internal (misalnya, oleh admin nakal) atau secara eksternal (oleh kompromi sistem).

Analitik data rahasia membantu memenuhi kebutuhan keamanan dan kerahasiaan tertinggi dengan menghapus dari komputasi pihak yang tidak tepercaya, seperti operator cloud dan admin layanan atau tamu. Metode ini membantu memenuhi kebutuhan kepatuhan data melalui jaminan yang didukung perangkat keras.

Kemungkinan kasus penggunaan

Banyak industri, terutama layanan keuangan, melindungi data mereka dengan menggunakan komputasi rahasia untuk tujuan ini:

Pertimbangan

Pertimbangan ini mengimplementasikan pilar Azure Well-Architected Framework, yang merupakan serangkaian tenet panduan yang dapat digunakan untuk meningkatkan kualitas beban kerja. Untuk informasi selengkapnya, lihat Microsoft Azure Well-Architected Framework.

Enklave rahasia Azure yang menggunakan VM seri DCsv3 dan DCdsv3 menawarkan ukuran memori besar untuk membantu menjalankan aplikasi intensif memori seperti analitik. Skenario ini menggunakan VM seri DCsv3 dengan dukungan Intel SGX. Anda hanya dapat menyebarkan ukuran tertentu di wilayah tertentu. Untuk informasi selengkapnya, lihat Quickstart: Menerapkan VM Komputasi Rahasia Azure di Marketplace dan Produk yang tersedia berdasarkan wilayah.

Keamanan

Keamanan memberikan jaminan terhadap serangan yang disukai dan penyalahgunaan data dan sistem berharga Anda. Untuk informasi selengkapnya, lihat Gambaran Umum pilar keamanan.

Dua faktor utama dalam keamanan untuk skenario ini adalah enklave dan pengesahan yang aman.

Jaminan enklave

Admin Kubernetes, atau pengguna istimewa dengan tingkat akses tertinggi (misalnya, root), tidak dapat memeriksa konten dalam memori atau kode sumber driver atau pelaksana. Cache halaman Enklave (EPC) adalah partisi memori khusus di Azure Confidential VM yang digunakan enklave atau kontainer rahasia. VM seri DCsv3 dan DCdsv3 juga dilengkapi dengan memori reguler dan tidak terenkripsi untuk menjalankan aplikasi yang tidak memerlukan enklave aman. Untuk informasi selengkapnya tentang menggunakan Intel SGX untuk enklave, lihat Membangun dengan enklave SGX.

Pengesahan

Pengesahan adalah mekanisme yang memberikan kepada klien, atau pihak, bukti kriptografi bahwa lingkungan tempat aplikasi berjalan dapat dipercaya, termasuk perangkat keras dan perangkat lunaknya, sebelum bertukar data. Pengesahan jarak jauh memastikan bahwa beban kerja Anda belum dirusak saat disebarkan ke host yang tidak tepercaya, seperti instans VM atau simpul Kubernetes yang berjalan di cloud. Dalam proses ini, bukti pengesahan yang disediakan oleh perangkat keras Intel SGX dianalisis oleh penyedia pengesahan.

Untuk melakukan pengesahan jarak jauh pada aplikasi SCONE (seperti Driver Spark dan Pod Pelaksana), diperlukan dua layanan:

  • Layanan pengesahan lokal (LAS): Layanan lokal yang berjalan pada host yang tidak tepercaya (VM kumpulan simpul AKS) dan mengumpulkan bukti pengesahan yang disediakan oleh Intel SGX tentang aplikasi yang dibuktikan. Karena metode penyebaran aplikasi SCONE, bukti ini ditandatangani dan diteruskan ke layanan konfigurasi dan pengesahan (CAS).

  • CAS: Layanan pusat yang mengelola kebijakan keamanan (disebut sesi SCONE), konfigurasi, dan rahasia. CAS membandingkan bukti pengesahan yang dikumpulkan oleh LAS terhadap kebijakan keamanan aplikasi (yang ditentukan oleh pemilik aplikasi) untuk memutuskan apakah enklave dapat dipercaya. Jika ya, CAS memungkinkan enklave berjalan, dan SCONE dengan aman menyuntikkan konfigurasi dan rahasia ke dalamnya. Untuk mempelajari selengkapnya tentang CAS dan fitur-fiturnya, seperti pembuatan rahasia dan kontrol akses, lihat Konfigurasi SCONE dan Layanan Pengesahan.

Skenario ini menggunakan CAS publik yang disediakan oleh SCONE untuk demonstrasi dan kesederhanaan, dan menyebarkan LAS untuk berjalan sebagai DaemonSet pada setiap simpul AKS.

Pengoptimalan biaya

Optimalisasi biaya adalah tentang mencari cara untuk mengurangi pengeluaran yang tidak perlu dan meningkatkan efisiensi operasional. Untuk informasi selengkapnya, lihat Gambaran umum pilar pengoptimalan biaya.

Untuk menjelajahi biaya menjalankan skenario ini, gunakan kalkulator harga Azure, yang telah mengonfigurasi semua layanan Azure. Harap perhatikan lisensi tambahan yang diperlukan oleh mitra untuk menjalankan beban kerja produksi.

Menyebarkan skenario ini

Menerapkan skenario ini melibatkan langkah-langkah tingkat tinggi berikut:

  • Dapatkan akses ke gambar dasar PySpark yang digunakan dalam skenario ini dari registri kontainer SCONE: lihat registry.scontain.com:5050 pada gambar yang dikumpulkan SCONE.

  • Kloning proyek demo di GitHub, Confidential Data Analytics dengan Apache Spark di Intel SGX Confidential Containers. Proyek ini berisi semua sumber daya, langkah penyebaran, dan kode sumber yang diperlukan untuk mereprodurasi demo.

  • Sebarkan Always Encrypted dengan enklave aman di Azure SQL Database - Demos. Demo ini menggunakan himpunan data rahasia, ContosoHR, yang disertakan. Skenario ini mendekripsi data rahasia ke dalam teks biasa di dalam enklave kontainer Spark.

  • Sebarkan kumpulan simpul kluster AKS dengan dukungan Intel SGX. Untuk petunjuknya, lihat Mulai Cepat: Menyebarkan kluster AKS dengan simpul komputasi rahasia dengan menggunakan Azure CLI.

  • Sebarkan Layanan Pengesahan Lokal SCONE ke kluster dengan menggunakan manifes Kubernetes yang disertakan.

  • Buat gambar terenkripsi dengan perangkat lunak komputasi rahasia SCONE dan dorong ke Azure Container Registry Anda sendiri. Repositori ini memiliki aplikasi demo yang menghitung jumlah baris dalam catatan perjalanan Taksi Kuning Kota New York, himpunan data terbuka kali, lokasi, tarif, dan data lain yang terkait dengan perjalanan taksi. Anda dapat menyesuaikan ini dengan kebutuhan spesifik Anda.

  • Sebarkan aplikasi Spark dengan menjalankan perintah spark-submit. Ini menyebarkan pod driver dan jumlah pod eksekutor yang dapat dikonfigurasi (demo menggunakan tiga) yang menjalankan tugas dan melaporkan hasil analisis ke driver. Semua komunikasi dienkripsi.

Atau, SCONE Confidential PySpark di Kubernetes, VM, menyertakan demo yang sama dengan yang dapat Anda reproduksi di kluster minikube lokal. Untuk informasi selengkapnya, lihat dokumentasi resmi: komputer virtual SCONE PySpark.

Kontributor

Artikel ini dikelola oleh Microsoft. Ini awalnya ditulis oleh kontributor berikut.

Penulis utama:

Kontributor lainnya:

Untuk melihat profil LinkedIn non-publik, masuk ke LinkedIn.

Langkah berikutnya