Aktivera FIPS (Federal Information Processing Standard) för Azure Kubernetes Service (AKS) nodpooler

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

Viktigt!

Från och med March 17, 2027 Azure Kubernetes Service (AKS) inte längre stöder eller tillhandahåller säkerhetsuppdateringar för Ubuntu 20.04. Alla befintliga nodbilder tas bort och du kan inte skala några nodpooler som kör Ubuntu 20.04. Migrera till en Ubuntu-version som stöds genom att uppgradera dina nodpooler till Kubernetes version 1.35+. Mer information om den här tillbakadragningen finns i Retirement GitHub issue and the Azure Updates retirement announcement. Om du vill hålla dig uppdaterad om meddelandena och uppdateringarna följer du AKS-versionsinformation.

Viktigt!

Från och med November 30, 2025 Azure Kubernetes Service (AKS) inte längre stöder eller tillhandahåller säkerhetsuppdateringar för Azure Linux 2.0. Nodbilden Azure Linux 2.0 är fryst vid 202512.06.0. Från och med den 31 mars 2026 tas nodbilder bort och du kan inte skala dina nodpooler. Migrera till en Azure Linux-version som stöds genom att uppgradera dina nodpooler till en Kubernetes-version som stöds eller migrera till osSku AzureLinux3. Mer information finns i GitHub-problem om pensionering och Azure Updates meddelande om pensionering. Om du vill hålla dig informerad om meddelanden och uppdateringar följer du AKS-släppanteckningar.

Förutsättningar

  • En aktiv Azure prenumeration. Om du inte har någon Azure prenumeration skapar du ett free-konto innan du börjar.

  • Ange din prenumerationskontext med kommandot az account set . Som exempel:

    az account set --subscription "00000000-0000-0000-0000-000000000000"
    
  • kubectl installerat. Du kan installera den lokalt med hjälp av az aks install-cli kommandot .

Versionskompatibilitet

  • 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.
  • ARM-mallexempel i den här artikeln använder API-version 2023-03-01 för Microsoft.ContainerService/managedClusters och Microsoft.ContainerService/managedClusters/agentPools.
  • Bicep-exempel i den här artikeln använder sig av API-versionen 2023-03-01 för Microsoft.ContainerService/managedClusters och Microsoft.ContainerService/managedClusters/agentPools.
  • Terraform-exempel i den här artikeln använder AzureRM-providern 3.x.
  • För Terraform FIPS-inställningar använder du enable_fips_imageazurerm_kubernetes_cluster.default_node_pool och fips_enabledazurerm_kubernetes_cluster_node_pool.

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 paket eller moduler som används för FIPS måste du använda Node-avbildningsuppgradering.
  • Containeravbildningar på FIPS-noderna utvärderas inte för FIPS-efterlevnad.
  • Monteringen av en CIFS-resurs misslyckas eftersom FIPS inaktiverar vissa av autentiseringsmodulerna. För att lösa problemet, se Fel vid montering av en filresurs i en FIPS-aktiverad nodpool.
  • FIPS-aktiverade nodpooler med Arm64 virtuella datorer stöds bara med Azure Linux 3.0+.
  • AKS-övervakningstillägget 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).

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.

Följande tabell innehåller operativsystemversioner som stöds för FIPS-aktiverade nodpooler:

OS-typ OS-produktkod FIPS-efterlevnad Standardinställning
Linux Ubuntu Stöds Inaktiverad som standard
Linux Azure Linux Stöds Inaktiverad som standard
Windows Windows Server 2022 Stöds Aktiverad som standard
Windows Windows Server 2025 Stöds Aktiverad som standard och kan inte inaktiveras

När du begär en Ubuntu-version med FIPS-aktivering, och standardversionen av Ubuntu inte stöder FIPS, väljer AKS som standard den senaste versionen av Ubuntu som stöder FIPS. 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 ingår inte längre i nya AKS API-versioner från och med 2024-05-01.

Skapa Terraform-konfigurationsfilen

Terraform-konfigurationsfiler definierar infrastrukturen som Terraform skapar och hanterar.

  1. Skapa en fil med namnet main.tf och lägg till följande kod för att definiera Terraform-versionen och ange Azure provider:

    terraform {
      required_version = ">= 1.0"
    
      required_providers {
        azurerm = {
          source  = "hashicorp/azurerm"
          version = "~> 3.0"
        }
      }
    }
    
    provider "azurerm" {
      features {}
    }
    
  2. Lägg till följande kod i main.tf för att skapa en Azure resursgrupp. Ändra gärna namn och plats för resursgruppen efter behov.

    resource "azurerm_resource_group" "example" {
      name     = "example-fips-rg"
      location = "East US"
    }
    

Skapa ett AKS-kluster med en FIPS-aktiverad standardnodpool

Du kan aktivera FIPS i standardnodpoolen när du skapar ett nytt AKS-kluster.

När du skapar fler nodpooler i ett kluster som redan har en FIPS-aktiverad standardnodpool måste du även aktivera FIPS i de nya nodpoolerna med hjälp av parametern --enable-fips-image .

  1. Skapa ett AKS-kluster med FIPS aktiverat i standardnodpoolen az aks create med kommandot med parametern --enable-fips-image .

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --node-count 3 \
        --enable-fips-image
    
  2. Kontrollera att nodpoolen är FIPS-aktiverad med kommandot az aks show och kontrollera 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 standardnodpoolen är FIPS-aktiverad:

    Name       enableFips
    ---------  ------------
    nodepool1  True
    

Aktivering av FIPS när AKS-kluster skapas stöds inte i Azure-portalen. Om du vill skapa ett kluster med en FIPS-aktiverad standardnodpool använder du anvisningarna Azure CLI, ARM-mall, Bicep eller Terraform i den här artikeln.

När du skapar fler nodpooler i ett kluster som redan har en FIPS-aktiverad standardnodpool måste du även aktivera FIPS i de nya nodpoolerna genom att ange enableFips till true.

  1. Skapa ett AKS-kluster med FIPS aktiverat på standardnodpoolen med hjälp av en ARM-mall genom att ange enableFips egenskapen till true i agentpoolprofilen. Som exempel:

    {
      "type": "Microsoft.ContainerService/managedClusters",
      "location": "[parameters('location')]",
      "name": "[parameters('clusterName')]",
      "properties": {
        "kubernetesVersion": "1.27",
        "enableRBAC": true,
        "dnsPrefix": "[parameters('dnsPrefix')]",
        "agentPoolProfiles": [
          {
            "name": "nodepool1",
            "count": 3,
            "vmSize": "Standard_D2s_v3",
            "osType": "Linux",
            "osSKU": "Ubuntu",
            "type": "VirtualMachineScaleSets",
            "mode": "System",
            "enableFips": true
          }
        ]
      },
      "identity": {
        "type": "SystemAssigned"
      }
    }
    
  2. Distribuera ARM-mallen med hjälp av Azure-portalen, Azure CLI eller Azure PowerShell. Mer information om hur du distribuerar ARM-mallar finns i Distribuera resurser med ARM-mallar.

  3. Kontrollera att nodpoolen är FIPS-aktiverad med kommandot az aks show och kontrollera 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 standardnodpoolen är FIPS-aktiverad:

    Name       enableFips
    ---------  ------------
    nodepool1  True
    

När du skapar fler nodpooler i ett kluster som redan har en FIPS-aktiverad standardnodpool måste du även aktivera FIPS i de nya nodpoolerna genom att ange enableFIPS till true.

  1. Skapa ett AKS-kluster med FIPS aktiverat på standardnodpoolen med Bicep genom att ange enableFIPS till true i agentpoolprofilen. Som exempel:

    param location string
    param clusterName string
    param dnsPrefix string
    
    resource aks 'Microsoft.ContainerService/managedClusters@2023-03-01' = {
      name: clusterName
      location: location
      identity: {
        type: 'SystemAssigned'
      }
      properties: {
        kubernetesVersion: '1.27'
        enableRBAC: true
        dnsPrefix: dnsPrefix
        agentPoolProfiles: [
          {
            name: 'nodepool1'
            count: 3
            vmSize: 'Standard_D2s_v3'
            osType: 'Linux'
            osSKU: 'Ubuntu'
            type: 'VirtualMachineScaleSets'
            mode: 'System'
            enableFIPS: true
          }
        ]
      }
    }
    
  2. Distribuera Bicep-filen med hjälp av Azure CLI, Azure PowerShell eller Azure-portalen. Mer information om hur du distribuerar Bicep filer finns i Skapa Bicep filer med Visual Studio Code.

  3. 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 standardnodpoolen är FIPS-aktiverad:

    Name       enableFips
    ---------  ------------
    nodepool1  True
    

När du skapar fler nodpooler i ett kluster som redan har en FIPS-aktiverad standardnodpool måste du även aktivera FIPS i de nya nodpoolerna genom att ange fips_enabledtrueazurerm_kubernetes_cluster_node_pool.

  1. Lägg till följande kod i main.tf för att skapa ett AKS-kluster med FIPS aktiverat i standardnodpoolen:

    resource "azurerm_kubernetes_cluster" "example" {
      name                = "example-aks-cluster"
      location            = azurerm_resource_group.example.location
      resource_group_name = azurerm_resource_group.example.name
      dns_prefix          = "example-aks"
    
      default_node_pool {
        name              = "nodepool1"
        node_count        = 3
        vm_size           = "Standard_D2s_v3"
        os_sku            = "Ubuntu"
        enable_fips_image = true
      }
    
      identity {
        type = "SystemAssigned"
      }
    }
    
  2. Initiera Terraform i katalogen som innehåller main.tf filen med hjälp av terraform init kommandot .

    terraform init
    
  3. Skapa en Terraform-körningsplan med kommandot terraform plan .

    terraform plan
    
  4. Använd konfigurationskommandot terraform apply för att distribuera klustret med en FIPS-aktiverad standardnodpool.

    terraform apply
    
  5. Anslut till AKS-klustret med kommandot [az aks get-credentials][az-aks-get-credentials].

    az aks get-credentials \
        --resource-group myResourceGroup \
        --name myAKSCluster
    
  6. Kontrollera att nodpoolen är FIPS-aktiverad med kommandot az aks show och kontrollera 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 standardnodpoolen är FIPS-aktiverad:

    Name       enableFips
    ---------  ------------
    nodepool1  True
    

Mer information om resursen azurerm_kubernetes_cluster finns i dokumentationen Terraform Azure provider.

Lägga till en FIPS-aktiverad Linux-nodpool i ett befintligt AKS-kluster

  1. Lägg till en FIPS-aktiverad Linux-nodpool i ett befintligt kluster 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
    
  2. Kontrollera konfigurationen av nodpoolen med az aks show-kommandot för att fråga efter enableFIPS-värdet 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.

Aktivering av FIPS när du lägger till en Linux-nodpool stöds inte i Azure-portalen. Om du vill lägga till en FIPS-aktiverad Linux-nodpool använder du anvisningarna Azure CLI, ARM-mall, Bicep eller Terraform i den här artikeln.

  1. Skapa en FIPS-aktiverad Linux-nodpool med hjälp av en ARM-mall genom att distribuera en agentpoolresurs med egenskapen inställd på enableFipstrue. Som exempel:

    {
      "type": "Microsoft.ContainerService/managedClusters/agentPools",
      "apiVersion": "2023-03-01",
      "name": "[concat(parameters('clusterName'), '/fipsnp')]",
      "properties": {
        "count": 3,
        "vmSize": "Standard_D2s_v3",
        "osType": "Linux",
        "osSKU": "Ubuntu",
        "mode": "User",
        "enableFips": true
      }
    }
    
  2. Distribuera ARM-mallen med hjälp av Azure-portalen, Azure CLI eller Azure PowerShell. Mer information om hur du distribuerar ARM-mallar finns i Distribuera resurser med ARM-mallar.

  3. Kontrollera konfigurationen av nodpoolen genom att använda kommandot az aks show och fråga efter enableFIPS-värdet 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  
    
  4. 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
    
  5. 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
    
  6. 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.

  1. Skapa en FIPS-aktiverad Linux-nodpool med Bicep genom att distribuera en agentpoolresurs med enableFIPS inställd på true. Som exempel:

    param clusterName string
    param nodePoolName string = 'fipsnp'
    
    resource nodePool 'Microsoft.ContainerService/managedClusters/agentPools@2023-03-01' = {
      name: '${clusterName}/${nodePoolName}'
      properties: {
        count: 3
        vmSize: 'Standard_D2s_v3'
        osType: 'Linux'
        osSKU: 'Ubuntu'
        mode: 'User'
        enableFIPS: true
      }
    }
    
  2. Distribuera Bicep-filen med hjälp av Azure CLI, Azure PowerShell eller Azure-portalen. Mer information om hur du distribuerar Bicep filer finns i Skapa Bicep filer med Visual Studio Code.

  3. Kontrollera konfigurationen av din nodpool med az aks show-kommandot och sök 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 fipsnp-nodpoolen är FIPS-aktiverad:

    Name       enableFips
    ---------  ------------
    fipsnp     True
    nodepool1  False  
    
  4. 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
    
  5. 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
    
  6. 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.

  1. Lägg till följande kod för att lägga till main.tf en FIPS-aktiverad Linux-nodpool i ditt AKS-kluster:

    resource "azurerm_kubernetes_cluster_node_pool" "fips_linux" {
      name                   = "fipsnp"
      kubernetes_cluster_id  = azurerm_kubernetes_cluster.example.id
      vm_size                = "Standard_D2s_v3"
      os_type                = "Linux"
      os_sku                 = "Ubuntu"
      node_count             = 3
      fips_enabled           = true
    
      node_taints = []
    }
    
  2. Använd den uppdaterade Terraform-konfigurationen med hjälp av terraform plan kommandona och terraform apply .

    terraform plan
    terraform apply
    
  3. Anslut till AKS-klustret med kommandot [az aks get-credentials][az-aks-get-credentials].

    az aks get-credentials \
        --resource-group myResourceGroup \
        --name myAKSCluster
    
  4. Kontrollera konfigurationen av nodpoolen med kommandot och sök efter enableFIPS-värdet 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  
    
  5. 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
    
  6. 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
    
  7. 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.

Mer information om resursen azurerm_kubernetes_cluster_node_pool finns i dokumentationen Terraform Azure provider.

Lägga till en FIPS-aktiverad Windows nodpool

I det här avsnittet lägger vi till en Windows nodpool i ett befintligt AKS-kluster. Windows Server 2022 och senare nodpooler aktiverar FIPS som standard även om enableFips inte visar True. Windows Server 2025 och senare nodpooler stöder inte inaktivering av FIPS.

  1. Skapa en Windows nodpool med kommandot az aks nodepool add. 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 konfigurationen av nodpoolen med hjälp av az aks show-kommandot och genom att söka efter värdet 'enableFIPS' i agentPoolProfiles.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
        -o table
    
  3. Kontrollera Windows nodpooler har åtkomst till FIPS kryptografiska bibliotek genom att skapa en RDP-anslutning till en Windows nod i en nodpool och kontrollera registret. Från kör-programmet anger du regedit.

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

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

    Skärmbild som visar en bild av registerredigeraren för FIPS-algoritmprincipen, och att den är aktiverad.

    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.

Det finns ingen Azure portalupplevelse för att aktivera eller inaktivera FIPS-inställningar för Windows nodpooler. Alla Windows nodpooler som skapats med Azure portalen har FIPS aktiverat. Windows Server 2022 och senare nodpooler aktiverar FIPS som standard, och Windows Server 2025 och senare nodpooler stöder inte inaktivering av FIPS.

  1. Skapa en Windows nodpool med hjälp av en ARM-mall genom att distribuera en agentpoolresurs med osType inställd på Windows. Som exempel:

    {
      "type": "Microsoft.ContainerService/managedClusters/agentPools",
      "apiVersion": "2023-03-01",
      "name": "[concat(parameters('clusterName'), '/fipsnp')]",
      "properties": {
        "count": 3,
        "vmSize": "Standard_D2s_v3",
        "osType": "Windows",
        "osSKU": "Windows2022",
        "mode": "User"
      }
    }
    
  2. Distribuera ARM-mallen med hjälp av Azure-portalen, Azure CLI eller Azure PowerShell. Mer information om hur du distribuerar ARM-mallar finns i Distribuera resurser med ARM-mallar.

  3. Kontrollera din nodpoolkonfiguration genom att använda kommandot az aks show och sök efter enableFIPS-värdet i agentPoolProfiles.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
        -o table
    
  4. Kontrollera Windows nodpooler har åtkomst till FIPS kryptografiska bibliotek genom att skapa en RDP-anslutning till en Windows nod i en nodpool och kontrollera registret. Från kör-programmet anger du regedit.

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

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

    Skärmbild som visar en bild av registerredigeraren för FIPS-algoritmprincipen, och att den är aktiverad.

    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.

  1. Skapa en Windows nodpool med Bicep genom att distribuera en agentpoolresurs med osType inställd på Windows. Som exempel:

    param clusterName string
    param nodePoolName string = 'fipsnp'
    
    resource nodePool 'Microsoft.ContainerService/managedClusters/agentPools@2023-03-01' = {
      name: '${clusterName}/${nodePoolName}'
      properties: {
        count: 3
        vmSize: 'Standard_D2s_v3'
        osType: 'Windows'
        osSKU: 'Windows2022'
        mode: 'User'
        enableFIPS: true
      }
    }
    
  2. Distribuera Bicep-filen med hjälp av Azure CLI, Azure PowerShell eller Azure-portalen. Mer information om hur du distribuerar Bicep filer finns i Skapa Bicep filer med Visual Studio Code.

  3. Kontrollera din nodpoolkonfiguration genom att använda kommandot az aks show och sök efter enableFIPS-värdet i agentPoolProfiles.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
        -o table
    
  4. Kontrollera Windows nodpooler har åtkomst till FIPS kryptografiska bibliotek genom att skapa en RDP-anslutning till en Windows nod i en nodpool och kontrollera registret. Från kör-programmet anger du regedit.

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

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

    Skärmbild som visar en bild av registerredigeraren för FIPS-algoritmprincipen, och att den är aktiverad.

    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.

  1. Lägg till följande kod i main.tf för att skapa en Windows nodpool i AKS-klustret:

    resource "azurerm_kubernetes_cluster_node_pool" "fips_windows" {
      name                   = "fipsnp"
      kubernetes_cluster_id  = azurerm_kubernetes_cluster.example.id
      vm_size                = "Standard_D2s_v3"
      os_type                = "Windows"
      os_sku                 = "Windows2022"
      node_count             = 3
      fips_enabled           = true
    
      node_taints = []
    }
    
  2. Använd den uppdaterade Terraform-konfigurationen med hjälp av terraform plan kommandona och terraform apply .

    terraform plan
    terraform apply
    
  3. Anslut till AKS-klustret med kommandot [az aks get-credentials][az-aks-get-credentials].

    az aks get-credentials \
        --resource-group myResourceGroup \
        --name myAKSCluster
    
  4. Kontrollera din nodpoolkonfiguration genom att använda kommandot az aks show och sök efter enableFIPS-värdet i agentPoolProfiles.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
        -o table
    
  5. Kontrollera Windows nodpooler har åtkomst till FIPS kryptografiska bibliotek genom att skapa en RDP-anslutning till en Windows nod i en nodpool och kontrollera registret. Från kör-programmet anger du regedit.

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

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

    Skärmbild som visar en bild av registerredigeraren för FIPS-algoritmprincipen, och att den är aktiverad.

    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 uppdateringen av nodpoolen mellan fips- och nonfips-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 för att uppdatera en befintlig nodpool

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

Du kan uppdatera befintliga Linux-nodpooler 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.

  1. Uppdatera en nodpool med kommandot az aks nodepool update med parametern --enable-fips-image .

    az aks nodepool update \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name np \
        --enable-fips-image
    

    Det här kommandot utlöser en omimering av nodpoolen omedelbart för att distribuera det FIPS-kompatibla operativsystemet. Den här omstarten sker under uppdateringen av nodpoolen. Inga extra steg krävs.

  2. Kontrollera att nodpoolen är FIPS-aktiverad med kommandot az aks show och kontrollera 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  
    

Det går för närvarande inte att aktivera FIPS i en befintlig nodpool är inte tillgängligt i Azure-portalen. Om du vill aktivera FIPS i en befintlig nodpool använder du anvisningarna Azure CLI, ARM-mall, Bicep eller Terraform i den här artikeln.

  1. Aktivera FIPS på en befintlig nodpool med hjälp av en ARM-mall genom att uppdatera agentpoolprofilen för att ange enableFips egenskapen till true. Som exempel:

    {
      "type": "Microsoft.ContainerService/managedClusters/agentPools",
      "name": "[concat(parameters('clusterName'), '/np')]",
      "apiVersion": "2023-03-01",
      "properties": {
        "enableFips": true
      }
    }
    
  2. Distribuera den uppdaterade mallen med hjälp av portalen Azure, Azure CLI eller Azure PowerShell. Mer information om hur du distribuerar ARM-mallar finns i Distribuera resurser med ARM-mallar.

  3. Kontrollera att nodpoolen är FIPS-aktiverad med kommandot az aks show och kontrollera 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  
    
  1. Aktivera FIPS i en befintlig nodpool med hjälp av Bicep genom att uppdatera agentpoolresursen för att ange enableFIPS till true. Som exempel:

    param clusterName string
    param nodePoolName string = 'np'
    
    resource nodePool 'Microsoft.ContainerService/managedClusters/agentPools@2023-03-01' = {
      name: '${clusterName}/${nodePoolName}'
      properties: {
        enableFIPS: true
      }
    }
    
  2. Distribuera den uppdaterade Bicep-filen med hjälp av Azure CLI, Azure PowerShell eller Azure-portalen. Mer information om hur du distribuerar Bicep filer finns i Skapa Bicep filer med Visual Studio Code.

  3. 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  
    
  1. Uppdatera resursen azurerm_kubernetes_cluster_node_pool i main.tf genom att ange fips_enabled till true:

    resource "azurerm_kubernetes_cluster_node_pool" "example" {
      name                   = "np"
      kubernetes_cluster_id  = azurerm_kubernetes_cluster.example.id
      vm_size                = "Standard_D2s_v3"
      os_type                = "Linux"
      os_sku                 = "Ubuntu"
      node_count             = 3
      fips_enabled           = true
    }
    
  2. Använd den uppdaterade Terraform-konfigurationen med hjälp av terraform plan kommandona och terraform apply . Terraform identifierar ändringen till fips_enabled och utlöser den nödvändiga återimeringsåtgärden.

    terraform plan
    terraform apply
    
  3. Anslut till AKS-klustret med kommandot [az aks get-credentials][az-aks-get-credentials].

    az aks get-credentials \
        --resource-group myResourceGroup \
        --name myAKSCluster
    
  4. Kontrollera att nodpoolen är FIPS-aktiverad med kommandot az aks show och kontrollera 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  
    

Inaktivera FIPS i en befintlig nodpool

Du kan uppdatera befintliga Linux-nodpooler 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.

  1. Uppdatera en Linux-nodpool med kommandot az aks nodepool update med parametern --disable-fips-image .

    az aks nodepool update \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name np \
        --disable-fips-image
    

    Det här kommandot utlöser en omimering av nodpoolen omedelbart för att distribuera det FIPS-kompatibla operativsystemet. Den här omstarten sker under uppdateringen av nodpoolen. Inga extra steg krävs.

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

Inaktivera FIPS på en befintlig nodpool stöds inte i Azure-portalen. Om du vill inaktivera FIPS i en befintlig nodpool använder du anvisningarna Azure CLI, ARM-mall, Bicep eller Terraform i den här artikeln.

  1. Inaktivera FIPS på en befintlig nodpool med hjälp av en ARM-mall genom att uppdatera agentpoolprofilen för att ange enableFips egenskapen till false. Som exempel:

    {
      "type": "Microsoft.ContainerService/managedClusters/agentPools",
      "name": "[concat(parameters('clusterName'), '/np')]",
      "apiVersion": "2023-03-01",
      "properties": {
        "enableFips": false
      }
    }
    
  2. Distribuera den uppdaterade mallen med hjälp av portalen Azure, Azure CLI eller Azure PowerShell. Mer information om hur du distribuerar ARM-mallar finns i Distribuera resurser med ARM-mallar.

  3. 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  
    
  1. Inaktivera FIPS på en befintlig nodpool med hjälp av Bicep genom att uppdatera agentpoolresursen för att ange enableFIPS till false. Som exempel:

    param clusterName string
    param nodePoolName string = 'np'
    
    resource nodePool 'Microsoft.ContainerService/managedClusters/agentPools@2023-03-01' = {
      name: '${clusterName}/${nodePoolName}'
      properties: {
        enableFIPS: false
      }
    }
    
  2. Distribuera den uppdaterade Bicep-filen med hjälp av Azure CLI, Azure PowerShell eller Azure-portalen. Mer information om hur du distribuerar Bicep filer finns i Skapa Bicep filer med Visual Studio Code.

  3. 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  
    
  1. Uppdatera resursen azurerm_kubernetes_cluster_node_pool i main.tf genom att ange fips_enabled till false:

    resource "azurerm_kubernetes_cluster_node_pool" "example" {
      name                   = "np"
      kubernetes_cluster_id  = azurerm_kubernetes_cluster.example.id
      vm_size                = "Standard_D2s_v3"
      os_type                = "Linux"
      os_sku                 = "Ubuntu"
      node_count             = 3
      fips_enabled           = false
    }
    
  2. Använd den uppdaterade Terraform-konfigurationen med hjälp av terraform plan kommandona och terraform apply . Terraform identifierar ändringen till fips_enabled och utlöser den nödvändiga återimeringsåtgärden.

    terraform plan
    terraform apply
    
  3. Kontrollera att din nodpool inte har FIPS aktiverat med hjälp av kommandot az aks show och undersök 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  
    

Dagens meddelande

Du kan ersätta Dagens meddelande (MOTD) på Linux-noder med hjälp av --message-of-the-day flaggan när du skapar ett kluster eller lägger till en nodpool.

Skapa ett kluster och ersätt dagens meddelande med kommandot az aks create med --message-of-the-day flaggan inställd på sökvägen till den nya MOTD-filen.

az aks create --cluster-name myAKSCluster --resource-group myResourceGroup --message-of-the-day ./newMOTD.txt

Lägg till en nodpool och ersätt dagens meddelande genom att använda kommandot az aks nodepool add och ställa in --message-of-the-day flaggan till sökvägen för den nya MOTD-filen.

az aks nodepool add --name mynodepool1 --cluster-name myAKSCluster --resource-group myResourceGroup --message-of-the-day ./newMOTD.txt

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