Freigeben über


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.

Vorsicht

Dieser Artikel enthält Verweise auf ein Feature, das möglicherweise Versionen des Betriebssystems Ubuntu verwendet, die für AKS als veraltet eingestuft sind.

  • Ab dem 17. Juni 2025 unterstützt AKS Ubuntu 18.04 nicht mehr. Vorhandene Knotenimages werden gelöscht, und AKS stellt keine Sicherheitsupdates mehr bereit. Sie können Ihre Knotenpools nicht mehr skalieren. Aktualisieren Sie Ihre Knotenpools auf eine unterstützte Kubernetes-Version, um zu einer unterstützten Ubuntu-Version zu migrieren.
  • Ab dem 17. März 2027 unterstützt AKS Ubuntu 20.04 nicht mehr. Vorhandene Knotenimages werden gelöscht, und AKS stellt keine Sicherheitsupdates mehr bereit. Sie können Ihre Knotenpools nicht mehr skalieren. Aktualisieren Sie Ihre Knotenpools auf Kubernetes, Version 1.34+, um zu einer unterstützten Ubuntu-Version zu migrieren. Weitere Informationen zu dieser Pensionierung finden Sie unter AKS GitHub-Issues

Wichtig

Ab dem 30. November 2025 unterstützt Azure Kubernetes Service (AKS) keine Sicherheitsupdates für Azure Linux 2.0 mehr oder stellt diese bereit. Das Azure Linux 2.0-Knotenimage ist eingefroren bei der Version 202512.06.0. Ab dem 31. März 2026 werden Knotenimages entfernt, und Sie können Ihre Knotenpools nicht skalieren. Migrieren Sie zu einer unterstützten Azure Linux-Version, indem Sie Ihre Knotenpools auf eine unterstützte Kubernetes-Version aktualisieren oder zu osSku AzureLinux3 migrieren. Weitere Informationen finden Sie unter [Stilllegung] von Azure Linux 2.0-Knotenpools in AKS.

Voraussetzungen

Version 2.32.0 oder höher der Azure CLI installiert und konfiguriert. Führen Sie az --version aus, um die Version zu finden. 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).

Einschränkungen

  • Bei FIPS-fähigen Knotenpools gelten die folgenden Einschränkungen:

Wichtig

Das FIPS-fähige Linux-Image ist ein anderes als das Linux-Standardimage, das bei Linux-basierten Knotenpools verwendet wird.

FIPS-fähige Knotenimages können unterschiedliche Versionsnummern aufweisen, z. B. Kernelversion, als Bilder, die nicht FIPS-aktiviert sind. Der Updatezyklus für FIPS-fähige Knotenpools und Knotenimages kann sich von Knotenpools und Images unterscheiden, die nicht FIPS-aktiviert sind.

Unterstützte Betriebssystemversionen

Sie können FIPS-fähige Knotenpools für alle unterstützten Betriebssystemtypen (Linux und Windows) erstellen. Nicht alle Betriebssystemversionen unterstützen jedoch FIPS-fähige Knotenpools. Nachdem eine neue Betriebssystemversion veröffentlicht wurde, gibt es in der Regel eine Wartezeit, bevor sie FIPS-kompatibel ist.

Diese Tabelle enthält die unterstützten Betriebssystemversionen:

Betriebssystemtyp Betriebssystem-SKU FIPS-Compliance
Linux Ubuntu Unterstützt
Linux Azure Linux Unterstützt
Fenster Windows Server 2019 Unterstützt
Fenster Windows Server 2022 Unterstützt

Wenn ein FIPS-aktiviertes Ubuntu angefordert wird und die Standardversion von Ubuntu FIPS nicht unterstützt, wechselt AKS standardmäßig zur neuesten FIPS-unterstützenden Version von Ubuntu. Beispielsweise ist Ubuntu 22.04 standardmäßig für Linux-Knotenpools. Da 22.04 derzeit FIPS nicht unterstützt, wird AKS standardmäßig auf Ubuntu 20.04 für FIPS-fähige Linux-Knotenpools festgelegt.

Hinweis

Zuvor konnten Sie die GetOSOptions-API verwenden, um zu bestimmen, ob ein bestimmtes Betriebssystem FIPS unterstützt. Die GetOSOptions-API ist jetzt veraltet und wird ab 2024-05-01 nicht mehr in neuen AKS-API-Versionen enthalten sein.

Erstellen eines FIPS-fähigen Linux-Knotenpools

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

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

    Hinweis

    Sie können den --enable-fips-image Parameter auch mit dem Az aks create-Befehl verwenden, wenn Sie einen Cluster erstellen, 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. Überprüfen Sie, ob Ihr Knotenpool FIPS-fähig ist, indem Sie den Befehl az aks show verwenden und den Wert enableFIPS in agentPoolProfiles abfragen.

    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 einen FIPS-fähigen Windows-Knotenpool mithilfe des Befehls "az aks nodepool add" mit dem Parameter --enable-fips-image. 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. Überprüfen Sie, ob Ihr Knotenpool FIPS-fähig ist, indem Sie den Befehl az aks show verwenden und den Wert enableFIPS in agentPoolProfiles abfragen.

    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 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 des Registrierungs-Editors für die FIPS-Algorithmusrichtlinie und deren Aktivierung

    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.

Updaten eines vorhandenen Knotenpools zum Aktivieren oder Deaktivieren des FIPS (Vorschau)

Vorhandene Knotenpools können upgedatet werden, um den FIPS zu aktivieren oder zu deaktivieren. Wenn Sie planen, Ihre Knotenpools von Nicht-FIPS zu FIPS zu migrieren, validieren Sie zunächst, ob Ihre Anwendung in einer Testumgebung ordnungsgemäß funktioniert; bevor Sie sie in eine Produktionsumgebung migrieren. Beim Validieren Ihrer Anwendung in einer Testumgebung sollten Probleme vermieden werden, die durch den FIPS-Kernel verursacht werden, der einige schwache Chiffrier- oder Verschlüsselungsalgorithmen blockiert, z. B. einen MD4-Algorithmus, der nicht FIPS-kompatibel ist.

Hinweis

Beim Aktualisieren eines vorhandenen Linux-Knotenpools zum Aktivieren oder Deaktivieren von FIPS wechselt das Knotenpoolupdate zwischen dem fips- und dem non-fips-Image. Durch dieses Knotenpool-Update wird eine Neuabbildung ausgelöst, um das Update abzuschließen. Dies kann dazu führen, dass die Aktualisierung des Knotenpools einige Minuten dauert.

Voraussetzungen

Azure CLI, Version 2.64.0 oder höher. Führen Sie az --version aus, um die Version zu finden. Informationen zum Durchführen einer Installation oder eines Upgrades finden Sie bei Bedarf unter Installieren der Azure CLI.

Aktivieren des FIPS in einem vorhandenen Knotenpool

Vorhandene Linux-Knotenpools können upgedatet werden, um den FIPS zu deaktivieren. Wenn Sie einen vorhandenen Knotenpool aktualisieren, ändert sich das Knotenimage vom aktuellen Image in das empfohlene FIPS-Image derselben Betriebssystem-SKU.

  1. Aktualisieren Sie einen Knotenpool mithilfe des az aks nodepool update-Befehls mit dem --enable-fips-image Parameter.

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

    Mit diesem Befehl wird eine Neuimage des Knotenpools sofort ausgelöst, um das FIPS-kompatible Betriebssystem bereitzustellen. Dieser Reimagingvorgang wird während des Knotenpoolupdates durchgeführt. Es sind keine zusätzlichen Schritte erforderlich.

  2. Stellen Sie sicher, dass Ihr Knotenpool FIPS-fähig ist, indem Sie den Befehl az aks show verwenden und den Wert enableFIPS in agentPoolProfiles abfragen.

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

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

    Name       enableFips
    ---------  ------------
    np         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-np anfangen, sind Teil des FIPS-fähigen Knotenpools.

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

Deaktivieren des FIPS in einem vorhandenen Knotenpool

Vorhandene Linux-Knotenpools können upgedatet werden, um den FIPS zu deaktivieren. Beim Aktualisieren eines vorhandenen Knotenpools ändert sich das Knotenimage vom aktuellen FIPS-Image in das empfohlene Nicht-FIPS-Image derselben Betriebssystem-SKU. Die Knotenimageänderung tritt nach einem Reimagingvorgang auf.

  1. Aktualisieren Sie einen Linux-Knotenpool mithilfe des Befehls "az aks nodepool update" mit dem --disable-fips-image Parameter.

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

    Mit diesem Befehl wird eine Neuimage des Knotenpools sofort ausgelöst, um das FIPS-kompatible Betriebssystem bereitzustellen. Dieser Reimagingvorgang wird während des Knotenpoolupdates durchgeführt. Es sind keine zusätzlichen Schritte erforderlich.

  2. Stellen Sie sicher, dass Ihr Knotenpool nicht FIPS-fähig ist, indem Sie den Befehl az aks show verwenden und nach dem Wert enableFIPS in agentPoolProfiles abfragen.

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

    Die folgende Beispielausgabe zeigt, dass der np-Knotenpool nicht FIPS-aktiviert ist.

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

Botschaft des Tages

Übergeben Sie das --message-of-the-day-Flag mit dem Speicherort der Datei, um bei der Cluster- oder Knotenpoolerstellung die Nachricht des Tages auf Linux-Knoten zu ersetzen.

Erstellen Sie einen Cluster mit einer Meldung des Tages mithilfe des Befehls "Az aks create ".

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

Fügen Sie einen Knotenpool mit einer Tagesnachricht hinzu, indem Sie den Befehl "az aks nodepool add" verwenden.

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

Nächste Schritte

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