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. Om du vill aktivera FIPS i en nodpool måste du skapa en ny Linux-baserad nodpool. Du kan inte aktivera FIPS i befintliga 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.

Skapa en FIPS-aktiverad Linux-nodpool

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

  2. 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  
    
  3. 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
    
  4. 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
    
  5. 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

  1. 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
    
  2. 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
    
  3. 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.

  4. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy Leta efter i registret.

  5. Om Enabled är inställt på 1 aktiveras FIPS.

Screenshot shows a picture of the registry editor to the FIPS Algorithm Policy, and it being enabled.

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.

Nästa steg

Mer information om AKS-säkerhet finns i Metodtips för klustersäkerhet och uppgraderingar i Azure Kubernetes Service (AKS).