Aktivera FIPS (Federal Information Process Standard) för AKS-nodpooler (Azure Kubernetes Service)
Federal Information Processing Standard (FIPS) 140-2 är en standard för amerikanska myndigheter som anger de minsta säkerhetskraven för kryptografiska moduler i IT-produkter och -system. Med Azure Kubernetes Service (AKS) kan du skapa Linux- och Windows-nodpooler med FIPS 140-2 aktiverat. Distributioner som körs på FIPS-aktiverade nodpooler kan använda dessa kryptografiska moduler för att öka säkerheten och uppfylla säkerhetskontroller som en del av efterlevnaden av FedRAMP. Mer information om FIPS 140-2 finns i Federal Information Processing Standard (FIPS) 140.
Förutsättningar
- Azure CLI version 2.32.0 eller senare installerad och konfigurerad. Kör
az --version
för att hitta versionen. Mer information om hur du installerar eller uppgraderar Azure CLI finns i Installera Azure CLI.
Kommentar
AKS Monitoring Addon stöder FIPS-aktiverade nodpooler med Ubuntu, Azure Linux och Windows från och med Agent version 3.1.17 (Linux) och Win-3.1.17 (Windows).
Begränsningar
- FIPS-aktiverade nodpooler har följande begränsningar:
- FIPS-aktiverade nodpooler kräver Kubernetes version 1.19 och senare.
- Om du vill uppdatera de underliggande paketen eller modulerna som används för FIPS måste du använda Node Image Upgrade.
- Containeravbildningar på FIPS-noderna har inte utvärderats för FIPS-efterlevnad.
- Monteringen av en CIFS-resurs misslyckas eftersom FIPS inaktiverar vissa autentiseringsmoduler. Information om det här problemet finns i Fel vid montering av en filresurs i en FIPS-aktiverad nodpool.
Viktigt!
Den FIPS-aktiverade Linux-avbildningen är en annan avbildning än den Linux-standardbild som används för Linux-baserade nodpooler.
FIPS-aktiverade nodavbildningar kan ha olika versionsnummer, till exempel kernelversion, än bilder som inte är FIPS-aktiverade. Uppdateringscykeln för FIPS-aktiverade nodpooler och nodbilder kan skilja sig från nodpooler och avbildningar som inte är FIPS-aktiverade.
Operativsystemversioner som stöds
Du kan skapa FIPS-aktiverade nodpooler på alla operativsystemtyper som stöds, Linux och Windows. Alla OS-versioner stöder dock inte FIPS-aktiverade nodpooler. När en ny os-version har släppts finns det vanligtvis en väntetid innan den är FIPS-kompatibel.
Tabellen nedan innehåller operativsystemversioner som stöds:
Typ av operativsystem | OS SKU | FIPS-efterlevnad |
---|---|---|
Linux | Ubuntu | Stöds |
Linux | Azure Linux | Stöds |
Windows | Windows Server 2019 | Stöds |
Windows | Windows Server 2022 | Stöds |
När du begär FIPS-aktiverad Ubuntu, om standardversionen av Ubuntu inte stöder FIPS, kommer AKS som standard att vara den senaste FIPS-stödda versionen av Ubuntu. Ubuntu 22.04 är till exempel standard för Linux-nodpooler. Eftersom 22.04 för närvarande inte stöder FIPS, är AKS som standard Ubuntu 20.04 för Linux FIPS-aktiverade nodpooler.
Kommentar
Tidigare kunde du använda API:et GetOSOptions för att avgöra om ett visst OPERATIVSYSTEM som stöds av FIPS. Api:et GetOSOptions är nu inaktuellt och kommer inte längre att ingå i nya AKS API-versioner från och med 2024-05-01.
Skapa en FIPS-aktiverad Linux-nodpool
Skapa en FIPS-aktiverad Linux-nodpool med kommandot
az aks nodepool add
med parametern--enable-fips-image
.az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name fipsnp \ --enable-fips-image
Kommentar
Du kan också använda parametern
--enable-fips-image
az aks create
med kommandot när du skapar ett kluster för att aktivera FIPS i standardnodpoolen. När du lägger till nodpooler i ett kluster som skapats på det här sättet måste du fortfarande använda parametern--enable-fips-image
när du lägger till nodpooler för att skapa en FIPS-aktiverad nodpool.Kontrollera att nodpoolen är FIPS-aktiverad med kommandot
az aks show
och frågan för värdet enableFIPS i agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o table
Följande exempelutdata visar att fipsnp-nodpoolen är FIPS-aktiverad:
Name enableFips --------- ------------ fipsnp True nodepool1 False
Visa en lista över noderna med kommandot
kubectl get nodes
.kubectl get nodes
Följande exempelutdata visar en lista över noderna i klustret. Noderna som börjar med
aks-fipsnp
ingår i den FIPS-aktiverade nodpoolen.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
Kör en distribution med en interaktiv session på en av noderna i den FIPS-aktiverade nodpoolen
kubectl debug
med kommandot .kubectl debug node/aks-fipsnp-12345678-vmss000000 -it --image=mcr.microsoft.com/dotnet/runtime-deps:6.0
Kontrollera att FIPS kryptografiska bibliotek är aktiverade från den interaktiva sessionens utdata. Dina utdata bör se ut ungefär som följande exempelutdata:
root@aks-fipsnp-12345678-vmss000000:/# cat /proc/sys/crypto/fips_enabled 1
FIPS-aktiverade nodpooler har också en kubernetes.azure.com/fips_enabled=true etikett, som distributioner kan använda för att rikta in sig på dessa nodpooler.
Skapa en FIPS-aktiverad Windows-nodpool
Skapa en FIPS-aktiverad Windows-nodpool med kommandot
az aks nodepool add
med parametern--enable-fips-image
. Till skillnad från Linux-baserade nodpooler delar Windows-nodpooler samma avbildningsuppsättning.az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name fipsnp \ --enable-fips-image \ --os-type Windows
Kontrollera att nodpoolen är FIPS-aktiverad med kommandot
az aks show
och frågan för värdet enableFIPS i agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o table
Kontrollera att Windows-nodpooler har åtkomst till FIPS kryptografiska bibliotek genom att skapa en RDP-anslutning till en Windows-nod i en FIPS-aktiverad nodpool och kontrollera registret. Från kör-programmet anger du
regedit
.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy
Leta efter i registret.Om
Enabled
är inställt på 1 aktiveras FIPS.
FIPS-aktiverade nodpooler har också en kubernetes.azure.com/fips_enabled=true etikett, som distributioner kan använda för att rikta in sig på dessa nodpooler.
Uppdatera en befintlig nodpool för att aktivera eller inaktivera FIPS
Befintliga Linux-nodpooler kan uppdateras för att aktivera eller inaktivera FIPS. Om du planerar att migrera dina nodpooler från icke-FIPS till FIPS kontrollerar du först att programmet fungerar korrekt i en testmiljö innan du migrerar det till en produktionsmiljö. Validering av ditt program i en testmiljö bör förhindra problem som orsakas av att FIPS-kerneln blockerar vissa svaga chiffer- eller krypteringsalgoritmer, till exempel en MD4-algoritm som inte är FIPS-kompatibel.
Kommentar
När du uppdaterar en befintlig Linux-nodpool för att aktivera eller inaktivera FIPS flyttas nodpooluppdateringen mellan fips- och icke-fips-avbildningen. Den här uppdateringen av nodpoolen utlöser en återimering för att slutföra uppdateringen. Detta kan göra att det tar några minuter att uppdatera nodpoolen.
Förutsättningar
- Azure CLI version 2.64.0 eller senare. Kör
az --version
för att hitta versionen. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI.
Aktivera FIPS i en befintlig nodpool
Befintliga Linux-nodpooler kan uppdateras för att aktivera FIPS. När du uppdaterar en befintlig nodpool ändras nodavbildningen från den aktuella avbildningen till den rekommenderade FIPS-avbildningen av samma OS SKU.
Uppdatera en nodpool med kommandot [
az aks nodepool update
][az-aks-nodepool-update] med parametern--enable-fips-image
.az aks nodepool update \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name np \ --enable-fips-image
Kommandot ovan utlöser en återimering av nodpoolen omedelbart för att distribuera DET FIPS-kompatibla operativsystemet. Den här omstarten sker under uppdateringen av nodpoolen. Inga ytterligare steg krävs.
Kontrollera att nodpoolen är FIPS-aktiverad med kommandot
az aks show
och fråga efter värdet enableFIPS i agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o table
Följande exempelutdata visar att np-nodpoolen är FIPS-aktiverad:
Name enableFips --------- ------------ np True nodepool1 False
Visa en lista över noderna med kommandot
kubectl get nodes
.kubectl get nodes
Följande exempelutdata visar en lista över noderna i klustret. Noderna som börjar med
aks-np
ingår i den FIPS-aktiverade nodpoolen.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
Kör en distribution med en interaktiv session på en av noderna i den FIPS-aktiverade nodpoolen
kubectl debug
med kommandot .kubectl debug node/aks-np-12345678-vmss000000 -it --image=mcr.microsoft.com/dotnet/runtime-deps:6.0
Kontrollera att FIPS kryptografiska bibliotek är aktiverade från den interaktiva sessionens utdata. Dina utdata bör se ut ungefär som följande exempelutdata:
root@aks-np-12345678-vmss000000:/# cat /proc/sys/crypto/fips_enabled 1
FIPS-aktiverade nodpooler har också en kubernetes.azure.com/fips_enabled=true etikett, som distributioner kan använda för att rikta in sig på dessa nodpooler.
Inaktivera FIPS i en befintlig nodpool
Befintliga Linux-nodpooler kan uppdateras för att inaktivera FIPS. När du uppdaterar en befintlig nodpool ändras nodavbildningen från den aktuella FIPS-avbildningen till den rekommenderade icke-FIPS-avbildningen av samma OS-SKU. Ändringen av nodbilden sker efter en ombildning.
Uppdatera en Linux-nodpool med kommandot [
az aks nodepool update
][az-aks-nodepool-update] med parametern--disable-fips-image
.az aks nodepool update \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name np \ --disable-fips-image
Kommandot ovan utlöser en återimering av nodpoolen omedelbart för att distribuera DET FIPS-kompatibla operativsystemet. Den här omstarten sker under uppdateringen av nodpoolen. Inga ytterligare steg krävs.
Kontrollera att nodpoolen inte är FIPS-aktiverad med kommandot
az aks show
och fråga efter värdet enableFIPS i agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o table
Följande exempelutdata visar att np-nodpoolen inte är FIPS-aktiverad:
Name enableFips --------- ------------ np False nodepool1 False
Nästa steg
Mer information om AKS-säkerhet finns i Metodtips för klustersäkerhet och uppgraderingar i Azure Kubernetes Service (AKS).
Azure Kubernetes Service