Włączanie standardu FIPS (Federal Information Process Standard) dla pul węzłów 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 informatycznych. Azure Kubernetes Service (AKS) umożliwia tworzenie pul węzłów systemów Linux i Windows z włączonym standardem FIPS 140-2. Wdrożenia uruchomione w pulach węzłów z obsługą standardu FIPS mogą używać tych modułów kryptograficznych w celu zapewnienia zwiększonego bezpieczeństwa i zapewnienia zgodności z zabezpieczeniami 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.

Ograniczenia

  • Pule węzłów z obsługą standardu FIPS mają następujące ograniczenia:
    • Pule węzłów z obsługą standardu FIPS wymagają platformy Kubernetes w wersji 1.19 lub nowszej.
    • Aby zaktualizować bazowe pakiety lub moduły używane na potrzeby standardu 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.

Ważne

Obraz systemu Linux z obsługą standardu FIPS jest innym obrazem niż domyślny obraz systemu Linux używany w pulach węzłów opartych na systemie Linux. Aby włączyć standard FIPS w puli węzłów, należy utworzyć nową pulę węzłów opartą na systemie Linux. Nie można włączyć standardu FIPS w istniejących pulach węzłów.

Obrazy węzłów z obsługą standardu 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 ze standardem FIPS.

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

  1. Utwórz pulę węzłów systemu Linux z obsługą standardu az aks nodepool add FIPS przy użyciu 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ć standard 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 az aks show FIPS, używając polecenia i wykonaj zapytanie dotyczące wartości enableFIPS w elemecie 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
    

    Poniższe przykładowe dane wyjściowe pokazują 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ą protokołu kubectl debug FIPS za pomocą 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ą standardu FIPS mają również etykietę kubernetes.azure.com/fips_enabled=true , której wdrożenia mogą użyć do kierowania tych pul węzłów.

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

  1. Utwórz pulę węzłów systemu Windows z obsługą standardu az aks nodepool add FIPS przy użyciu 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 az aks show FIPS, używając polecenia i wykonaj zapytanie dotyczące wartości enableFIPS w elemecie 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 włączoną standardem FIPS i sprawdzając rejestr. W polu Uruchom aplikację wprowadź wartość regedit.

  4. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy Poszukaj 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ą standardu FIPS mają również etykietę kubernetes.azure.com/fips_enabled=true , której wdrożenia mogą użyć do kierowania 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).