Federal Information Process Standard (FIPS) inschakelen voor AKS-knooppuntgroepen (Azure Kubernetes Service)
De Federal Information Processing Standard (FIPS) 140-2 is een Amerikaanse overheidsstandaard waarin de minimale veiligheidsvereisten zijn vastgelegd voor cryptografische modules in informatietechnologieproducten en -systemen. Met Azure Kubernetes Service (AKS) kunt u Linux- en Windows-knooppuntgroepen maken waarvoor FIPS 140-2 is ingeschakeld. Implementaties die worden uitgevoerd op FIPS-knooppuntgroepen kunnen deze cryptografische modules gebruiken om betere beveiliging te bieden en om zo te voldoen aan beveiligingscontroles als onderdeel van FedRAMP-naleving. Zie Federal Information Processing Standard (FIPS) 140-2 voor meer informatie over FIPS 140.
Vereisten
- Azure CLI versie 2.32.0 of hoger geïnstalleerd en geconfigureerd. Voer
az --version
uit om de versie te zoeken. Zie Azure CLI installeren voor meer informatie over het installeren of upgraden van de Azure CLI.
Notitie
AKS Monitoring Addon ondersteunt FIPS-knooppuntgroepen met Ubuntu, Azure Linux en Windows vanaf agentversie 3.1.17 (Linux) en Win-3.1.17 (Windows).
Beperkingen
- Knooppuntgroepen met FIPS-functionaliteit hebben de volgende beperkingen:
- Voor FIPS-knooppuntgroepen is Kubernetes versie 1.19 en hoger vereist.
- Als u de onderliggende pakketten of modules wilt bijwerken die worden gebruikt voor FIPS, moet u De upgrade van de knooppuntinstallatiekopie gebruiken.
- Containerinstallatiekopieën op de FIPS-knooppunten zijn niet beoordeeld op FIPS-naleving.
- Het koppelen van een CIFS-share mislukt omdat fips sommige verificatiemodules uitschakelt. Zie Fouten bij het koppelen van een bestandsshare in een knooppuntgroep met FIPS-functionaliteit om dit probleem te omzeilen.
Belangrijk
De linux-installatiekopie met FIPS-functionaliteit is een andere installatiekopie dan de standaardinstallatiekopie van Linux die wordt gebruikt voor linux-knooppuntgroepen.
Knooppuntinstallatiekopieën met FIPS-functionaliteit kunnen verschillende versienummers hebben, zoals kernelversie, dan installatiekopieën die niet zijn ingeschakeld voor FIPS. De updatecyclus voor FIPS-knooppuntgroepen en knooppuntinstallatiekopieën kan verschillen van knooppuntgroepen en installatiekopieën die niet zijn ingeschakeld voor FIPS.
Ondersteunde besturingssysteemversies
U kunt knooppuntgroepen met FIPS-functionaliteit maken op alle ondersteunde typen besturingssystemen, Linux en Windows. Niet alle versies van het besturingssysteem bieden echter ondersteuning voor knooppuntpools met FIPS-functionaliteit. Nadat een nieuwe versie van het besturingssysteem is uitgebracht, is er doorgaans een wachttijd voordat deze compatibel is met FIPS.
De onderstaande tabel bevat de ondersteunde besturingssysteemversies:
Type besturingssysteem | SKU van het besturingssysteem | FIPS-naleving |
---|---|---|
Linux | Ubuntu | Ondersteund |
Linux | Azure Linux | Ondersteund |
Windows | Windows Server 2019 | Ondersteund |
Windows | Windows Server 2022 | Ondersteund |
Bij het aanvragen van FIPS enabled Ubuntu, als de standaardVersie van Ubuntu geen ondersteuning biedt voor FIPS, wordt AKS standaard ingesteld op de meest recente, door FIPS ondersteunde versie van Ubuntu. Ubuntu 22.04 is bijvoorbeeld standaard voor Linux-knooppuntgroepen. Omdat 22.04 momenteel geen ondersteuning biedt voor FIPS, wordt AKS standaard ingesteld op Ubuntu 20.04 voor Linux FIPS-knooppuntpools.
Notitie
Eerder kunt u de GetOSOptions-API gebruiken om te bepalen of een bepaald besturingssysteem FIPS ondersteunt. De GetOSOptions-API is nu afgeschaft en wordt niet meer opgenomen in nieuwe AKS-API-versies vanaf 2024-05-01.
Een Linux-knooppuntgroep met FIPS-functionaliteit maken
Maak een LINUX-knooppuntgroep met FIPS-functionaliteit met behulp van de
az aks nodepool add
opdracht met de--enable-fips-image
parameter.az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name fipsnp \ --enable-fips-image
Notitie
U kunt de
--enable-fips-image
parameter ook gebruiken met de opdracht bij hetaz aks create
maken van een cluster om FIPS in te schakelen in de standaardknooppuntgroep. Wanneer u knooppuntgroepen toevoegt aan een cluster dat op deze manier is gemaakt, moet u nog steeds de parameter gebruiken bij het--enable-fips-image
toevoegen van knooppuntgroepen om een FIPS-knooppuntgroep te maken.Controleer of uw knooppuntgroep is ingeschakeld voor FIPS met behulp van de
az aks show
opdracht en voer een query uit voor de enableFIPS-waarde in agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o table
In de volgende voorbeelduitvoer ziet u dat de fipsnp-knooppuntgroep is ingeschakeld voor FIPS:
Name enableFips --------- ------------ fipsnp True nodepool1 False
Vermeld de knooppunten met behulp van de
kubectl get nodes
opdracht.kubectl get nodes
In de volgende voorbeelduitvoer ziet u een lijst met de knooppunten in het cluster. De knooppunten die beginnen met
aks-fipsnp
, maken deel uit van de knooppuntgroep waarvoor FIPS is ingeschakeld.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
Voer een implementatie uit met een interactieve sessie op een van de knooppunten in de knooppuntgroep met FIPS-functionaliteit met behulp van de
kubectl debug
opdracht.kubectl debug node/aks-fipsnp-12345678-vmss000000 -it --image=mcr.microsoft.com/dotnet/runtime-deps:6.0
Controleer in de uitvoer van de interactieve sessie of de cryptografische FIPS-bibliotheken zijn ingeschakeld. De uitvoer moet er ongeveer uitzien als in de volgende voorbeelduitvoer:
root@aks-fipsnp-12345678-vmss000000:/# cat /proc/sys/crypto/fips_enabled 1
FIPS-knooppuntgroepen hebben ook een kubernetes.azure.com/fips_enabled=true label, die implementaties kunnen gebruiken om deze knooppuntgroepen te richten.
Een Windows-knooppuntgroep met FIPS-knooppunten maken
Maak een Windows-knooppuntgroep met FIPS-functionaliteit met behulp van de
az aks nodepool add
opdracht met de--enable-fips-image
parameter. In tegenstelling tot op Linux gebaseerde knooppuntgroepen delen Windows-knooppuntgroepen dezelfde installatiekopieënset.az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name fipsnp \ --enable-fips-image \ --os-type Windows
Controleer of uw knooppuntgroep is ingeschakeld voor FIPS met behulp van de
az aks show
opdracht en voer een query uit voor de enableFIPS-waarde in agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o table
Controleer of Windows-knooppuntgroepen toegang hebben tot de cryptografische FIPS-bibliotheken door een RDP-verbinding met een Windows-knooppunt in een FIPS-knooppuntgroep te maken en het register te controleren. Voer in de toepassing Uitvoeren de tekst in
regedit
.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy
Zoek naar in het register.Als
Enabled
deze optie is ingesteld op 1, is FIPS ingeschakeld.
FIPS-knooppuntgroepen hebben ook een kubernetes.azure.com/fips_enabled=true label, die implementaties kunnen gebruiken om deze knooppuntgroepen te richten.
Een bestaande knooppuntgroep bijwerken om FIPS in of uit te schakelen
Bestaande Linux-knooppuntgroepen kunnen worden bijgewerkt om FIPS in of uit te schakelen. Als u van plan bent om uw knooppuntgroepen van niet-FIPS naar FIPS te migreren, controleert u eerst of uw toepassing goed werkt in een testomgeving voordat u deze migreert naar een productieomgeving. Het valideren van uw toepassing in een testomgeving moet problemen voorkomen die worden veroorzaakt door de FIPS-kernel die een zwak coderings- of versleutelingsalgoritme blokkeert, zoals een MD4-algoritme dat niet compatibel is met FIPS.
Notitie
Wanneer u een bestaande Linux-knooppuntgroep bijwerkt om FIPS in of uit te schakelen, wordt de update van de knooppuntgroep verplaatst tussen de fips- en niet-fips-installatiekopie. Met deze update van de knooppuntgroep wordt een nieuwe installatiekopie geactiveerd om de update te voltooien. Hierdoor kan het enkele minuten duren voordat de update van de knooppuntgroep is voltooid.
Vereisten
- Azure CLI versie 2.64.0 of hoger. Voer
az --version
uit om de versie te zoeken. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren.
FIPS inschakelen voor een bestaande knooppuntgroep
Bestaande Linux-knooppuntgroepen kunnen worden bijgewerkt om FIPS in te schakelen. Wanneer u een bestaande knooppuntgroep bijwerkt, verandert de knooppuntinstallatiekopie van de huidige installatiekopie in de aanbevolen FIPS-installatiekopie van dezelfde SKU van het besturingssysteem.
Werk een knooppuntgroep bij met behulp van de opdracht [
az aks nodepool update
][az-aks-nodepool-update] met de--enable-fips-image
parameter.az aks nodepool update \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name np \ --enable-fips-image
Met de bovenstaande opdracht wordt onmiddellijk een nieuwe installatiekopie van de knooppuntgroep geactiveerd om het fips-compatibele besturingssysteem te implementeren. Deze installatiekopie vindt plaats tijdens de update van de knooppuntgroep. Er zijn geen extra stappen nodig.
Controleer of uw knooppuntgroep is ingeschakeld voor FIPS met behulp van de
az aks show
opdracht en voer een query uit voor de enableFIPS-waarde in agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o table
In de volgende voorbeelduitvoer ziet u dat de NP-knooppuntgroep IS ingeschakeld voor FIPS:
Name enableFips --------- ------------ np True nodepool1 False
Vermeld de knooppunten met behulp van de
kubectl get nodes
opdracht.kubectl get nodes
In de volgende voorbeelduitvoer ziet u een lijst met de knooppunten in het cluster. De knooppunten die beginnen met
aks-np
, maken deel uit van de knooppuntgroep waarvoor FIPS is ingeschakeld.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
Voer een implementatie uit met een interactieve sessie op een van de knooppunten in de knooppuntgroep met FIPS-functionaliteit met behulp van de
kubectl debug
opdracht.kubectl debug node/aks-np-12345678-vmss000000 -it --image=mcr.microsoft.com/dotnet/runtime-deps:6.0
Controleer in de uitvoer van de interactieve sessie of de cryptografische FIPS-bibliotheken zijn ingeschakeld. De uitvoer moet er ongeveer uitzien als in de volgende voorbeelduitvoer:
root@aks-np-12345678-vmss000000:/# cat /proc/sys/crypto/fips_enabled 1
FIPS-knooppuntgroepen hebben ook een kubernetes.azure.com/fips_enabled=true label, die implementaties kunnen gebruiken om deze knooppuntgroepen te richten.
FIPS uitschakelen voor een bestaande knooppuntgroep
Bestaande Linux-knooppuntgroepen kunnen worden bijgewerkt om FIPS uit te schakelen. Wanneer u een bestaande knooppuntgroep bijwerkt, verandert de knooppuntinstallatiekopie van de huidige FIPS-installatiekopie in de aanbevolen niet-FIPS-installatiekopie van dezelfde SKU van het besturingssysteem. De wijziging van de knooppuntinstallatiekopie vindt plaats na een nieuwe installatiekopie.
Werk een Linux-knooppuntgroep bij met behulp van de opdracht [
az aks nodepool update
][az-aks-nodepool-update] met de--disable-fips-image
parameter.az aks nodepool update \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name np \ --disable-fips-image
Met de bovenstaande opdracht wordt onmiddellijk een nieuwe installatiekopie van de knooppuntgroep geactiveerd om het fips-compatibele besturingssysteem te implementeren. Deze installatiekopie vindt plaats tijdens de update van de knooppuntgroep. Er zijn geen extra stappen nodig.
Controleer of uw knooppuntgroep niet is ingeschakeld voor FIPS met behulp van de
az aks show
opdracht en voer een query uit voor de enableFIPS-waarde in agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o table
In de volgende voorbeelduitvoer ziet u dat de np-knooppuntgroep niet is ingeschakeld voor FIPS:
Name enableFips --------- ------------ np False nodepool1 False
Volgende stappen
Zie Best practices voor clusterbeveiliging en upgrades in Azure Kubernetes Service (AKS) voor meer informatie over AKS-beveiliging.
Azure Kubernetes Service