AWS Nitro Enclaves – izolowane środowiska obliczeniowe EC2 w celu ochrony poufnych danych

11 grudnia 2020

System Nitro to bogata kolekcja elementów składowych, które mogą zostać zgromadzone w wielu różnych konfiguracjach, dając nam elastyczność w projektowaniu, i w szybkim tempie dostarczać typy instancji EC2 wraz z rozszerzającym się wyborem wyliczeń, przechowywania, pamięci oraz opcjami tworzenia sieci.

 

Kolekcja instancji AWS została zaprojektowana, aby zaspokoić rosnące potrzeby i wymagania klientów. Tutaj możemy wymienić chociażby następujące instancje: M5, C5, R5, T3, I3, A1, P3dn, z1d oraz High Memory.

 

Nowe wyzwanie – Isolation Challenge

Klienci AWS pracujący w tak różnorodnych branżach jak usługi finansowe, obronność, media i rozrywka czy nauki przyrodnicze, w chmurze AWS stale przetwarzają bardzo poufne dane. Kiedy to robią, muszą chronić je przed wewnętrznymi i zewnętrznymi atakami, a równocześnie muszą radzić sobie ze skomplikowanymi sytuacjami, które obejmują wielu wzajemnie niezaufanych partnerów, sprzedawców, klientów oraz pracowników. Obecnie korzystają z VPCs w celu stworzenia wysoce odizolowanego środowiska, z kontrolowaną i ograniczoną zdolnością przyłączeniową dostępną jedynie dla wybranego zbioru użytkowników.

 

Nitro Enklawy (Nitro Enclaves)

Odpowiedzią na tą potrzebę jest AWS Nitro Enclaves. Można ich użyć do oddzielenia izolowanego środowiska obliczeniowego na każdej instancji EC2, która jest zasilana przez Nitro System. Nitro System oddziela wielorakie instancje EC2, które działają na tym samym sprzęcie komputerowym. Nitro Enclaves zapewnia dodatkową izolację poprzez dzielenie CPU i pamięci pojedynczej „nadrzędnej” instancji EC2 oraz chroni bardzo poufne dane przed innymi użytkownikami czy aplikacjami, które działają na tej samej instancji. Jest to możliwe do udowodnienia, że środowisko jest bezpieczne, i inne aplikacje, użytkownicy czy procesy zachodzące na nadrzędnej instancji EC2 nie mają do niego dostępu. Jest bardzo elastyczne i zaprojektowane w sposób, który spełni Twoje wszystkie potrzeby dotyczące najbardziej wymagających obciążeń produkcyjnych, a także zapewni pewną kontrolę nad ilością pamięci i mocy obliczeniowej, która jest przydzielona do ograniczonego środowiska.

AWS wprowadza wsparcie w tworzeniu pojedynczej enklawy na instancję EC2, a także dodaje wsparcie dla wielorakich enklaw w przyszłości. Dzięki temu użytkownik ma możliwość korzystania ze wszystkich oprócz jednej z instancji rdzenia (2 vCPU na instancje, które używają technologii Hyper-threading), a także całej jej pamięci dla enklawy:

AWS Nitro Enclaves

Każda z enklaw posiada niezależne jądro oraz wyłączny dostęp do pamięci i zasobów CPU. Enklawy nie posiadają zewnętrznej łączności z siecią, trwałej pamięci masowej czy dostępu do użytkownika (nawet z pełnymi pozwoleniami IAM). Wszystkie dane przychodzące i wychodzące z enklawy przesyłane są przez połączenie wirtualnego gniazda (vsock), które kończy się na instancji EC2.

aws nitro enclaves

Nitro Hypervisor tworzy, a potem podpisuje dokument atestacyjny w trakcie tworzenia każdej enklawy Nitro. Taki dokument (poza innymi rzeczami) zawiera zestaw rejestrów konfiguracji platformy (PCR lub Platform Configuration Registers), które zapewniają kryptograficznie poprawny pomiar procesu rozruchu. Te wartości, po dołączeniu do zasad kluczy KMS, są używane w celu zweryfikowania tego, że oczekiwany obraz, system operacyjny, aplikacja, rola IAM i identyfikator instancji zostały użyte w celu stworzenia enklawy. Po wykonaniu przez KMS weryfikacji następuje pożądana akcja API (rozszyfrowanie, generowanie klucza danych lub dowolnej wartości), zażądane przez kod zarządzający enklawą.

 

Tworzenie i korzystanie z enklaw

Instancja musi kierować AMI, które zawiera nowe Nitro CLI. Te narzędzia zostały zaprojektowane, aby pracować na instancji, która hostuje enklawę. Instancja sama w sobie musi zostać uruchomiona wraz z włączoną opcją enclave-enabled (uruchomienie-enklawy)

aws nitro enclaves

Dla większej wygody docker images mogą zostać użyte jako podstawa obrazków enklawy (*.eif). Używając przykładu hello z NITRO CLI repo, można utworzyć docker image:

aws nitro enclaves

Następnie tworzymy EIF:

aws nitro enclaves

PCRs są wykorzystywane do zweryfikowania oczekiwanego obrazu, jądra i aplikacji, które są uruchomione w enklawie. Tutaj znajdują się trzy PCR, które są generowane w momencie tworzenia EIF:

  • PCR0 – SHA384 hash obrazu;
  • PCR1 – SHA384 hash jądra systemu operacyjnego i procesu uruchomienia;
  • PCR2 – SHA384 hash aplikacji.

Następnie uruchamiamy naszą enklawę (używam trybu debugowania do testowania):

aws nitro enclaves

Mogę zobaczyć naszą enklawę:

aws nitro enclaves

Rzut oka na okno konsoli (dostępne tylko w trybie debugowania).

W rzeczywistości obraz zostałby skonfigurowany w celu rozpoczęcia kodu aplikacji enklawy. Kod do komunikacji z KMS wykorzystałby Nitro Enclaves SDK w celu przeniesienia kluczy i rozszyfrowania nadchodzących danych. Kod wykorzystałby także klucz danych dostarczany przez KMS w celu zaszyfrowania danych po ich uprzednim przetworzeniu.

Kiedy skończyłem z enklawą, kończę ją:

aws nitro enclaves

Atestacja

Jak dotąd pokazaliśmy, jak skonfigurować, uruchamiać i zakańczać enklawę. Nie mówiliśmy jeszcze nic o ważnym koncepcie atestacji. Krótko mówiąc, jest to proces, który pozwala Ci być pewnym, że obraz, system operacyjny i kod aplikacji działające w enklawie nie zostały przypadkowo zmienione lub w jakikolwiek sposób zafałszowane. Jak pokazywaliśmy wcześniej, wartości PCR zapewniają kryptograficznie poprawny pomiar procesu rozruchu każdego elementu. W rzeczywistym środowisku stworzyłbym KMS zasadę klucz, która sprawdza wartość PCR jako część oświadczenia dotyczącego warunków:

AWS Certificate Manager stworzony dla Nitro Enclaves stanowi próbkę aplikacji, która pozwala Ci na darmowe korzystanie z publicznych i prywatnych certyfikatów SSL/TLS w Twoich aplikacjach sieciowych oraz serwerach działających na instancjach EC2 z AWS Nitro Enclaves. Aby dowiedzieć się więcej, zapoznaj się z: Aplikacja Nitro Enclaves: AWS Certificate Manager dla Nitro Enclaves (Nitro Enclaves Application: AWS Certificate Manager for Nitro Enclaves).

 

Już dostępne

Tworzenie enklaw można rozpocząć, korzystając z procesorów Intel oraz opartych na AMD na terenie wschodniego USA (Północna Virginia, Ohio), zachodniego USA (Oregon), Europy (Frankfurt, Irlandia, Londyn, Paryż, Sztokholm), Azji Wschodniej (Hong Kong, Mumbai, Singapur, Sydney, Tokio) i Południowej Ameryki (São Paulo). Już niedługo pojawi się jeszcze więcej regionów ze wsparciem dla procesorów opartych na Gravition. Płacisz standardowe ceny za instance EC2 i jakiekolwiek wezwania do KMS.

 

Źródło: https://aws.amazon.com/

 

PYTANIA? SKONTAKTUJ SIĘ Z NAMI