Udostępnij przez


Włączanie standardu FIPS (Federal Information Process Standard) dla pul węzłów usługi Azure Kubernetes Service (AKS)

Federal Information Processing Standard (FIPS) 140-2 to amerykański standard rządowy, który definiuje minimalne wymagania dotyczące zabezpieczeń modułów kryptograficznych w produktach i systemach technologii informatycznych. Usługa Azure Kubernetes Service (AKS) umożliwia tworzenie pul węzłów Linux i Windows z włączonym FIPS 140-2. Wdrożenia działające w pulach węzłów z obsługą standardu FIPS mogą używać tych modułów kryptograficznych do zapewnienia zwiększonych zabezpieczeń i ułatwienia spełnienia wymagań mechanizmów kontroli zabezpieczeń w ramach zgodności z protokołem FedRAMP. Aby uzyskać więcej informacji na temat standardu FIPS 140-2, zobacz Federal Information Processing Standard (FIPS) 140.

Ostrożność

W tym artykule znajdują się odwołania do funkcjonalności, która może używać wersji systemu operacyjnego Ubuntu, które są przestarzałe i nie będą już wspierane w ramach usługi AKS.

  • Od 17 czerwca 2025 r. usługa AKS nie będzie już obsługiwać systemu Ubuntu 18.04. Istniejące obrazy węzłów zostaną usunięte, a usługa AKS nie będzie już zapewniać aktualizacji zabezpieczeń. Nie będzie już można skalować zasobów węzłów. Uaktualnij pule węzłów do obsługiwanej wersji rozwiązania Kubernetes, aby przeprowadzić migrację do obsługiwanej wersji systemu Ubuntu.
  • Od 17 marca 2027 r. usługa AKS nie będzie już obsługiwać systemu Ubuntu 20.04. Istniejące obrazy węzłów zostaną usunięte, a usługa AKS nie będzie już zapewniać aktualizacji zabezpieczeń. Nie będzie już można skalować zasobów węzłów. Uaktualnij pule węzłów do wersji Kubernetes 1.34 lub nowszej, aby przeprowadzić migrację do obsługiwanej wersji systemu Ubuntu. Aby uzyskać więcej informacji na temat tego wycofania, zobacz AKS GitHub Issues

Ważne

Od 30 listopada 2025 r. usługa Azure Kubernetes Service (AKS) nie obsługuje już ani nie zapewnia aktualizacji zabezpieczeń dla systemu Azure Linux 2.0. Obraz węzła systemu Linux 2.0 platformy Azure został zamrożony w wersji 202512.06.0. Od 31 marca 2026 r. obrazy węzłów zostaną usunięte i nie będzie można skalować pul węzłów. Przeprowadź migrację do obsługiwanej wersji systemu Linux platformy Azure, uaktualniając pule węzłów do obsługiwanej wersji rozwiązania Kubernetes lub migrując do systemu osSku AzureLinux3. Aby uzyskać więcej informacji, zobacz [Wycofywanie] pul węzłów Azure Linux 2.0 w usłudze AKS.

Wymagania wstępne

Interfejs wiersza polecenia platformy Azure w wersji 2.32.0 lub nowszej został zainstalowany i skonfigurowany. Aby dowiedzieć się, jaka wersja jest używana, uruchom polecenie az --version. Aby uzyskać więcej informacji na temat instalowania lub uaktualniania interfejsu wiersza polecenia platformy Azure, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.

Uwaga

Dodatek monitorowania AKS obsługuje pule węzłów z włączoną obsługą FIPS, działające na Ubuntu, Azure Linux i Windows, począwszy od wersji agenta 3.1.17 (Linux) i Win-3.1.17 (Windows).

Ograniczenia

Ważne

Obraz systemu Linux z obsługą standardu FIPS jest innym obrazem niż domyślny obraz systemu Linux używany dla pul węzłów opartych na systemie Linux.

Obrazy węzłów z obsługą standardu FIPS mogą mieć różne numery wersji, takie jak wersja jądra, niż obrazy bez obsługi standardu FIPS. Cykl aktualizacji pul węzłów obsługujących FIPS i obrazów węzłów może się różnić od pul węzłów i obrazów, które nie są obsługiwane w FIPS.

Obsługiwane wersje systemu operacyjnego

Pule węzłów z obsługą protokołu FIPS można tworzyć we wszystkich obsługiwanych typach systemu operacyjnego (Linux i Windows). Jednak nie wszystkie wersje systemu operacyjnego obsługują pule węzłów z obsługą protokołu FIPS. Po wydaniu nowej wersji systemu operacyjnego zazwyczaj występuje okres oczekiwania przed jego zgodnością ze standardem FIPS.

Ta tabela zawiera obsługiwane wersje systemu operacyjnego:

Typ systemu operacyjnego SKU systemu operacyjnego Zgodność ze standardem FIPS
Linux Ubuntu Obsługiwane
Linux Azure Linux Obsługiwane
Windows Windows Server 2019 Obsługiwane
Windows Windows Server 2022 Obsługiwane

Po zażądaniu wersji Ubuntu z włączoną obsługą FIPS, jeśli domyślna wersja Ubuntu nie obsługuje FIPS, usługa AKS domyślnie wybiera najnowszą wersję Ubuntu obsługującą standard FIPS. Na przykład system Ubuntu 22.04 jest domyślny dla pul węzłów systemu Linux. Ponieważ wersja 22.04 nie obsługuje obecnie standardu FIPS, usługa AKS domyślnie używa systemu Ubuntu 20.04 dla pul węzłów z obsługą protokołu FIPS systemu Linux.

Uwaga

Wcześniej można było użyć interfejsu API GetOSOptions, aby określić, czy dany system operacyjny obsługuje standard FIPS. Interfejs API GetOSOptions jest teraz przestarzały i nie będzie już uwzględniany w nowych wersjach interfejsu API usługi AKS, począwszy od wersji 2024-05-01.

Tworzenie puli węzłów systemu Linux z obsługą protokołu FIPS

  1. Utwórz pulę węzłów systemu Linux z obsługą protokołu FIPS przy użyciu polecenia az aks nodepool add z parametrem --enable-fips-image .

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name fipsnp \
        --enable-fips-image
    

    Uwaga

    Możesz również użyć parametru --enable-fips-image z poleceniem az aks create podczas tworzenia klastra, aby włączyć protokół FIPS w domyślnej puli węzłów. Podczas dodawania pul węzłów do klastra utworzonego w ten sposób nadal należy użyć parametru --enable-fips-image podczas dodawania pul węzłów w celu utworzenia puli węzłów z obsługą protokołu FIPS.

  2. Sprawdź, czy pula węzłów ma włączoną obsługę FIPS, używając polecenia az aks show i wykonaj zapytanie dotyczące wartości enableFIPS w agentPoolProfiles.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
        -o table
    

    Następujące przykładowe dane wyjściowe pokazują, że pula węzłów fipsnp jest włączona w trybie FIPS:

    Name       enableFips
    ---------  ------------
    fipsnp     True
    nodepool1  False  
    
  3. Wyświetl listę węzłów przy użyciu kubectl get nodes polecenia .

    kubectl get nodes
    

    W poniższych przykładowych danych wyjściowych przedstawiono listę węzłów w klastrze. Węzły, które zaczynają się od aks-fipsnp, są częścią puli węzłów z obsługą protokołu FIPS.

    NAME                                STATUS   ROLES   AGE     VERSION
    aks-fipsnp-12345678-vmss000000      Ready    agent   6m4s    v1.19.9
    aks-fipsnp-12345678-vmss000001      Ready    agent   5m21s   v1.19.9
    aks-fipsnp-12345678-vmss000002      Ready    agent   6m8s    v1.19.9
    aks-nodepool1-12345678-vmss000000   Ready    agent   34m     v1.19.9
    
  4. Uruchom wdrożenie z interaktywną sesją na jednym z węzłów w puli węzłów z włączoną obsługą protokołu FIPS, używając polecenia kubectl debug.

    kubectl debug node/aks-fipsnp-12345678-vmss000000 -it --image=mcr.microsoft.com/dotnet/runtime-deps:6.0
    
  5. Z danych wyjściowych sesji interakcyjnej sprawdź, czy biblioteki kryptograficzne FIPS są włączone. Dane wyjściowe powinny wyglądać podobnie do następujących przykładowych danych wyjściowych:

    root@aks-fipsnp-12345678-vmss000000:/# cat /proc/sys/crypto/fips_enabled
    1
    

    Pule węzłów z obsługą protokołu FIPS mają również etykietę kubernetes.azure.com/fips_enabled=true , której wdrożenia mogą używać do określania lokalizacji docelowej tych pul węzłów.

Tworzenie puli węzłów systemu Windows z obsługą protokołu FIPS

  1. Utwórz pulę węzłów systemu Windows z obsługą protokołu FIPS przy użyciu polecenia az aks nodepool add z parametrem --enable-fips-image . W przeciwieństwie do pul węzłów opartych na systemie Linux, pule węzłów systemu Windows współdzielą ten sam zestaw obrazów.

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name fipsnp \
        --enable-fips-image \
        --os-type Windows
    
  2. Sprawdź, czy pula węzłów ma włączoną obsługę FIPS, używając polecenia az aks show i wykonaj zapytanie dotyczące wartości enableFIPS w agentPoolProfiles.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
        -o table
    
  3. Sprawdź, czy pule węzłów systemu Windows mają dostęp do bibliotek kryptograficznych FIPS, tworząc połączenie RDP z węzłem systemu Windows w puli węzłów z obsługą protokołu FIPS i sprawdzając rejestr. W aplikacji Uruchom wprowadź regedit.

  4. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy Wyszukaj w rejestrze.

  5. Jeśli Enabled ustawiono wartość 1, zostanie włączona funkcja FIPS.

    Zrzut ekranu przedstawia obraz edytora rejestru w zasadach algorytmów FIPS i jest on włączony.

    Pule węzłów z obsługą protokołu FIPS mają również etykietę kubernetes.azure.com/fips_enabled=true , której wdrożenia mogą używać do określania lokalizacji docelowej tych pul węzłów.

Aktualizowanie istniejącej puli węzłów w celu włączenia lub wyłączenia protokołu FIPS

Istniejące pule węzłów systemu Linux można zaktualizować, aby włączyć lub wyłączyć protokół FIPS. Jeśli planujesz migrację pul węzłów z innych niż FIPS do fiPS, najpierw sprawdź, czy aplikacja działa prawidłowo w środowisku testowym przed migracją do środowiska produkcyjnego. Weryfikowanie aplikacji w środowisku testowym powinno zapobiegać problemom spowodowanym blokowaniem przez jądro FIPS słabych algorytmów szyfrowania, takich jak algorytm MD4, który nie jest zgodny ze standardem FIPS.

Uwaga

Podczas aktualizowania istniejącej puli węzłów Linux w celu włączenia lub wyłączenia FIPS aktualizacja puli węzłów jest przenoszona między obrazem FIPS a obrazem niefips. Ta aktualizacja puli węzłów wyzwala odtworzenie obrazu w celu ukończenia aktualizacji. Może to spowodować, że aktualizacja puli węzłów potrwa kilka minut.

Wymagania wstępne

Interfejs wiersza polecenia platformy Azure w wersji 2.64.0 lub nowszej. Aby dowiedzieć się, jaka wersja jest używana, uruchom polecenie az --version. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.

Włącz FIPS na istniejącej puli węzłów

Istniejące pule węzłów systemu Linux można zaktualizować w celu włączenia protokołu FIPS. Po zaktualizowaniu istniejącej puli węzłów obraz węzła zmieni się z bieżącego obrazu na zalecany obraz FIPS tej samej jednostki SKU systemu operacyjnego.

  1. Zaktualizuj pulę węzłów przy użyciu polecenia az aks nodepool update za pomocą parametru --enable-fips-image .

    az aks nodepool update \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name np \
        --enable-fips-image
    

    To polecenie natychmiast inicjuje ponowne obrazowanie puli węzłów w celu wdrożenia systemu operacyjnego zgodnego z standardem FIPS. To ponowne obrazowanie odbywa się podczas aktualizacji puli węzłów. Nie są wymagane żadne dodatkowe kroki.

  2. Sprawdź, czy pula węzłów jest włączona za pomocą polecenia az aks show i wykonaj zapytanie dotyczące wartości enableFIPS w agentPoolProfiles.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
        -o table
    

    Następujące przykładowe dane wyjściowe pokazują, że pula węzłów np jest włączona w trybie FIPS:

    Name       enableFips
    ---------  ------------
    np         True
    nodepool1  False  
    
  3. Wyświetl listę węzłów przy użyciu kubectl get nodes polecenia .

    kubectl get nodes
    

    W poniższych przykładowych danych wyjściowych przedstawiono listę węzłów w klastrze. Węzły, które zaczynają się od aks-np, są częścią puli węzłów z obsługą protokołu FIPS.

    NAME                                STATUS   ROLES   AGE     VERSION
    aks-np-12345678-vmss000000          Ready    agent   6m4s    v1.19.9
    aks-np-12345678-vmss000001          Ready    agent   5m21s   v1.19.9
    aks-np-12345678-vmss000002          Ready    agent   6m8s    v1.19.9
    aks-nodepool1-12345678-vmss000000   Ready    agent   34m     v1.19.9
    
  4. Uruchom wdrożenie z interaktywną sesją na jednym z węzłów w puli węzłów z włączoną obsługą protokołu FIPS, używając polecenia kubectl debug.

    kubectl debug node/aks-np-12345678-vmss000000 -it --image=mcr.microsoft.com/dotnet/runtime-deps:6.0
    
  5. Z danych wyjściowych sesji interakcyjnej sprawdź, czy biblioteki kryptograficzne FIPS są włączone. Dane wyjściowe powinny wyglądać podobnie do następujących przykładowych danych wyjściowych:

    root@aks-np-12345678-vmss000000:/# cat /proc/sys/crypto/fips_enabled
    1
    

    Pule węzłów z obsługą protokołu FIPS mają również etykietę kubernetes.azure.com/fips_enabled=true , której wdrożenia mogą używać do określania lokalizacji docelowej tych pul węzłów.

Wyłącz FIPS w istniejącej puli węzłów

Istniejące pule węzłów systemu Linux można zaktualizować, aby wyłączyć protokół FIPS. Podczas aktualizowania istniejącej puli węzłów obraz węzła zmienia się z bieżącego obrazu FIPS na zalecany obraz inny niż FIPS tej samej jednostki SKU systemu operacyjnego. Zmiana obrazu węzła zostanie wykonana po ponownym obrazie.

  1. Zaktualizuj pulę węzłów systemu Linux przy użyciu polecenia az aks nodepool update za pomocą parametru --disable-fips-image .

    az aks nodepool update \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name np \
        --disable-fips-image
    

    To polecenie natychmiast inicjuje ponowne obrazowanie puli węzłów w celu wdrożenia systemu operacyjnego zgodnego z standardem FIPS. To ponowne obrazowanie odbywa się podczas aktualizacji puli węzłów. Nie są wymagane żadne dodatkowe kroki.

  2. Sprawdź, czy pula węzłów nie ma włączonego FIPS, używając polecenia az aks show i zapytaj o wartość enableFIPS w agentPoolProfiles.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
        -o table
    

    Następujące przykładowe dane wyjściowe pokazują, że pula węzłów np nie jest włączona w trybie FIPS:

    Name       enableFips
    ---------  ------------
    np         False
    nodepool1  False  
    

Wiadomość dnia

Przekaż flagę --message-of-the-day z lokalizacją pliku, aby zastąpić komunikat dnia w węzłach systemu Linux podczas tworzenia klastra lub tworzenia puli węzłów.

Utwórz klaster z komunikatem dnia przy użyciu polecenia az aks create .

az aks create --cluster-name myAKSCluster --resource-group myResourceGroup --message-of-the-day ./newMOTD.txt

Dodaj pulę węzłów z komunikatem dnia przy użyciu polecenia az aks nodepool add.

az aks nodepool add --name mynodepool1 --cluster-name myAKSCluster --resource-group myResourceGroup --message-of-the-day ./newMOTD.txt

Następne kroki

Aby dowiedzieć się więcej na temat zabezpieczeń usługi AKS, zobacz Najlepsze rozwiązania dotyczące zabezpieczeń i uaktualnień klastra w usłudze Azure Kubernetes Service (AKS).