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 systemu Linux i Windows z włączonym programem 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.

Wymagania wstępne

  • Interfejs wiersza polecenia platformy Azure w wersji 2.32.0 lub nowszej został zainstalowany i skonfigurowany. Uruchom polecenie az --version, aby dowiedzieć się, jaka wersja jest używana. 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 usługi AKS obsługuje pule węzłów z obsługą standardu FIPS z systemami Ubuntu, Azure Linux i Windows, począwszy od agenta w wersji 3.1.17 (Linux) i Win-3.1.17 (Windows).

Ograniczenia

  • Pule węzłów z obsługą protokołu FIPS mają następujące ograniczenia:
    • Pule węzłów z obsługą protokołu FIPS wymagają platformy Kubernetes w wersji 1.19 lub nowszej.
    • Aby zaktualizować bazowe pakiety lub moduły używane dla programu FIPS, należy użyć uaktualnienia obrazu węzła.
    • Obrazy kontenerów w węzłach FIPS nie zostały ocenione pod kątem zgodności ze standardem FIPS.
    • Instalowanie udziału CIFS kończy się niepowodzeniem, ponieważ program FIPS wyłącza niektóre moduły uwierzytelniania. Aby obejść ten problem, zobacz Błędy podczas instalowania udziału plików w puli węzłów z obsługą protokołu FIPS.

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. Aby włączyć program FIPS w puli węzłów, należy utworzyć nową pulę węzłów opartą na systemie Linux. Nie można włączyć protokołu FIPS w istniejących pulach węzłów.

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

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 az aks nodepool add polecenia 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 jest włączona w trybie FIPS przy użyciu polecenia i wykonaj zapytanie dotyczące wartości enableFIPS w elemecie az aks show 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 rozpoczynające się od aks-fipsnp programu 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 interakcyjną sesją na jednym z węzłów w puli węzłów z obsługą kubectl debug protokołu FIPS przy użyciu polecenia .

    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 z obsługą protokołu FIPS przy użyciu az aks nodepool add polecenia z parametrem --enable-fips-image . W przeciwieństwie do pul węzłów opartych na systemie Linux pule węzłów systemu Windows współużytkuje 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 jest włączona w trybie FIPS przy użyciu polecenia i wykonaj zapytanie dotyczące wartości enableFIPS w elemecie az aks show 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 obszarze Uruchom aplikację wprowadź wartość 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.

Screenshot shows a picture of the registry editor to the FIPS Algorithm Policy, and it being enabled.

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.

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).