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.
Unterstützte Betriebssystemversionen
Sie können FIPS-fähige Knotenpools für alle unterstützten Betriebssystemtypen, Linux und Windows erstellen. Allerdings unterstützen nicht alle Betriebssystemversionen FIPS-fähige Knotenpools. Nachdem eine neue Betriebssystemversion veröffentlicht wurde, gibt es in der Regel eine Wartezeit, bevor sie FIPS-kompatibel ist.
Die folgende Tabelle enthält die unterstützten Betriebssystemversionen:
Betriebssystemtyp | Betriebssystem-SKU | FIPS-Compliance |
---|---|---|
Linux | Ubuntu | Unterstützt |
Linux | Azure Linux | Unterstützt |
Windows | Windows Server 2019 | Unterstützt |
Windows | Windows Server 2022 | Unterstützt |
Wenn FIPS-aktiviertes Ubuntu angefordert wird, wenn die standardmäßige Ubuntu-Version FIPS nicht unterstützt, verwendet AKS standardmäßig die neueste FIPS-unterstützte Version von Ubuntu. Beispielsweise ist Ubuntu 22.04 standardmäßig für Linux-Knotenpools. Da 22.04 derzeit FIPS nicht unterstützt, unterstützt AKS standardmäßig Ubuntu 20.04 für Linux FIPS-fähige Knotenpools.
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
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-image
Parameter 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.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
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
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
Ü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
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
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
Ü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.Suchen Sie in der Registrierung nach
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy
.Wenn
Enabled
auf 1 festgelegt ist, ist FIPS aktiviert.
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).