Poufne kontenery (wersja zapoznawcza) w usłudze Azure Kubernetes Service (AKS)
Kontenery poufne udostępniają zestaw funkcji i możliwości w celu dalszego zabezpieczania standardowych obciążeń kontenerów w celu osiągnięcia wyższych celów dotyczących bezpieczeństwa danych, prywatności danych i integralności kodu środowiska uruchomieniowego. Usługa Azure Kubernetes Service (AKS) obejmuje poufne kontenery (wersja zapoznawcza) w usłudze AKS.
Poufne kontenery bazują na kontenerach Poufnych Kata i szyfrowaniu sprzętowym w celu szyfrowania pamięci kontenera. Ustanawia nowy poziom poufności danych, uniemożliwiając dane w pamięci podczas obliczeń w postaci zwykłego tekstu w formacie czytelnym. Zaufanie jest uzyskiwane w kontenerze za pośrednictwem zaświadczania sprzętowego, co umożliwia dostęp do zaszyfrowanych danych przez zaufane jednostki.
W połączeniu z piaskownicą zasobnika można uruchamiać poufne obciążenia izolowane na platformie Azure, aby chronić dane i obciążenia. Co sprawia, że kontener jest poufny:
- Przezroczystość: poufne środowisko kontenera, w którym jest udostępniana wrażliwa aplikacja, można zobaczyć i sprawdzić, czy jest bezpieczna. Wszystkie składniki zaufanej bazy obliczeniowej (TCB) mają być typu open source.
- Inspekcja: masz możliwość zweryfikowania i sprawdzenia, jaka wersja pakietu środowiska CoCo, w tym system operacyjny gościa systemu Linux i wszystkie składniki są aktualne. Firma Microsoft loguje się do środowiska uruchomieniowego systemu operacyjnego gościa i kontenera w celu weryfikacji za pośrednictwem zaświadczania. Zwalnia również bezpieczny algorytm wyznaczania wartości skrótu (SHA) kompilacji systemu operacyjnego gościa w celu utworzenia scenariusza słyszalności i kontroli ciągu.
- Pełne zaświadczanie: Wszystkie elementy, które są częścią TEE, są w pełni mierzone przez procesor z możliwością zdalnego weryfikowania. Raport sprzętowy z procesora AMD SEV-SNP odzwierciedla warstwy kontenera i skrót konfiguracji środowiska uruchomieniowego kontenera za pośrednictwem oświadczeń zaświadczania. Aplikacja może pobrać raport sprzętowy lokalnie, w tym raport, który odzwierciedla obraz systemu operacyjnego gościa i środowisko uruchomieniowe kontenera.
- Integralność kodu: wymuszanie środowiska uruchomieniowego jest zawsze dostępne za pośrednictwem zasad zdefiniowanych przez klienta dla kontenerów i konfiguracji kontenerów, takich jak niezmienne zasady i podpisywanie kontenerów.
- Izolacja od operatora: Projekty zabezpieczeń, które zakładają najmniejsze uprawnienia i najwyższą ochronę izolacji od wszystkich niezaufanych stron, w tym administratorów klientów/dzierżaw. Obejmuje on wzmocnienie zabezpieczeń istniejącego dostępu do płaszczyzny kontroli kubernetes (kubelet) do poufnych zasobników.
Dzięki innym środkom zabezpieczeń lub mechanizmom kontroli ochrony danych w ramach ogólnej architektury te możliwości pomagają spełnić wymagania dotyczące zgodności z przepisami, branżą lub ładem w zakresie zabezpieczania poufnych informacji.
Ten artykuł ułatwia zrozumienie funkcji Poufne kontenery oraz sposób implementowania i konfigurowania następujących elementów:
- Wdrażanie lub uaktualnianie klastra usługi AKS przy użyciu interfejsu wiersza polecenia platformy Azure
- Dodaj adnotację do zasobnika YAML, aby oznaczyć zasobnik jako uruchamiany jako poufny kontener
- Dodawanie zasad zabezpieczeń do zasobnika YAML
- Włączanie wymuszania zasad zabezpieczeń
- Wdrażanie aplikacji w przetwarzaniu poufnym
Obsługiwane scenariusze
Kontenery poufne (wersja zapoznawcza) są odpowiednie dla scenariuszy wdrażania obejmujących poufne dane. Na przykład dane osobowe (PII) lub wszelkie dane z silnymi zabezpieczeniami wymaganymi do zapewnienia zgodności z przepisami. Oto niektóre typowe scenariusze z kontenerami:
- Uruchamianie analizy danych big data przy użyciu platformy Apache Spark w celu rozpoznawania wzorców oszustw w sektorze finansowym.
- Uruchamianie własnych modułów uruchamianych w usłudze GitHub w celu bezpiecznego podpisywania kodu w ramach praktyk DevOps ciągłej integracji i ciągłego wdrażania (CI/CD).
- Wnioskowanie i trenowanie modeli uczenia maszynowego przy użyciu zaszyfrowanego zestawu danych z zaufanego źródła. Odszyfrowuje tylko wewnątrz poufnego środowiska kontenera, aby zachować prywatność.
- Tworzenie czystych pomieszczeń danych big data na potrzeby dopasowywania identyfikatorów w ramach obliczeń wielostronnych w branżach takich jak handel detaliczny z reklamami cyfrowymi.
- Tworzenie stref docelowych bez zaufania do poufnego przetwarzania w celu spełnienia przepisów dotyczących prywatności na potrzeby migracji aplikacji do chmury.
Kwestie wymagające rozważenia
Poniżej przedstawiono zagadnienia dotyczące tej wersji zapoznawczej funkcji Poufne kontenery:
- Wzrost czasu uruchamiania zasobnika w porównaniu z zasobnikami runc i zasobnikami izolowanymi jądrami.
- Obrazy kontenerów w wersji 1 nie są obsługiwane.
- Aktualizacje wpisów tajnych i obiektów ConfigMap nie są odzwierciedlane w gościu.
- Efemeryczne kontenery i inne metody rozwiązywania problemów, takie jak
exec
kontener, dane wyjściowe dziennika z kontenerów, astdio
(ReadStreamRequest i WriteStreamRequest) wymagają modyfikacji zasad i ponownego wdrażania. - Narzędzie generatora zasad nie obsługuje typów wdrożeń cronjob.
- Ze względu na to, że pomiary warstwy obrazu kontenera są kodowane w zasadach zabezpieczeń, nie zalecamy używania tagu
latest
podczas określania kontenerów. - Usługi, moduły równoważenia obciążenia i punkty końcoweLices obsługują tylko protokół TCP.
- Wszystkie kontenery we wszystkich zasobnikach w klastrach muszą być skonfigurowane na .
imagePullPolicy: Always
- Generator zasad obsługuje tylko zasobniki używające adresów IPv4.
- Nie można zmienić wartości ConfigMaps i wpisów tajnych, jeśli ustawienie jest używane przy użyciu metody zmiennej środowiskowej po wdrożeniu zasobnika. Zasady zabezpieczeń uniemożliwiają jej korzystanie.
- Dzienniki kończenia zasobników nie są obsługiwane. Podczas gdy zasobniki zapisują dzienniki
/dev/termination-log
zakończenia do lub do lokalizacji niestandardowej, jeśli określono w manifeście zasobnika, host/kubelet nie może odczytać tych dzienników. Zmiany z gościa do tego pliku nie są odzwierciedlane na hoście.
Omówienie alokacji zasobów
Ważne jest, aby zrozumieć zachowanie alokacji zasobów pamięci i procesora w tej wersji.
- Procesor CPU: podkładka przypisuje jeden procesor wirtualny do podstawowego systemu operacyjnego wewnątrz zasobnika. Jeśli nie określono żadnego zasobu
limits
, obciążenia nie mają przypisanych oddzielnych udziałów procesora CPU, procesor wirtualny jest następnie współużytkowany z tym obciążeniem. Jeśli określono limity procesora CPU, udziały procesora CPU są jawnie przydzielane dla obciążeń. - Pamięć: Program obsługi Kata-CC używa 2 GB pamięci dla systemu operacyjnego UVM i X MB dodatkowej pamięci, gdzie X jest zasobem
limits
, jeśli jest określony w manifeście YAML (co powoduje 2 GB maszyny wirtualnej, gdy nie podano limitu, bez niejawnej pamięci dla kontenerów). Program obsługi kata używa pamięci podstawowej 256 MB dla systemu operacyjnego UVM i X MB dodatkowej pamięci, gdy zasóblimits
jest określony w manifeście YAML. Jeśli limity nie są określone, dodawany jest niejawny limit wynoszący 1792 MB, co powoduje dodanie maszyny wirtualnej o rozmiarze 2 GB i 1792 MB niejawnej pamięci dla kontenerów.
W tej wersji określanie żądań zasobów w manifestach zasobnika nie jest obsługiwane. Kontener Kata ignoruje żądania zasobów z manifestu YAML zasobnika, a w związku z tym kontenerd nie przekazuje żądań do podkładki. Użyj zasobu limit
zamiast zasobu requests
, aby przydzielić pamięć lub zasoby procesora CPU dla obciążeń lub kontenerów.
Dzięki lokalnemu systemowi plików kontenera wspieranemu przez pamięć maszyny wirtualnej zapisywanie w systemie plików kontenera (w tym rejestrowanie) może wypełnić dostępną pamięć udostępnioną zasobnikowi. Ten warunek może spowodować potencjalne awarie zasobnika.
Następne kroki
- Zapoznaj się z omówieniem zasad zabezpieczeń Poufne kontenery, aby dowiedzieć się, jak obciążenia i ich dane w zasobniku są chronione.
- Wdrażanie kontenerów poufnych w usłudze AKS przy użyciu domyślnych zasad zabezpieczeń.
- Dowiedz się więcej o dedykowanych hostach platformy Azure dla węzłów z klastrem usługi AKS w celu korzystania z izolacji sprzętowej i kontroli nad zdarzeniami konserwacji platformy Azure.
Azure Kubernetes Service