Důvěrné kontejnery ve službě Azure Kubernetes Service (AKS) s enklávy Intel SGX

Důvěrné kontejnery pomáhají spouštět stávající nemodifikované kontejnerové aplikace nejběžnějších programovacích jazyků runtime (Python, Node, Java atd.) v důvěryhodném spouštěcím prostředí (TEE) založeném na Intel SGX. Tento model balení obvykle nepotřebuje žádné úpravy zdrojového kódu ani rekompilace a je nejrychlejší metodou spuštění v enklávách Intel SGX. Typický proces nasazení pro spouštění standardních kontejnerů Dockeru vyžaduje open source obálku SGX nebo partnerské řešení Azure. V tomto modelu balení a spouštění se každá aplikace kontejneru načte do důvěryhodné hranice (enklávy) a s hardwarovou izolací vynucenou procesorem Intel SGX. Každý kontejner spuštěný v enklávě obdrží vlastní šifrovací klíč paměti dodaný z procesoru Intel SGX. Tento model funguje dobře pro aplikace kontejnerů, které jsou dostupné na trhu, nebo vlastní aplikace, které jsou aktuálně spuštěné na uzlech pro obecné účely. Aby bylo možné spustit existující kontejner Dockeru, aplikace na důvěrných výpočetních uzlech vyžadují obálkový software Intel Software Guard Extensions (SGX), který pomáhá spouštění kontejnerů v rámci speciální sady instrukcí procesoru. SGX vytvoří přímé spuštění procesoru, které odebere hostovaný operační systém (OS), hostitelský operační systém nebo hypervisor z hranice důvěryhodnosti. Tento krok snižuje celkové oblasti útoku na povrch a ohrožení zabezpečení při dosažení izolace na úrovni procesu v rámci jednoho uzlu.

Celkový proces spouštění nemodifikovaných kontejnerů zahrnuje změny způsobu zabalení kontejneru dnes, jak je podrobně popsáno níže.

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

Zabalený software SGX potřebný ke spouštění standardních kontejnerů nabízí softwaroví partneři Azure nebo řešení open source softwaru (OSS).

Povolení partnerů

Vývojáři můžou zvolit poskytovatele softwaru na základě jejich funkcí, integrace se službami Azure a podporou nástrojů.

Důležité

Softwarové partnery Azure často zahrnují licenční poplatky nad infrastrukturou Azure. Ověřte všechny podmínky partnerského softwaru nezávisle.

Fortanix

Fortanix má prostředí portálu a rozhraní příkazového řádku (CLI) k převodu kontejnerizovaných aplikací na důvěrné kontejnery podporující SGX. Aplikaci nemusíte upravovat ani znovu kompilovat. Fortanix poskytuje flexibilitu při spouštění a správě široké škály aplikací. Můžete použít existující aplikace, nové aplikace nativní pro enklávu a předem zabalené aplikace. Začněte s uživatelským rozhraním Správce enklávy Fortanix nebo rozhraními REST API. Vytvářejte důvěrné kontejnery pomocí úvodní příručky fortanix pro AKS.

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

SCONE (Scontain)

Zásady zabezpečení SCONE (Scontain) generují certifikáty, klíče a tajné kódy. Tyto přihlašovací údaje vidí jenom služby s ověřením identity pro aplikaci. Aplikační služby pro sebe automaticky provádí ověření prostřednictvím protokolu TLS. Nemusíte upravovat aplikace ani protokol TLS. Další vysvětlení najdete v ukázce aplikace Flask od SCONE.

SCONE dokáže převést většinu existujících binárních souborů na aplikace, které běží uvnitř enkláv. SCONE také chrání interpretované jazyky, jako je Python, šifrováním datových souborů i souborů kódu Pythonu. Pomocí zásad zabezpečení SCONE můžete chránit šifrované soubory před neoprávněným přístupem, úpravami a vrácením zpět. Další informace najdete v dokumentaci SCONE o tom, jak používat SCONE s existující aplikací Python.

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

SCONE můžete nasadit na důvěrné výpočetní uzly Azure pomocí AKS po nasazení této ukázkové aplikace AKS SCONE.

Anjuna

Anjuna poskytuje software platformy SGX pro spouštění nemodifikovaných kontejnerů v AKS. Další informace najdete v dokumentaci k funkcím a ukázkovým aplikacím v Anjuně.

Začínáme s ukázkovou službou Redis Cache a vlastní aplikací Pythonu zde

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

Povolení operačního systému

Poznámka:

Důvěrné výpočetní prostředí Azure a Microsoft nejsou přímo přidružené k těmto projektům a řešením.

Gramine

Gramine je jednoduchý hostovaný operační systém navržený tak, aby spouštěl jednu linuxovou aplikaci s minimálními požadavky na hostitele. Gramine může spouštět aplikace v izolovaném prostředí. Existuje podpora nástrojů pro převod existujícího kontejneru Dockeru na kontejnery připravené pro SGX.

Další informace najdete v ukázkové aplikaci a nasazení Gramine v AKS.

Occlum

Occlum je paměťově bezpečný operační systém knihovny s více procesy (LibOS) pro Intel SGX. Operační systém umožňuje starším aplikacím spouštět na SGX s malými nebo žádnými úpravami zdrojového kódu. Occlum transparentně chrání důvěrnost uživatelských úloh a zároveň umožňuje snadnou metodu "lift and shift" do stávajících aplikací Dockeru.

Další informace najdete v pokynech k nasazení a ukázkových aplikací Occlum v AKS.

Marblerun

Marblerun je orchestrační architektura pro důvěrné kontejnery. V Kubernetes s podporou SGX můžete spouštět a škálovat důvěrné služby. Marblerun se stará o často používané úlohy, jako je ověření služeb v clusteru, správa tajných kódů pro ně a vytvoření připojení mTLS enklávy k enklávu mezi nimi. Marblerun také zajišťuje, že cluster důvěrných kontejnerů dodržuje manifest definovaný v jednoduchém formátu JSON. Manifest můžete ověřit u externích klientů prostřednictvím vzdáleného ověření identity.

Tato architektura rozšiřuje důvěrnost, integritu a ověřitelnost vlastností jedné enklávy do clusteru Kubernetes.

Marblerun podporuje důvěrné kontejnery vytvořené pomocí Graphene, Occlum a EGo s příklady pro každou sadu SDK. Architektura běží v Kubernetes společně s vašimi stávajícími nástroji nativními pro cloud. K dispozici jsou grafy rozhraní příkazového řádku a helmu. Marblerun také podporuje důvěrné výpočetní uzly v AKS. Postupujte podle průvodce Marblerunem a nasaďte Marblerun v AKS.

Referenční architektury důvěrných kontejnerů

Kontakt

Máte dotazy týkající se implementace? Chcete se stát povolením pro důvěrné kontejnery? Odešlete e-mail na acconaks@microsoft.com

Další kroky