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.

Diagram of confidential container conversion, with new steps for enabling Intel SGX and AKS.

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.

Diagram of Fortanix deployment process, showing steps to move applications to confidential containers and deploy.

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.

Diagram of SCONE workflow, showing how SCONE processes binary images.

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

Diagram of Anjuna's process, showing how containers are run on Azure confidential computing.

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

Kontakt

Czy masz pytania dotyczące implementacji? Czy chcesz zostać włączonym dla kontenerów poufnych? Wyślij wiadomość na adres acconaks@microsoft.com.

Następne kroki