Zaufane uruchamianie (wersja zapoznawcza) dla usługi Azure Kubernetes Service (AKS)

Zaufane uruchamianie (wersja zapoznawcza) zwiększa bezpieczeństwo maszyn wirtualnych generacji 2, chroniąc przed zaawansowanymi i trwałymi technikami ataków. Umożliwia administratorom wdrażanie węzłów usługi AKS, które zawierają bazowe maszyny wirtualne, ze zweryfikowanymi i podpisanymi modułami ładujących, jądrami systemu operacyjnego i sterownikami. Dzięki użyciu bezpiecznego i mierzonego rozruchu administratorzy uzyskują szczegółowe informacje i pewność integralności całego łańcucha rozruchu.

Ten artykuł pomaga zrozumieć tę nową funkcję i jak ją zaimplementować.

Omówienie

Zaufane uruchamianie składa się z kilku, skoordynowanych technologii infrastruktury, które można włączyć niezależnie. Każda technologia zapewnia kolejną warstwę obrony przed zaawansowanymi zagrożeniami.

  • vTPM — zaufane uruchamianie wprowadza zwirtualizowaną wersję sprzętowego modułu TPM (Trusted Platform Module ), zgodną ze specyfikacją modułu TPM 2.0. Służy jako dedykowany bezpieczny magazyn kluczy i pomiarów. Zaufane uruchamianie zapewnia maszynie wirtualnej własne dedykowane wystąpienie modułu TPM działające w bezpiecznym środowisku poza zasięgiem dowolnej maszyny wirtualnej. Maszyna wirtualna vTPM umożliwia zaświadczenie przez pomiar całego łańcucha rozruchu maszyny wirtualnej (UEFI, OS, system i sterowniki). Zaufane uruchamianie używa maszyny wirtualnej vTPM do przeprowadzania zdalnego zaświadczania przez chmurę. Jest on używany do kontroli kondycji platformy i podejmowania decyzji opartych na zaufaniu. W ramach kontroli kondycji zaufane uruchamianie może kryptograficznie certyfikować, że maszyna wirtualna została uruchomiona poprawnie. Jeśli proces zakończy się niepowodzeniem, prawdopodobnie dlatego, że maszyna wirtualna uruchamia nieautoryzowany składnik, Microsoft Defender dla Chmury wystawia alerty integralności. Alerty zawierają szczegółowe informacje o tym, które składniki nie przeszły testów integralności.

  • Bezpieczny rozruch — w katalogu głównym zaufanego uruchamiania jest bezpieczny rozruch maszyny wirtualnej. Ten tryb, który jest implementowany w oprogramowaniu układowym platformy, chroni przed instalacją pakietów rootkit opartych na złośliwym oprogramowaniu i zestawów rozruchowych. Bezpieczny rozruch działa, aby upewnić się, że mogą być uruchamiane tylko podpisane systemy operacyjne i sterowniki. Ustanawia on "główny element zaufania" dla stosu oprogramowania na maszynie wirtualnej. Po włączeniu bezpiecznego rozruchu wszystkie składniki rozruchu systemu operacyjnego (moduł ładujący rozruchu, jądro, sterowniki jądra) muszą być podpisane przez zaufanych wydawców. Zarówno system Windows, jak i wybierz dystrybucje systemu Linux obsługują bezpieczny rozruch. Jeśli bezpieczny rozruch nie może uwierzytelnić obrazu podpisanego przez zaufanego wydawcę, maszyna wirtualna nie może uruchomić. Aby uzyskać więcej informacji, zobacz Bezpieczny rozruch.

Zanim rozpoczniesz

  • Interfejs wiersza polecenia platformy Azure w wersji 2.44.1 lub nowszej. Uruchom polecenie az --version , aby znaleźć wersję i uruchomić polecenie az upgrade , aby uaktualnić wersję. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.

  • aks-preview Rozszerzenie interfejsu wiersza polecenia platformy Azure w wersji 1.0.0b6 lub nowszej.

  • Zarejestruj funkcję w subskrypcji platformy TrustedLaunchPreview Azure.

  • Usługa AKS obsługuje zaufane uruchamianie (wersja zapoznawcza) w wersji 1.25.2 lub nowszej.

  • Zaufane uruchamianie obsługuje tylko maszyny wirtualne generacji 2 platformy Azure.

  • Bezpieczny rozruch wymaga podpisanych modułów ładujących rozruchu, jąder systemu operacyjnego i sterowników.

Instalowanie rozszerzenia interfejsu wiersza polecenia platformy Azure w wersji zapoznawczej usługi aks

Ważne

Funkcje usługi AKS w wersji zapoznawczej są dostępne na zasadzie samoobsługi. Wersje zapoznawcze są udostępniane w wersji "as is" i "jako dostępne" i są wykluczone z umów dotyczących poziomu usług i ograniczonej gwarancji. Wersje zapoznawcze usługi AKS są częściowo objęte pomocą techniczną dla klientów. W związku z tym te funkcje nie są przeznaczone do użytku produkcyjnego. Aby uzyskać więcej informacji, zobacz następujące artykuły pomocy technicznej:

Aby zainstalować rozszerzenie aks-preview, uruchom następujące polecenie:

az extension add --name aks-preview

Uruchom następujące polecenie, aby zaktualizować do najnowszej wersji wydanego rozszerzenia:

az extension update --name aks-preview

Rejestrowanie flagi funkcji TrustedLaunchPreview

Zarejestruj flagę TrustedLaunchPreview funkcji przy użyciu polecenia az feature register , jak pokazano w poniższym przykładzie:

az feature register --namespace "Microsoft.ContainerService" --name "TrustedLaunchPreview"

Wyświetlenie stanu Zarejestrowane trwa kilka minut. Sprawdź stan rejestracji przy użyciu polecenia az feature show :

az feature show --namespace "Microsoft.ContainerService" --name "TrustedLaunchPreview"

Gdy stan będzie odzwierciedlał wartość Zarejestrowano, odśwież rejestrację dostawcy zasobów Microsoft.ContainerService , używając polecenia az provider register :

az provider register --namespace "Microsoft.ContainerService"

Ograniczenia

  • Węzły klastra z systemem operacyjnym Windows Server nie są obsługiwane.
  • Zaufane uruchamianie (wersja zapoznawcza) nie obsługuje pul węzłów z włączonym standardem FIPS ani opartym na architekturze ARM64.
  • Zestawy dostępności nie są obsługiwane, tylko zestawy skalowania maszyn wirtualnych.
  • Aby włączyć bezpieczny rozruch w pulach węzłów procesora GPU, należy pominąć instalowanie sterownika procesora GPU. Aby uzyskać więcej informacji, zobaczPomiń instalację sterownika procesora GPU.
  • Efemeryczne dyski systemu operacyjnego można utworzyć przy użyciu zaufanego uruchamiania, a wszystkie regiony są obsługiwane. Jednak nie wszystkie rozmiary maszyn wirtualnych są obsługiwane. Aby uzyskać więcej informacji, zobacz Zaufane rozmiary efemerycznego systemu operacyjnego uruchamiania.

Wdrażanie nowego klastra

Wykonaj następujące kroki, aby wdrożyć klaster usługi AKS przy użyciu interfejsu wiersza polecenia platformy Azure.

  1. Utwórz klaster usługi AKS przy użyciu polecenia az aks create . Przed uruchomieniem polecenia przejrzyj następujące parametry:

    • --name: wprowadź unikatową nazwę klastra usługi AKS, taką jak myAKSCluster.
    • --resource-group: wprowadź nazwę istniejącej grupy zasobów do hostowania zasobu klastra usługi AKS.
    • --enable-secure-boot: umożliwia bezpieczny rozruch do uwierzytelniania obrazu podpisanego przez zaufanego wydawcę.
    • --enable-vtpm: włącza vTPM i wykonuje zaświadczenie przez pomiar całego łańcucha rozruchu maszyny wirtualnej.

    Uwaga

    Bezpieczny rozruch wymaga podpisanych modułów ładujących rozruchu, jąder systemu operacyjnego i sterowników. Jeśli po włączeniu bezpiecznego rozruchu węzły nie są uruchamiane, możesz sprawdzić, które składniki rozruchu są odpowiedzialne za błędy bezpiecznego rozruchu na maszynie wirtualnej z systemem Linux platformy Azure. Zobacz weryfikowanie błędów bezpiecznego rozruchu.

    Poniższy przykład tworzy klaster o nazwie myAKSCluster z jednym węzłem w grupie myResourceGroup i włącza protokół Secure Boot i vTPM:

    az aks create --name myAKSCluster --resource-group myResourceGroup --node-count 1 --enable-secure-boot --enable-vtpm --enable-managed-identity --generate-ssh-keys
    
  2. Uruchom następujące polecenie, aby uzyskać poświadczenia dostępu dla klastra Kubernetes. Użyj polecenia az aks get-credentials i zastąp wartości nazwy klastra i nazwy grupy zasobów.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    

Dodawanie puli węzłów z włączonym zaufanym uruchamianiem

Wdróż pulę węzłów z włączonym zaufanym uruchamianiem przy użyciu polecenia az aks nodepool add . Przed uruchomieniem polecenia przejrzyj następujące parametry:

  • --cluster-name: wprowadź nazwę klastra usługi AKS.
  • --resource-group: wprowadź nazwę istniejącej grupy zasobów do hostowania zasobu klastra usługi AKS.
  • --name: wprowadź unikatową nazwę puli węzłów. Nazwa puli węzłów może zawierać tylko małe litery alfanumeryczne i musi zaczynać się małą literą. W przypadku pul węzłów systemu Linux długość musi wynosić od 1 do 11 znaków.
  • --node-count: liczba węzłów w puli agentów Kubernetes. Wartość domyślna to 3.
  • --enable-secure-boot: umożliwia bezpieczny rozruch do uwierzytelniania obrazu podpisanego przez zaufanego wydawcę.
  • --enable-vtpm: włącza vTPM i wykonuje zaświadczenie przez pomiar całego łańcucha rozruchu maszyny wirtualnej.

Uwaga

Bezpieczny rozruch wymaga podpisanych modułów ładujących rozruchu, jąder systemu operacyjnego i sterowników. Jeśli po włączeniu bezpiecznego rozruchu węzły nie są uruchamiane, możesz sprawdzić, które składniki rozruchu są odpowiedzialne za błędy bezpiecznego rozruchu na maszynie wirtualnej z systemem Linux platformy Azure. Zobacz weryfikowanie błędów bezpiecznego rozruchu.

W poniższym przykładzie wdrożono pulę węzłów z włączoną funkcją vTPM w klastrze o nazwie myAKSCluster z trzema węzłami:

az aks nodepool add --resource-group myResourceGroup -–cluster-name myAKSCluster --name mynodepool --node-count 3 --enable-vtpm  

W poniższym przykładzie wdrożono pulę węzłów z włączoną funkcją vTPM i bezpieczny rozruch w klastrze o nazwie myAKSCluster z trzema węzłami:

az aks nodepool add --resource-group myResourceGroup --cluster-name myAKSCluster --name mynodepool --node-count 3 --enable-vtpm --enable-secure-boot

Aktualizowanie klastra i włączanie zaufanego uruchamiania

Zaktualizuj pulę węzłów z włączonym zaufanym uruchamianiem za pomocą polecenia az aks nodepool update . Przed uruchomieniem polecenia przejrzyj następujące parametry:

  • --resource-group: wprowadź nazwę istniejącej grupy zasobów hostująca istniejący klaster usługi AKS.
  • --cluster-name: wprowadź unikatową nazwę klastra usługi AKS, taką jak myAKSCluster.
  • --name: wprowadź nazwę puli węzłów, taką jak mynodepool.
  • --enable-secure-boot: umożliwia bezpieczny rozruch w celu uwierzytelnienia, że obraz został podpisany przez zaufanego wydawcę.
  • --enable-vtpm: włącza vTPM i wykonuje zaświadczenie przez pomiar całego łańcucha rozruchu maszyny wirtualnej.

Uwaga

Istniejąca pula węzłów musi używać zaufanego obrazu uruchamiania w celu włączenia jej w istniejącej puli węzłów. W związku z tym w przypadku puli węzłów utworzonych przed zarejestrowaniem TrustedLaunchPreview funkcji nie można zaktualizować ich przy użyciu włączonego zaufanego uruchamiania.

Domyślnie utworzenie puli węzłów z konfiguracją zgodną z protokołem TL i flaga funkcji zarejestrowane wyniki w zaufanym obrazie uruchamiania. Bez określania --enable-vtpm lub --enable-secure-boot parametrów są one domyślnie wyłączone i można je włączyć później za pomocą az aks nodepool update polecenia .

Uwaga

Bezpieczny rozruch wymaga podpisanych modułów ładujących rozruchu, jąder systemu operacyjnego i sterowników. Jeśli po włączeniu bezpiecznego rozruchu węzły nie są uruchamiane, możesz sprawdzić, które składniki rozruchu są odpowiedzialne za błędy bezpiecznego rozruchu na maszynie wirtualnej z systemem Linux platformy Azure. Zobacz weryfikowanie błędów bezpiecznego rozruchu.

Poniższy przykład aktualizuje pulę węzłów mynodepool w grupie myAKSCluster w grupie myResourceGroup i włącza bezpieczny rozruch i protokół vTPM:

az aks nodepool update --cluster-name myCluster --resource-group myResourceGroup --name mynodepool --enable-secure-boot --enable-vtpm 

Przypisywanie zasobników do węzłów z włączonym zaufanym uruchamianiem

Można ograniczyć zasobnik i ograniczyć go do uruchamiania w określonym węźle lub węzłach lub preferencji do węzłów z włączonym zaufanym uruchamianiem. Możesz to kontrolować przy użyciu następującego selektora puli węzłów w manifeście zasobnika.

W przypadku puli węzłów z uruchomioną maszyną wirtualną vTPM zastosuj następujące elementy:

spec:
  nodeSelector:
        kubernetes.azure.com/trusted-launch: true

W przypadku puli węzłów z uruchomionym bezpiecznym rozruchem zastosuj następujące elementy:

spec:
  nodeSelector:
        kubernetes.azure.com/secure-boot: true

Wyłączanie bezpiecznego rozruchu

Aby wyłączyć bezpieczny rozruch w klastrze usługi AKS, uruchom następujące polecenie:

az aks nodepool update --cluster-name myCluster --resource-group myResourceGroup --name mynodepool --disable-secure-boot 

Uwaga

Aktualizacje automatyczne rozpoczynanie ponownego obrazu węzła, a ta operacja może potrwać kilka minut na węzeł.

Wyłączanie maszyny wirtualnej vTPM

Aby wyłączyć maszynę wirtualną vTPM w klastrze usługi AKS, uruchom następujące polecenie:

az aks nodepool update --cluster-name myCluster --resource-group myResourceGroup --name mynodepool --disable-vtpm

Następne kroki

W tym artykule przedstawiono sposób włączania zaufanego uruchamiania. Dowiedz się więcej o zaufanym uruchomieniu.