Aktivera FIPS (Federal Information Process Standard) för AKS-nodpooler (Azure Kubernetes Service)
Artikel
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.
Anteckning
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.
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.
Anteckning
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
Anteckning
Du kan också använda parametern --enable-fips-imageaz 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 .
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:
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.
Anteckning
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 .
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:
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
Källan för det här innehållet finns på GitHub, där du även kan skapa och granska ärenden och pull-begäranden. Se vår deltagarguide för mer information.
Feedback om Azure Kubernetes Service
Azure Kubernetes Service är ett öppen källkod projekt. Välj en länk för att ge feedback:
Använd Azure Policy för att framtvinga principer och skydd på dina Kubernetes-kluster i stor skala. Azure Policy Säkerställer att klustret är säkert, kompatibelt och konsekvent i hela organisationen.