Zaufane uruchamianie dla usługi Azure Kubernetes Service (AKS)
Zaufane uruchamianie 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ć polecenieaz upgrade
, aby uaktualnić wersję. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure. - Bezpieczny rozruch wymaga podpisanych modułów ładujących rozruchu, jąder systemu operacyjnego i sterowników.
Ograniczenia
- Usługa AKS obsługuje zaufane uruchamianie w wersji 1.25.2 lub nowszej.
- Zaufane uruchamianie obsługuje tylko maszyny wirtualne generacji 2 platformy Azure.
- Węzły klastra z systemem operacyjnym Windows Server nie są obsługiwane.
- Zaufane uruchamianie nie obsługuje pul węzłów z włączonym standardem FIPS ani opartym na architekturze Arm64.
- Zaufane uruchamianie nie obsługuje węzła wirtualnego.
- 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, zobacz Pomiń 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.
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 \ --generate-ssh-keys
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
Domyślnie utworzenie puli węzłów z konfiguracją zgodną z protokołem TL powoduje utworzenie zaufanego obrazu 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 . Istniejąca pula węzłów musi używać zaufanego obrazu uruchamiania w celu włączenia jej w istniejącej puli węzłów.
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 automatycznie uruchamiają obraz węzła i 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.
Azure Kubernetes Service