Aktivieren des Federal Information Process Standards (FIPS) für AKS-Knotenpools (Azure Kubernetes Service)

Der Federal Information Processing Standard (FIPS) 140-2 ist ein Standard der US-Regierung, der Mindestsicherheitsanforderungen für kryptografische Module in IT-Produkten und -Systemen definiert. Mit Azure Kubernetes Service (AKS) können Sie Linux- und Windows-Knotenpools mit aktiviertem FIPS 140-2 erstellen. Bereitstellungen, die in FIPS-fähigen Knotenpools ausgeführt werden, können mithilfe dieser Kryptografiemodule mehr Sicherheit bieten und Sicherheitskontrollen im Rahmen der FedRAMP-Compliance erfüllen. Weitere Informationen zu FIPS 140-2 finden Sie unter Federal Information Processing Standard (FIPS) 140.

Voraussetzungen

  • Version 2.32.0 oder höher der Azure CLI installiert und konfiguriert. Führen Sie az --version aus, um die Version zu ermitteln. Weitere Informationen zum Installieren oder Upgraden der Azure CLI finden Sie unter Installieren der Azure CLI.

Hinweis

AKS Monitoring Addon unterstützt FIPS-fähige Node-Pools mit Ubuntu, Azure Linux und Windows ab Agent Version 3.1.17 (Linux) und Win-3.1.17 (Windows).

Begrenzungen

  • Bei FIPS-fähigen Knotenpools gelten die folgenden Einschränkungen:
    • FIPS-fähige Knotenpools erfordern Kubernetes, Version 1.19 und höher.
    • Zur Aktualisierung der zugrunde liegenden Pakete oder Module, die für FIPS verwendet werden, müssen Sie ein Knotenimageupgrade verwenden.
    • Containerimages auf den FIPS-Knoten wurden nicht auf FIPS-Konformität bewertet.
    • Die Bereitstellung einer CIFS-Freigabe schlägt fehl, da FIPS einige Authentifizierungsmodule deaktiviert. Informationen zum Umgehen dieses Problems finden Sie unter Fehler beim Einbinden einer Dateifreigabe in einem FIPS-fähigen Knotenpool.

Wichtig

Das FIPS-fähige Linux-Image ist ein anderes als das Linux-Standardimage, das bei Linux-basierten Knotenpools verwendet wird. Zur Aktivierung von FIPS für einen Knotenpool müssen Sie einen neuen Linux-basierten Knotenpool erstellen. Sie können FIPS nicht für vorhandene Knotenpools aktivieren.

FIPS-fähige Knotenimages haben möglicherweise andere Versionsnummern, z. B. die Kernelversion, als nicht-FIPS-fähige Images. Der Updatezyklus kann sich für FIPS-fähige Knotenpools und Knotenimages von nicht-FIPS-fähigen Knotenpools und -images unterscheiden.

Erstellen eines FIPS-fähigen Linux-Knotenpools

  1. Erstellen Sie mithilfe des Befehls „az aks nodepool add“ mit dem --enable-fips-image-Parameter einen FIPS-fähigen Linux-Knotenpool.

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

    Hinweis

    Sie können auch beim Erstellen eines Clusters den --enable-fips-imageParameter mit dem Befehl „az aks create“ verwenden, um FIPS im Standardknotenpool zu aktivieren. Wenn Sie Knotenpools zu einem auf diese Weise erstellten Cluster hinzufügen, müssen Sie zum Erstellen eines FIPS-fähigen Knotenpools weiterhin den Parameter --enable-fips-image verwenden.

  2. Vergewissern Sie sich, dass Ihr Knotenpool FIPS-fähig ist, indem Sie den Befehl „az aks show“ und die Abfrage für den Wert enableFIPS in agentPoolProfiles verwenden.

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

    Die folgende Beispielausgabe zeigt, dass der Knotenpool fipsnp FIPS-fähig ist:

    Name       enableFips
    ---------  ------------
    fipsnp     True
    nodepool1  False  
    
  3. Listen Sie die Knoten mithilfe des Befehls „kubectl get nodes“ auf.

    kubectl get nodes
    

    Die folgende Beispielausgabe führt alle Knoten im Cluster auf. Die Knoten, deren Namen mit aks-fipsnp anfangen, sind Teil des FIPS-fähigen Knotenpools.

    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. Führen Sie mithilfe des Befehls „kubectl debug“ eine Bereitstellung bei einer interaktiven Sitzung auf einem dieser Knoten im FIPS-fähigen Knotenpool.

    kubectl debug node/aks-fipsnp-12345678-vmss000000 -it --image=mcr.microsoft.com/dotnet/runtime-deps:6.0
    
  5. Überprüfen Sie anhand der Ausgabe der interaktiven Sitzung, ob die FIPS-Kryptografiebibliotheken aktiviert wurden. Ihre Ausgabe sollte in etwa dem folgendem Beispiel entsprechen:

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

FIPS-fähige Knotenpools haben auch die Bezeichnung kubernetes.azure.com/fips_enabled=true, die von Bereitstellungen für diese Knotenpools verwendet werden können.

Erstellen eines FIPS-fähigen Windows-Knotenpools

  1. Erstellen Sie mithilfe des Befehls „az aks nodepool add“ mit dem --enable-fips-image-Parameter einen FIPS-fähigen Windows-Knotenpool. Im Gegensatz zu Linux-basierten Knotenpools teilen Windows-Knotenpools denselben Imagesatz.

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name fipsnp \
        --enable-fips-image \
        --os-type Windows
    
  2. Vergewissern Sie sich, dass Ihr Knotenpool FIPS-fähig ist, indem Sie den Befehl „az aks show“ und die Abfrage für den Wert enableFIPS in agentPoolProfiles verwenden.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
        -o table
    
  3. Überprüfen Sie, ob Windows-Knotenpools Zugriff auf die FIPS-Verschlüsselungsbibliotheken haben, indem Sie eine RDP-Verbindung mit einem Windows-Knoten in einem FIPS-fähigen Knotenpool erstellen und überprüfen dann die Registrierung überprüfen. Geben Sie über die Ausführen-Anwendung entsprechend regedit ein.

  4. Suchen Sie in der Registrierung nach HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy.

  5. Wenn Enabled auf 1 festgelegt ist, ist FIPS aktiviert.

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

FIPS-fähige Knotenpools haben auch die Bezeichnung kubernetes.azure.com/fips_enabled=true, die von Bereitstellungen für diese Knotenpools verwendet werden können.

Nächste Schritte

Weitere Informationen zur AKS-Sicherheit finden Sie unter Bewährte Methoden für Clustersicherheit und Upgrades in Azure Kubernetes Service (AKS).