Poufne kontenery w usłudze Azure Kubernetes Service (AKS) z enklawami Intel SGX
Kontenery poufne ułatwiają uruchamianie istniejących niezmodyfikowanych aplikacji kontenerów najczęściej używanych środowisk uruchomieniowych języków programowania (Python, Node, Java itp.) w środowisku zaufanym wykonywania (TEE) opartym na technologii Intel SGX. Ten model pakowania zwykle nie wymaga żadnych modyfikacji kodu źródłowego ani ponownej kompilacji i jest najszybszą metodą uruchamiania w enklawach Intel SGX. Typowy proces wdrażania do uruchamiania standardowych kontenerów platformy Docker wymaga otoki SGX typu open source lub rozwiązania partnerskiego platformy Azure. W tym modelu pakowania i wykonywania każda aplikacja kontenera jest ładowana do zaufanej granicy (enklawy) i z izolacją opartą na sprzęcie wymuszaną przez procesor Intel SGX. Każdy kontener uruchomiony w enklawie otrzymuje własny klucz szyfrowania pamięci dostarczony z procesora CPU Intel SGX. Ten model dobrze sprawdza się w przypadku gotowych aplikacji kontenerów dostępnych na rynku lub niestandardowych aplikacjach działających obecnie w węzłach ogólnego przeznaczenia. Aby uruchomić istniejący kontener platformy Docker, aplikacje na poufnych węzłach obliczeniowych wymagają oprogramowania otoki Intel Software Guard Extensions (SGX), aby ułatwić wykonywanie kontenerów w granicach specjalnego zestawu instrukcji procesora CPU. SgX tworzy bezpośrednie wykonanie procesora CPU w celu usunięcia systemu operacyjnego gościa, systemu operacyjnego hosta lub funkcji hypervisor z granicy zaufania. Ten krok zmniejsza ogólne obszary ataków na powierzchnię i luki w zabezpieczeniach podczas uzyskiwania izolacji na poziomie procesu w jednym węźle.
Ogólny proces uruchamiania niezmodyfikowanych kontenerów obejmuje zmiany sposobu, w jaki kontener jest spakowany dzisiaj, jak opisano poniżej.
Oprogramowanie otoki SGX potrzebne do uruchamiania standardowych kontenerów jest oferowane przez partnerów oprogramowania platformy Azure lub rozwiązań oprogramowania open source (OSS).
Osoby obsługujące partnerów
Deweloperzy mogą wybierać dostawców oprogramowania na podstawie ich funkcji, integracji z usługami platformy Azure i obsługą narzędzi.
Ważne
Partnerzy oprogramowania platformy Azure często wiążą się z opłatami licencyjnych w ramach infrastruktury platformy Azure. Sprawdź niezależnie wszystkie postanowienia dotyczące oprogramowania partnerskiego.
Fortanix
Fortanix ma środowiska portalu i interfejsu wiersza polecenia (CLI), aby przekonwertować swoje konteneryzowane aplikacje na kontenery poufne z obsługą protokołu SGX. Nie musisz modyfikować ani ponownie kompilować aplikacji. Fortanix zapewnia elastyczność uruchamiania szerokiego zestawu aplikacji i zarządzania nimi. Możesz używać istniejących aplikacji, nowych aplikacji natywnych enklawy i wstępnie spakowanych aplikacji. Zacznij od interfejsu użytkownika menedżera enklawy Fortanix lub interfejsów API REST. Tworzenie poufnych kontenerów przy użyciu przewodnika Szybki start fortanix dla usługi AKS.
SCONE (Scontain)
Zasady zabezpieczeń SCONE (Scontain) generują certyfikaty, klucze i wpisy tajne. Te poświadczenia widzą tylko usługi z zaświadczeniem dla aplikacji. Usługi aplikacji automatycznie zaświadczają dla siebie za pośrednictwem protokołu TLS. Nie trzeba modyfikować aplikacji ani protokołu TLS. Aby uzyskać więcej wyjaśnień, zobacz pokaz aplikacji platformy Flask SCONE.
SCONE może konwertować większość istniejących plików binarnych na aplikacje, które działają wewnątrz enklaw. SCONE chroni również interpretowane języki, takie jak Python, szyfrując zarówno pliki danych, jak i pliki kodu języka Python. Zasady zabezpieczeń SCONE umożliwiają ochronę zaszyfrowanych plików przed nieautoryzowanym dostępem, modyfikacjami i wycofywaniem. Aby uzyskać więcej informacji, zobacz dokumentację SCONE dotyczącą korzystania z aplikacji SCONE z istniejącą aplikacją języka Python.
Rozwiązanie SCONE można wdrożyć w węzłach poufnego przetwarzania platformy Azure przy użyciu usługi AKS po wdrożeniu przykładowej aplikacji usługi AKS W usłudze SCONE.
Anjuna
Anjuna udostępnia oprogramowanie platformy SGX do uruchamiania niezmodyfikowanych kontenerów w usłudze AKS. Aby uzyskać więcej informacji, zobacz dokumentację anjuna dotyczącą funkcji i przykładowych aplikacji.
Rozpocznij pracę z przykładową pamięcią podręczną Redis Cache i aplikacją niestandardową języka Python tutaj
Jednostki obsługujące system operacyjny
Uwaga
Poufne przetwarzanie na platformie Azure i firma Microsoft nie są bezpośrednio powiązane z tymi projektami i rozwiązaniami.
Gramina
Gramine to lekki system operacyjny gościa zaprojektowany do uruchamiania pojedynczej aplikacji systemu Linux z minimalnymi wymaganiami dotyczącymi hosta. Gramine może uruchamiać aplikacje w izolowanym środowisku. Istnieje obsługa narzędzi do konwertowania istniejącego kontenera platformy Docker na kontenery gotowe do użycia SGX.
Aby uzyskać więcej informacji, zobacz przykładową aplikację i wdrożenie gramine w usłudze AKS
Oklum
Occlum to bezpieczny w pamięci system operacyjny biblioteki wieloprocesowej (LibOS) dla intel SGX. System operacyjny umożliwia uruchamianie starszych aplikacji na SGX bez żadnych modyfikacji kodu źródłowego. Occlum w sposób przezroczysty chroni poufność obciążeń użytkowników, umożliwiając łatwe "lift and shift" do istniejących aplikacji platformy Docker.
Aby uzyskać więcej informacji, zobacz Instrukcje wdrażania firmy Occlum i przykładowe aplikacje w usłudze AKS.
Marmurowy
Marblerun to struktura orkiestracji dla poufnych kontenerów. Usługi poufne można uruchamiać i skalować na platformie Kubernetes z włączoną obsługą SGX. Marblerun zajmuje się zadaniami kotłowymi, takimi jak weryfikowanie usług w klastrze, zarządzanie wpisami tajnymi dla nich i ustanawianie enklawy mTLS połączeń między nimi. Aplikacja Marblerun zapewnia również, że klaster poufnych kontenerów jest zgodny z manifestem zdefiniowanym w prostym formacie JSON. Manifest można zweryfikować z klientami zewnętrznymi za pomocą zdalnego zaświadczania.
Ta struktura rozszerza poufność, integralność i właściwości weryfikowalności pojedynczej enklawy do klastra Kubernetes.
Aplikacja Marblerun obsługuje poufne kontenery utworzone za pomocą programu Graphene, Occlum i EGo, z przykładami dla każdego zestawu SDK. Platforma działa na platformie Kubernetes wraz z istniejącymi narzędziami natywnymi dla chmury. Istnieje interfejs wiersza polecenia i wykresy helm. Program Marblerun obsługuje również poufne węzły obliczeniowe w usłudze AKS. Postępuj zgodnie z przewodnikiem marblerun, aby wdrożyć Marmurrun w usłudze AKS.
Architektury referencyjne kontenerów poufnych
- Poufne komunikaty o danych dla architektury referencyjnej opieki zdrowotnej i przykład z poufnymi kontenerami Intel SGX.
- Poufne przetwarzanie danych big data za pomocą platformy Apache Spark w usłudze AKS z poufnymi kontenerami Intel SGX.
Kontakt
Czy masz pytania dotyczące implementacji? Czy chcesz zostać włączonym dla kontenerów poufnych? Wyślij wiadomość na adres acconaks@microsoft.com.