Włączanie standardu FIPS (Federal Information Processing Standard) dla pul węzłów Azure Kubernetes Service (AKS)

Federal Information Processing Standard (FIPS) 140-3 to amerykański standard rządowy, który definiuje minimalne wymagania dotyczące zabezpieczeń modułów kryptograficznych w produktach i systemach technologii informatycznych. Azure Kubernetes Service (AKS) umożliwia tworzenie pul węzłów systemów Linux i Windows z włączoną obsługą standardu FIPS 140-3. Wdrożenia uruchomione w pulach węzłów z obsługą standardu FIPS używają tych modułów kryptograficznych do zapewnienia zwiększonych zabezpieczeń i pomagają spełnić wymagania mechanizmów kontroli zabezpieczeń w ramach zgodności z protokołem FedRAMP. Aby uzyskać więcej informacji na temat standardu FIPS 140-3, zobacz Federal Information Processing Standard (FIPS) 140.

Ważne

Począwszy od March 17, 2027, Azure Kubernetes Service (AKS) nie obsługuje już aktualizacji zabezpieczeń dla systemu Ubuntu 20.04. Wszystkie istniejące obrazy węzłów zostaną usunięte i nie będzie można skalować pul węzłów działających na systemie Ubuntu 20.04. Przeprowadź migrację do obsługiwanej wersji systemu Ubuntu, uaktualniając pule węzłów do platformy Kubernetes w wersji 1.35 lub nowszej. Aby uzyskać więcej informacji na temat tego wycofania, zobacz zgłoszenie GitHub dotyczące wycofania i ogłoszenie wycofania aktualizacji Azure. Aby być na bieżąco z ogłoszeniami i aktualizacjami, postępuj zgodnie z informacjami o wersji AKS.

Ważne

Począwszy od November 30, 2025 Azure Kubernetes Service (AKS) nie obsługuje już aktualizacji zabezpieczeń dla systemu Azure Linux 2.0. Obraz węzła systemu Azure Linux 2.0 jest zamrożony w wersji 202512.06.0. Od 31 marca 2026 r. obrazy węzłów zostaną usunięte i nie będzie można skalować pul węzłów. Przeprowadź migrację do obsługiwanej wersji systemu Azure Linux, aktualizując pule węzłów do obsługiwanej wersji Kubernetes lub migrując do osSku AzureLinux3. Aby uzyskać więcej informacji, zobacz problem GitHub dotyczący wycofania oraz ogłoszenie o wycofaniu aktualizacji Azure. Aby być na bieżąco z ogłoszeniami i aktualizacjami, postępuj zgodnie z informacjami o wersji AKS.

Wymagania wstępne

  • Aktywna subskrypcja Azure. Jeśli nie masz subskrypcji Azure, przed rozpoczęciem utwórz konto free.

  • Ustaw kontekst subskrypcji przy użyciu az account set polecenia . Przykład:

    az account set --subscription "00000000-0000-0000-0000-000000000000"
    
  • zainstalowano narzędzie kubectl. Możesz zainstalować ją lokalnie przy użyciu az aks install-cli polecenia .

Zgodność wersji

  • Azure CLI w wersji 2.32.0 lub nowszej zainstalowanej i skonfigurowanej. Aby dowiedzieć się, jaka wersja jest używana, uruchom polecenie az --version. Aby uzyskać więcej informacji na temat instalowania lub uaktualniania Azure CLI, zobacz Install Azure CLI.
  • Przykłady szablonów usługi ARM w tym artykule używają wersji interfejsu API 2023-03-01 dla Microsoft.ContainerService/managedClusters i Microsoft.ContainerService/managedClusters/agentPools.
  • Przykłady Bicep w tym artykule korzystają z wersji interfejsu API 2023-03-01 dla Microsoft.ContainerService/managedClusters i Microsoft.ContainerService/managedClusters/agentPools.
  • Przykłady Terraform w tym artykule korzystają z dostawcy AzureRM 3.x.
  • W przypadku ustawień Terraform FIPS użyj enable_fips_image on azurerm_kubernetes_cluster.default_node_pool i fips_enabled on azurerm_kubernetes_cluster_node_pool.

Ograniczenia

Pule węzłów z obsługą protokołu FIPS mają następujące ograniczenia:

  • Pule węzłów z obsługą protokołu FIPS wymagają platformy Kubernetes w wersji 1.19 lub nowszej.
  • Zaufane uruchamianie przy użyciu standardu FIPS jest obsługiwane tylko w przypadku systemu Ubuntu 22.04 w rozmiarach maszyn wirtualnych gen2.
  • Aby zaktualizować bazowe pakiety lub moduły używane na potrzeby programu FIPS, należy użyć uaktualnienia obrazu węzła.
  • Obrazy kontenerów w węzłach FIPS nie są oceniane pod kątem zgodności ze standardem FIPS.
  • Instalowanie udziału CIFS kończy się niepowodzeniem, ponieważ specyfikacje FIPS wyłączają niektóre moduły uwierzytelniania. Aby obejść ten problem, zobacz Błędy podczas montowania udziału plików w puli węzłów z włączoną obsługą FIPS.
  • Pule węzłów z włączoną obsługą FIPS z maszynami wirtualnymi Arm64 są obsługiwane tylko w systemie Azure Linux 3.0 lub nowszym.
  • Dodatek monitorujący usługi AKS wspiera pule węzłów z włączonym protokołem FIPS dla systemów Ubuntu, Azure Linux i Windows, począwszy od wersji 3.1.17 agenta monitorowania (Linux) oraz Win-3.1.17 (Windows).

Ważne

Obraz systemu Linux z obsługą standardu FIPS jest innym obrazem niż domyślny obraz systemu Linux używany dla pul węzłów opartych na systemie Linux.

Obrazy węzłów z włączonym FIPS mogą mieć inne wersje systemu operacyjnego i jądra niż obrazy, które nie obsługują FIPS. Cykl aktualizacji pul węzłów obsługujących FIPS i obrazów węzłów może się różnić od pul węzłów i obrazów, które nie są obsługiwane w FIPS.

Obsługiwane wersje systemu operacyjnego

Pule węzłów z obsługą protokołu FIPS można tworzyć we wszystkich obsługiwanych typach systemu operacyjnego (Linux i Windows). Jednak nie wszystkie wersje systemu operacyjnego obsługują pule węzłów z obsługą protokołu FIPS. Po wydaniu nowej wersji systemu operacyjnego zazwyczaj występuje okres oczekiwania przed jego zgodnością ze standardem FIPS.

Poniższa tabela zawiera obsługiwane wersje systemu operacyjnego dla pul węzłów z obsługą protokołu FIPS:

Typ systemu operacyjnego SKU systemu operacyjnego Zgodność ze standardem FIPS Wartość domyślna
Linux Ubuntu Obsługiwane w systemach Ubuntu 20.04 i Ubuntu 22.04 Domyślnie wyłączone
Linux Azure Linux Obsługiwane w systemie Azure Linux 3.0 Domyślnie wyłączone
Windows Windows Server 2022 Obsługiwane Włączone domyślnie
Windows Windows Server 2025 Obsługiwane Włączone domyślnie i nie można go wyłączyć

W przypadku żądania systemu Ubuntu z obsługą standardu FIPS, jeśli domyślna wersja systemu Ubuntu nie obsługuje standardu FIPS, usługa AKS domyślnie używa najnowszej obsługiwanej przez standard FIPS wersji systemu Ubuntu. Na przykład system Ubuntu 24.04 jest domyślny dla pul węzłów systemu Linux. Ponieważ system Ubuntu 24.04 nie obsługuje obecnie standardu FIPS, usługa AKS domyślnie używa systemu Ubuntu 22.04 dla pul węzłów z obsługą protokołu FIPS systemu Linux.

Uwaga

Wcześniej można było użyć interfejsu GetOSOptions API, aby określić, czy dany system operacyjny obsługuje standard FIPS. Interfejs GetOSOptions API jest teraz przestarzały i nie jest już uwzględniany w nowych wersjach interfejsu API usługi AKS, począwszy od wersji 2024-05-01.

Tworzenie pliku konfiguracji narzędzia Terraform

Pliki konfiguracji narzędzia Terraform definiują infrastrukturę, którą program Terraform tworzy i zarządza.

  1. Utwórz plik o nazwie main.tf i dodaj następujący kod, aby zdefiniować wersję programu Terraform i określić dostawcę Azure:

    terraform {
      required_version = ">= 1.0"
    
      required_providers {
        azurerm = {
          source  = "hashicorp/azurerm"
          version = "~> 3.0"
        }
      }
    }
    
    provider "azurerm" {
      features {}
    }
    
  2. Dodaj następujący kod do main.tf, aby utworzyć grupę zasobów Azure. W razie potrzeby możesz zmienić nazwę i lokalizację grupy zasobów.

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

Tworzenie klastra usługi AKS z domyślną pulą węzłów z obsługą protokołu FIPS

Podczas tworzenia nowego klastra usługi AKS można włączyć standard FIPS w domyślnej puli węzłów.

Podczas tworzenia większej liczby pul węzłów w klastrze, który ma już domyślną pulę węzłów z włączoną standardem FIPS, należy również włączyć protokół FIPS w nowych pulach węzłów przy użyciu parametru --enable-fips-image .

  1. Przy użyciu polecenia az aks create z parametrem --enable-fips-image, utwórz klaster AKS z włączonym standardem FIPS w domyślnej puli węzłów.

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --node-count 3 \
        --enable-fips-image
    
  2. Sprawdź, czy pula węzłów obsługuje FIPS za pomocą polecenia az aks show i wykonaj zapytanie o wartość enableFIPS w elemencie agentPoolProfiles.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
        -o table
    

    W poniższych przykładowych danych wyjściowych przedstawiono domyślną pulę węzłów z włączoną obsługą protokołu FIPS:

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

Włączenie programu FIPS podczas tworzenia klastra usługi AKS nie jest obecnie obsługiwane w portalu Azure. Aby utworzyć klaster z domyślną pulą węzłów z włączonym standardem FIPS, użyj instrukcji Azure CLI, szablonu ARM, Bicep lub narzędzia Terraform w tym artykule.

Podczas tworzenia więcej pul węzłów w klastrze, który ma już domyślną pulę węzłów z włączonym FIPS, należy również włączyć FIPS w nowych pulach węzłów, ustawiając enableFips do true.

  1. Utwórz klaster AKS z włączonym standardem FIPS w domyślnej puli węzłów przy użyciu szablonu ARM, ustawiając właściwość enableFips na wartość true w profilu puli agentów. Przykład:

    {
      "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. Wdróż szablon usługi ARM przy użyciu portalu Azure, Azure CLI lub Azure PowerShell. Aby uzyskać więcej informacji na temat wdrażania szablonów usługi ARM, zobacz Wdrażanie zasobów przy użyciu szablonów usługi ARM.

  3. Sprawdź, czy pula węzłów obsługuje FIPS za pomocą polecenia az aks show i wykonaj zapytanie o wartość enableFIPS w elemencie agentPoolProfiles.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
        -o table
    

    W poniższych przykładowych danych wyjściowych przedstawiono domyślną pulę węzłów z włączoną obsługą protokołu FIPS:

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

Podczas tworzenia więcej pul węzłów w klastrze, który ma już domyślną pulę węzłów z włączonym FIPS, należy również włączyć FIPS w nowych pulach węzłów, ustawiając enableFIPS do true.

  1. Utwórz klaster AKS z włączoną obsługą FIPS w domyślnej puli węzłów, używając Bicep i ustawiając enableFIPS na true w profilu puli agentów. Przykład:

    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. Wdróż plik Bicep przy użyciu Azure CLI, Azure PowerShell lub portalu Azure. Aby uzyskać więcej informacji na temat wdrażania plików Bicep, zobacz Tworzenie plików Bicep przy użyciu Visual Studio Code.

  3. Sprawdź, czy pula węzłów obsługuje FIPS za pomocą polecenia az aks show i wykonaj zapytanie o wartość enableFIPS w elemencie agentPoolProfiles.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
        -o table
    

    W poniższych przykładowych danych wyjściowych przedstawiono domyślną pulę węzłów z włączoną obsługą protokołu FIPS:

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

Podczas tworzenia większej liczby pul węzłów w klastrze, który ma już domyślną pulę węzłów z włączoną opcją FIPS, należy również włączyć FIPS w nowych pulach węzłów, ustawiając fips_enabled do true na azurerm_kubernetes_cluster_node_pool.

  1. Dodaj następujący kod do main.tf, aby utworzyć klaster usługi AKS z włączonym standardem FIPS w domyślnej puli węzłów.

    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. Zainicjuj Terraform w katalogu zawierającym plik main.tf przy użyciu polecenia terraform init.

    terraform init
    
  3. Utwórz plan wykonywania narzędzia Terraform przy użyciu terraform plan polecenia .

    terraform plan
    
  4. Zastosuj konfigurację przy użyciu terraform apply polecenia , aby wdrożyć klaster z domyślną pulą węzłów z obsługą protokołu FIPS.

    terraform apply
    
  5. Połącz się z klastrem usługi AKS przy użyciu polecenia [az aks get-credentials][az-aks-get-credentials].

    az aks get-credentials \
        --resource-group myResourceGroup \
        --name myAKSCluster
    
  6. Sprawdź, czy pula węzłów obsługuje FIPS za pomocą polecenia az aks show i wykonaj zapytanie o wartość enableFIPS w elemencie agentPoolProfiles.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
        -o table
    

    W poniższych przykładowych danych wyjściowych przedstawiono domyślną pulę węzłów z włączoną obsługą protokołu FIPS:

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

Aby uzyskać więcej informacji na temat zasobu azurerm_kubernetes_cluster, zobacz dokumentację dostawcy Terraform Azure.

Dodaj pulę węzłów z obsługą protokołu FIPS do istniejącego klastra AKS

  1. Dodaj pulę węzłów Linux z włączoną obsługą FIPS do istniejącego klastra przy użyciu polecenia az aks nodepool add z parametrem --enable-fips-image.

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name fipsnp \
        --enable-fips-image
    
  2. Sprawdź konfigurację puli węzłów, używając polecenia az aks show, i wykonaj zapytanie o wartość enableFIPS w agentPoolProfiles.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
        -o table
    

    Następujące przykładowe dane wyjściowe pokazują, że pula węzłów fipsnp jest włączona w trybie FIPS:

    Name       enableFips
    ---------  ------------
    fipsnp     True
    nodepool1  False  
    
  3. Wyświetl listę węzłów przy użyciu kubectl get nodes polecenia .

    kubectl get nodes
    

    W poniższych przykładowych danych wyjściowych przedstawiono listę węzłów w klastrze. Węzły, które zaczynają się od aks-fipsnp, są częścią puli węzłów z obsługą protokołu FIPS.

    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. Uruchom wdrożenie z interaktywną sesją na jednym z węzłów w puli węzłów z włączoną obsługą protokołu FIPS, używając polecenia kubectl debug.

    kubectl debug node/aks-fipsnp-12345678-vmss000000 -it --image=mcr.microsoft.com/dotnet/runtime-deps:6.0
    
  5. Z danych wyjściowych sesji interakcyjnej sprawdź, czy biblioteki kryptograficzne FIPS są włączone. Dane wyjściowe powinny wyglądać podobnie do następujących przykładowych danych wyjściowych:

    root@aks-fipsnp-12345678-vmss000000:/# cat /proc/sys/crypto/fips_enabled
    1
    

    Pule węzłów z obsługą protokołu FIPS mają również etykietę kubernetes.azure.com/fips_enabled=true , której wdrożenia mogą używać do określania lokalizacji docelowej tych pul węzłów.

Włączanie programu FIPS podczas dodawania puli węzłów systemu Linux obecnie nie jest obsługiwane w portalu Azure. Aby dodać pulę węzłów z obsługą standardu FIPS systemu Linux, użyj instrukcji Azure CLI, szablonu usługi ARM, Bicep lub narzędzia Terraform w tym artykule.

  1. Utwórz pulę węzłów systemu Linux z obsługą FIPS przy użyciu szablonu ARM, wdrażając zasób puli agentów z ustawioną właściwością enableFips na true. Przykład:

    {
      "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. Wdróż szablon usługi ARM przy użyciu portalu Azure, Azure CLI lub Azure PowerShell. Aby uzyskać więcej informacji na temat wdrażania szablonów usługi ARM, zobacz Wdrażanie zasobów przy użyciu szablonów usługi ARM.

  3. Sprawdź konfigurację puli węzłów, używając polecenia az aks show, i wykonaj zapytanie o wartość enableFIPS w agentPoolProfiles.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
        -o table
    

    Następujące przykładowe dane wyjściowe pokazują, że pula węzłów fipsnp jest włączona w trybie FIPS:

    Name       enableFips
    ---------  ------------
    fipsnp     True
    nodepool1  False  
    
  4. Wyświetl listę węzłów przy użyciu kubectl get nodes polecenia .

    kubectl get nodes
    

    W poniższych przykładowych danych wyjściowych przedstawiono listę węzłów w klastrze. Węzły, które zaczynają się od aks-fipsnp, są częścią puli węzłów z obsługą protokołu FIPS.

    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. Uruchom wdrożenie z interaktywną sesją na jednym z węzłów w puli węzłów z włączoną obsługą protokołu FIPS, używając polecenia kubectl debug.

    kubectl debug node/aks-fipsnp-12345678-vmss000000 -it --image=mcr.microsoft.com/dotnet/runtime-deps:6.0
    
  6. Z danych wyjściowych sesji interakcyjnej sprawdź, czy biblioteki kryptograficzne FIPS są włączone. Dane wyjściowe powinny wyglądać podobnie do następujących przykładowych danych wyjściowych:

    root@aks-fipsnp-12345678-vmss000000:/# cat /proc/sys/crypto/fips_enabled
    1
    

    Pule węzłów z obsługą protokołu FIPS mają również etykietę kubernetes.azure.com/fips_enabled=true , której wdrożenia mogą używać do określania lokalizacji docelowej tych pul węzłów.

  1. Utwórz pulę węzłów systemu Linux obsługującą protokół FIPS, korzystając z Bicep do wdrożenia zasobu puli agentów z ustawieniem enableFIPS na true. Przykład:

    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. Wdróż plik Bicep przy użyciu Azure CLI, Azure PowerShell lub portalu Azure. Aby uzyskać więcej informacji na temat wdrażania plików Bicep, zobacz Tworzenie plików Bicep przy użyciu Visual Studio Code.

  3. Sprawdź konfigurację puli węzłów, używając polecenia az aks show, i wykonaj zapytanie o wartość enableFIPS w agentPoolProfiles.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
        -o table
    

    Następujące przykładowe dane wyjściowe pokazują, że pula węzłów fipsnp jest włączona w trybie FIPS:

    Name       enableFips
    ---------  ------------
    fipsnp     True
    nodepool1  False  
    
  4. Wyświetl listę węzłów przy użyciu kubectl get nodes polecenia .

    kubectl get nodes
    

    W poniższych przykładowych danych wyjściowych przedstawiono listę węzłów w klastrze. Węzły, które zaczynają się od aks-fipsnp, są częścią puli węzłów z obsługą protokołu FIPS.

    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. Uruchom wdrożenie z interaktywną sesją na jednym z węzłów w puli węzłów z włączoną obsługą protokołu FIPS, używając polecenia kubectl debug.

    kubectl debug node/aks-fipsnp-12345678-vmss000000 -it --image=mcr.microsoft.com/dotnet/runtime-deps:6.0
    
  6. Z danych wyjściowych sesji interakcyjnej sprawdź, czy biblioteki kryptograficzne FIPS są włączone. Dane wyjściowe powinny wyglądać podobnie do następujących przykładowych danych wyjściowych:

    root@aks-fipsnp-12345678-vmss000000:/# cat /proc/sys/crypto/fips_enabled
    1
    

    Pule węzłów z obsługą protokołu FIPS mają również etykietę kubernetes.azure.com/fips_enabled=true , której wdrożenia mogą używać do określania lokalizacji docelowej tych pul węzłów.

  1. Dodaj następujący kod do main.tf, aby dodać pulę węzłów Linux z obsługą protokołu FIPS w klastrze AKS:

    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. Zastosuj zaktualizowaną konfigurację programu Terraform przy użyciu poleceń terraform plan i terraform apply.

    terraform plan
    terraform apply
    
  3. Połącz się z klastrem usługi AKS przy użyciu polecenia [az aks get-credentials][az-aks-get-credentials].

    az aks get-credentials \
        --resource-group myResourceGroup \
        --name myAKSCluster
    
  4. Sprawdź konfigurację puli węzłów, używając polecenia az aks show, i wykonaj zapytanie o wartość enableFIPS w agentPoolProfiles.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
        -o table
    

    Następujące przykładowe dane wyjściowe pokazują, że pula węzłów fipsnp jest włączona w trybie FIPS:

    Name       enableFips
    ---------  ------------
    fipsnp     True
    nodepool1  False  
    
  5. Wyświetl listę węzłów przy użyciu kubectl get nodes polecenia .

    kubectl get nodes
    

    W poniższych przykładowych danych wyjściowych przedstawiono listę węzłów w klastrze. Węzły, które zaczynają się od aks-fipsnp, są częścią puli węzłów z obsługą protokołu FIPS.

    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. Uruchom wdrożenie z interaktywną sesją na jednym z węzłów w puli węzłów z włączoną obsługą protokołu FIPS, używając polecenia kubectl debug.

    kubectl debug node/aks-fipsnp-12345678-vmss000000 -it --image=mcr.microsoft.com/dotnet/runtime-deps:6.0
    
  7. Z danych wyjściowych sesji interakcyjnej sprawdź, czy biblioteki kryptograficzne FIPS są włączone. Dane wyjściowe powinny wyglądać podobnie do następujących przykładowych danych wyjściowych:

    root@aks-fipsnp-12345678-vmss000000:/# cat /proc/sys/crypto/fips_enabled
    1
    

    Pule węzłów z obsługą protokołu FIPS mają również etykietę kubernetes.azure.com/fips_enabled=true , której wdrożenia mogą używać do określania lokalizacji docelowej tych pul węzłów.

Aby uzyskać więcej informacji na temat zasobu azurerm_kubernetes_cluster_node_pool, zobacz dokumentację dostawcy Terraform Azure.

Dodaj pulę węzłów systemu Linux z włączonymi funkcjami FIPS i Trusted Launch

Zaufane uruchamianie przy użyciu standardu FIPS jest obsługiwane tylko w przypadku systemu Ubuntu 22.04 w rozmiarach maszyn wirtualnych generacji 2.

Aby uzyskać więcej informacji o wymaganiach i zachowaniu zaufanego uruchamiania, zobacz Zaufane uruchamianie dla Azure Kubernetes Service (AKS).

  1. Dodaj pulę węzłów systemu Linux z włączonymi funkcjami FIPS i Zaufane uruchamianie, używając polecenia az aks nodepool add.

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name fipstlnp \
        --os-type Linux \
        --os-sku Ubuntu \
        --node-count 3 \
        --enable-fips-image \
        --enable-vtpm \
        --enable-secure-boot
    
  2. Zweryfikuj konfigurację puli węzłów za pomocą polecenia az aks show i sprawdź wartość enableFIPS w elemencie agentPoolProfiles.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
        -o table
    

    Następujące przykładowe dane wyjściowe pokazują, że pula węzłów fipstlnp jest włączona w trybie FIPS:

    Name       enableFips
    ---------  ------------
    fipstlnp   True
    nodepool1  False
    
  3. Sprawdź, czy pula węzłów korzysta z obrazu Trusted Launch.

    Zaufane węzły uruchamiania zwracają następujące dane wyjściowe:

    • Wersja obrazu Node zawierająca zarówno "TL", jak i "FIPS".
    • Parametr "Security-type" ma wartość "Trusted Launch".
    kubectl get nodes
    kubectl describe node {node-name} | grep -e node-image-version -e security-type
    

Dodanie puli węzłów systemu Linux z włączonymi funkcjami FIPS i Trusted Launch nie jest obecnie obsługiwane w portalu Azure. Aby dodać pulę węzłów systemu Linux z włączonym standardem FIPS i funkcją Trusted Launch, skorzystaj z instrukcji dotyczących interfejsu wiersza polecenia platformy Azure (Azure CLI), szablonu usługi Azure Resource Manager (szablonu ARM) lub narzędzia Bicep opisanych w tym artykule.

  1. Utwórz pulę węzłów systemu Linux z włączoną obsługą FIPS i funkcją Trusted Launch przy użyciu szablonu ARM. Wdróż zasób puli agentów z ustawieniem enableFips na true oraz zarówno enableVTPM, jak i enableSecureBoot na true. Przykład:

    {
      "type": "Microsoft.ContainerService/managedClusters/agentPools",
      "apiVersion": "2023-03-01",
      "name": "[concat(parameters('clusterName'), '/fipstlnp')]",
      "properties": {
        "count": 3,
        "vmSize": "Standard_D2s_v3",
        "osType": "Linux",
        "osSKU": "Ubuntu",
        "mode": "User",
        "enableFips": true,
        "securityProfile": {
          "enableVTPM": "true",
          "enableSecureBoot": "true"
        }
      }
    }
    
  2. Wdróż szablon usługi ARM przy użyciu portalu Azure, Azure CLI lub Azure PowerShell. Aby uzyskać więcej informacji na temat wdrażania szablonów usługi ARM, zobacz Wdrażanie zasobów przy użyciu szablonów usługi ARM.

  3. Zweryfikuj konfigurację puli węzłów za pomocą polecenia az aks show i sprawdź wartość enableFIPS w elemencie agentPoolProfiles.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
        -o table
    
  4. Sprawdź, czy pula węzłów używa obrazu Trusted Launch.

    Zaufane węzły uruchamiania mają następujące dane wyjściowe:

    • Wersja obrazu Node zawierająca zarówno "TL", jak i "FIPS".
    • Parametr "Security-type" ma wartość "Trusted Launch".
    kubectl get nodes
    kubectl describe node {node-name} | grep -e node-image-version -e security-type
    
  1. Utwórz pulę węzłów systemu Linux z włączoną obsługą FIPS i funkcją Trusted Launch za pomocą narzędzia Bicep. Wdróż zasób puli agentów z właściwościami enableFIPS, enableVTPM i enableSecureBoot ustawionymi na true. Przykład:

    param clusterName string
    param nodePoolName string = 'fipstlnp'
    
    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
        securityProfile: {
          enableVTPM: true
          enableSecureBoot: true
        }
      }
    }
    
  2. Wdróż plik Bicep przy użyciu Azure CLI, Azure PowerShell lub portalu Azure. Aby uzyskać więcej informacji na temat wdrażania plików Bicep, zobacz Tworzenie plików Bicep przy użyciu Visual Studio Code.

  3. Zweryfikuj konfigurację puli węzłów za pomocą polecenia az aks show i sprawdź wartość enableFIPS w elemencie agentPoolProfiles.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
        -o table
    
  4. Sprawdź, czy pula węzłów używa obrazu Trusted Launch.

    Zaufane węzły uruchamiania mają następujące dane wyjściowe:

    • Wersja obrazu Node zawierająca zarówno "TL", jak i "FIPS".
    • Parametr "Security-type" ma wartość "Trusted Launch".
    kubectl get nodes
    kubectl describe node {node-name} | grep -e node-image-version -e security-type
    

Dodanie puli węzłów systemu Linux z włączonym standardem FIPS i funkcją Trusted Launch przy użyciu narzędzia Terraform nie jest obecnie obsługiwane w dostawcy AzureRM, ponieważ nie udostępnia on ustawień puli węzłów dla funkcji Trusted Launch.

Aby dodać pulę węzłów systemu Linux z włączonym standardem FIPS i funkcją Trusted Launch, skorzystaj z instrukcji dotyczących interfejsu wiersza polecenia platformy Azure, szablonu ARM lub narzędzia Bicep opisanych w tym artykule.

Dodaj pulę węzłów Windows z obsługą FIPS

W tej sekcji dodajemy pulę węzłów Windows do istniejącego klastra usługi AKS. Windows Server 2022 i nowsze pule węzłów domyślnie włączają standard FIPS, nawet jeśli enableFips nie wyświetla True. Windows Server 2025 i nowszych pul węzłów nie obsługują wyłączania protokołu FIPS.

  1. Utwórz pulę węzłów Windows przy użyciu polecenia az aks nodepool add. W przeciwieństwie do pul węzłów opartych na systemie Linux, pule węzłów Windows współużytkują ten sam zestaw obrazów.

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name fipsnp \
        --enable-fips-image \
        --os-type Windows
    
  2. Sprawdź konfigurację puli węzłów, używając polecenia az aks show, i wykonaj zapytanie o wartość enableFIPS w agentPoolProfiles.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
        -o table
    
  3. Sprawdź, czy pule węzłów Windows mają dostęp do bibliotek kryptograficznych FIPS przez tworzenie połączenia RDP z węzłem Windows w puli węzłów i sprawdzenie rejestru. W aplikacji Uruchom wprowadź regedit.

  4. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy Wyszukaj w rejestrze.

  5. Jeśli Enabled ustawiono wartość 1, zostanie włączona funkcja FIPS.

    Zrzut ekranu przedstawia obraz edytora rejestru w zasadach algorytmów FIPS i jest on włączony.

    Pule węzłów z obsługą protokołu FIPS mają również etykietę kubernetes.azure.com/fips_enabled=true , której wdrożenia mogą używać do określania lokalizacji docelowej tych pul węzłów.

Nie ma środowiska portalu Azure do włączania lub wyłączania ustawień FIPS dla pul węzłów Windows. Wszystkie pule węzłów Windows utworzone przy użyciu portalu Azure mają włączone zabezpieczenia FIPS. Windows Server 2022 i nowsze pule węzłów domyślnie włączają protokół FIPS, a pule węzłów Windows Server 2025 i nowszych nie obsługują wyłączania protokołu FIPS.

  1. Utwórz pulę węzłów Windows przy użyciu szablonu ARM, wdrażając pulę zasobów agentów z osType ustawionym na Windows. Przykład:

    {
      "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. Wdróż szablon usługi ARM przy użyciu portalu Azure, Azure CLI lub Azure PowerShell. Aby uzyskać więcej informacji na temat wdrażania szablonów usługi ARM, zobacz Wdrażanie zasobów przy użyciu szablonów usługi ARM.

  3. Sprawdź konfigurację puli węzłów, używając polecenia az aks show, i wykonaj zapytanie o wartość enableFIPS w agentPoolProfiles.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
        -o table
    
  4. Sprawdź, czy pule węzłów Windows mają dostęp do bibliotek kryptograficznych FIPS przez tworzenie połączenia RDP z węzłem Windows w puli węzłów i sprawdzenie rejestru. W aplikacji Uruchom wprowadź regedit.

  5. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy Wyszukaj w rejestrze.

  6. Jeśli Enabled ustawiono wartość 1, zostanie włączona funkcja FIPS.

    Zrzut ekranu przedstawia obraz edytora rejestru w zasadach algorytmów FIPS i jest on włączony.

    Pule węzłów z obsługą protokołu FIPS mają również etykietę kubernetes.azure.com/fips_enabled=true , której wdrożenia mogą używać do określania lokalizacji docelowej tych pul węzłów.

  1. Utwórz pulę węzłów Windows przy użyciu Bicep, wdrażając zasób puli agentów z ustawieniem osType na Windows. Przykład:

    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. Wdróż plik Bicep przy użyciu Azure CLI, Azure PowerShell lub portalu Azure. Aby uzyskać więcej informacji na temat wdrażania plików Bicep, zobacz Tworzenie plików Bicep przy użyciu Visual Studio Code.

  3. Sprawdź konfigurację puli węzłów, używając polecenia az aks show, i wykonaj zapytanie o wartość enableFIPS w agentPoolProfiles.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
        -o table
    
  4. Sprawdź, czy pule węzłów Windows mają dostęp do bibliotek kryptograficznych FIPS przez tworzenie połączenia RDP z węzłem Windows w puli węzłów i sprawdzenie rejestru. W aplikacji Uruchom wprowadź regedit.

  5. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy Wyszukaj w rejestrze.

  6. Jeśli Enabled ustawiono wartość 1, zostanie włączona funkcja FIPS.

    Zrzut ekranu przedstawia obraz edytora rejestru w zasadach algorytmów FIPS i jest on włączony.

    Pule węzłów z obsługą protokołu FIPS mają również etykietę kubernetes.azure.com/fips_enabled=true , której wdrożenia mogą używać do określania lokalizacji docelowej tych pul węzłów.

  1. Dodaj następujący kod do main.tf, aby utworzyć pulę węzłów Windows w klastrze usługi AKS:

    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. Zastosuj zaktualizowaną konfigurację programu Terraform przy użyciu poleceń terraform plan i terraform apply.

    terraform plan
    terraform apply
    
  3. Połącz się z klastrem usługi AKS przy użyciu polecenia [az aks get-credentials][az-aks-get-credentials].

    az aks get-credentials \
        --resource-group myResourceGroup \
        --name myAKSCluster
    
  4. Sprawdź konfigurację puli węzłów, używając polecenia az aks show, i wykonaj zapytanie o wartość enableFIPS w agentPoolProfiles.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
        -o table
    
  5. Sprawdź, czy pule węzłów Windows mają dostęp do bibliotek kryptograficznych FIPS przez tworzenie połączenia RDP z węzłem Windows w puli węzłów i sprawdzenie rejestru. W aplikacji Uruchom wprowadź regedit.

  6. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy Wyszukaj w rejestrze.

  7. Jeśli Enabled ustawiono wartość 1, zostanie włączona funkcja FIPS.

    Zrzut ekranu przedstawia obraz edytora rejestru w zasadach algorytmów FIPS i jest on włączony.

    Pule węzłów z obsługą protokołu FIPS mają również etykietę kubernetes.azure.com/fips_enabled=true , której wdrożenia mogą używać do określania lokalizacji docelowej tych pul węzłów.

Aktualizowanie istniejącej puli węzłów w celu włączenia lub wyłączenia protokołu FIPS

Istniejące pule węzłów systemu Linux można zaktualizować, aby włączyć lub wyłączyć protokół FIPS. Jeśli planujesz migrację pul węzłów z innych niż FIPS do fiPS, najpierw sprawdź, czy aplikacja działa prawidłowo w środowisku testowym przed migracją do środowiska produkcyjnego. Weryfikowanie aplikacji w środowisku testowym powinno zapobiegać problemom spowodowanym blokowaniem przez jądro FIPS słabych algorytmów szyfrowania, takich jak algorytm MD4, który nie jest zgodny ze standardem FIPS.

Uwaga

Podczas aktualizowania istniejącej puli węzłów systemu Linux w celu włączenia lub wyłączenia standardu FIPS, aktualizacja puli węzłów przechodzi między obrazem FIPS i non-FIPS. Ta aktualizacja puli węzłów wyzwala odtworzenie obrazu w celu ukończenia aktualizacji. Może to spowodować, że aktualizacja puli węzłów potrwa kilka minut.

Wymagania wstępne dotyczące aktualizowania istniejącej puli węzłów

Azure CLI w wersji 2.64.0 lub nowszej. Aby dowiedzieć się, jaka wersja jest używana, uruchom polecenie az --version. Jeśli musisz zainstalować lub uaktualnić, zobacz Install Azure CLI.

Włącz FIPS na istniejącej puli węzłów

Istniejące pule węzłów systemu Linux można zaktualizować, aby włączyć standard FIPS. Po zaktualizowaniu istniejącej puli węzłów obraz węzła zmieni się z bieżącego obrazu na zalecany obraz FIPS tej samej jednostki SKU systemu operacyjnego.

  1. Zaktualizuj pulę węzłów przy użyciu az aks nodepool update polecenia z parametrem --enable-fips-image .

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

    To polecenie natychmiast wykonuje ponowne obrazowanie puli węzłów w celu wdrożenia systemu operacyjnego zgodnego ze standardem FIPS. To ponowne obrazowanie odbywa się podczas aktualizacji puli węzłów. Nie są wymagane żadne dodatkowe kroki.

  2. Sprawdź, czy pula węzłów obsługuje FIPS za pomocą polecenia az aks show i wykonaj zapytanie o wartość enableFIPS w elemencie agentPoolProfiles.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
        -o table
    

    Następujące przykładowe dane wyjściowe pokazują, że pula węzłów np jest włączona w trybie FIPS:

    Name       enableFips
    ---------  ------------
    np         True
    nodepool1  False  
    

Włączenie standardu FIPS w istniejącej puli węzłów obecnie jest nieobsługiwane w portalu Azure. Aby włączyć FIPS w istniejącej puli węzłów, skorzystaj z instrukcji Azure CLI, szablonu ARM, Bicep lub Terraform zawartych w tym artykule.

  1. Włącz standard FIPS w istniejącej puli węzłów za pomocą szablonu ARM, aktualizując profil puli agentów, aby ustawić właściwość enableFips na true. Przykład:

    {
      "type": "Microsoft.ContainerService/managedClusters/agentPools",
      "name": "[concat(parameters('clusterName'), '/np')]",
      "apiVersion": "2023-03-01",
      "properties": {
        "enableFips": true
      }
    }
    
  2. Wdróż zaktualizowany szablon przy użyciu portalu Azure, Azure CLI lub Azure PowerShell. Aby uzyskać więcej informacji na temat wdrażania szablonów usługi ARM, zobacz Wdrażanie zasobów przy użyciu szablonów usługi ARM.

  3. Sprawdź, czy pula węzłów obsługuje FIPS za pomocą polecenia az aks show i wykonaj zapytanie o wartość enableFIPS w elemencie agentPoolProfiles.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
        -o table
    

    Następujące przykładowe dane wyjściowe pokazują, że pula węzłów np jest włączona w trybie FIPS:

    Name       enableFips
    ---------  ------------
    np         True
    nodepool1  False  
    
  1. Włącz program FIPS w istniejącej puli węzłów przy użyciu Bicep, aktualizując zasób puli agentów, aby ustawić enableFIPS na wartość true. Przykład:

    param clusterName string
    param nodePoolName string = 'np'
    
    resource nodePool 'Microsoft.ContainerService/managedClusters/agentPools@2023-03-01' = {
      name: '${clusterName}/${nodePoolName}'
      properties: {
        enableFIPS: true
      }
    }
    
  2. Wdróż zaktualizowany plik Bicep przy użyciu Azure CLI, Azure PowerShell lub portalu Azure. Aby uzyskać więcej informacji na temat wdrażania plików Bicep, zobacz Tworzenie plików Bicep przy użyciu Visual Studio Code.

  3. Sprawdź, czy pula węzłów ma włączoną obsługę FIPS, używając polecenia az aks show i zapytaj o wartość enableFIPS w agentPoolProfiles.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
        -o table
    

    Następujące przykładowe dane wyjściowe pokazują, że pula węzłów np jest włączona w trybie FIPS:

    Name       enableFips
    ---------  ------------
    np         True
    nodepool1  False  
    
  1. Zaktualizuj zasób azurerm_kubernetes_cluster_node_pool w main.tf, ustawiając fips_enabled na 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. Zastosuj zaktualizowaną konfigurację programu Terraform przy użyciu poleceń terraform plan i terraform apply. Narzędzie Terraform wykrywa zmianę fips_enabled i następnie wyzwala niezbędną operację reimage.

    terraform plan
    terraform apply
    
  3. Połącz się z klastrem usługi AKS przy użyciu polecenia [az aks get-credentials][az-aks-get-credentials].

    az aks get-credentials \
        --resource-group myResourceGroup \
        --name myAKSCluster
    
  4. Sprawdź, czy pula węzłów obsługuje FIPS za pomocą polecenia az aks show i wykonaj zapytanie o wartość enableFIPS w elemencie agentPoolProfiles.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
        -o table
    

    Następujące przykładowe dane wyjściowe pokazują, że pula węzłów np jest włączona w trybie FIPS:

    Name       enableFips
    ---------  ------------
    np         True
    nodepool1  False  
    

Wyłącz FIPS w istniejącej puli węzłów

Istniejące pule węzłów systemu Linux można zaktualizować, aby wyłączyć protokół FIPS. Podczas aktualizowania istniejącej puli węzłów obraz węzła zmienia się z bieżącego obrazu FIPS na zalecany obraz inny niż FIPS tej samej jednostki SKU systemu operacyjnego. Zmiana obrazu węzła następuje po ponownym obrazie.

  1. Zaktualizuj pulę węzłów systemu Linux za pomocą polecenia az aks nodepool update z parametrem --disable-fips-image.

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

    To polecenie natychmiast wykonuje ponowne obrazowanie puli węzłów w celu wdrożenia systemu operacyjnego zgodnego ze standardem FIPS. To ponowne obrazowanie odbywa się podczas aktualizacji puli węzłów. Nie są wymagane żadne dodatkowe kroki.

  2. Sprawdź, czy pula węzłów nie jest z FIPS za pomocą polecenia az aks show i wykonaj zapytanie dotyczące wartości enableFIPS w agentPoolProfiles.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
        -o table
    

    Następujące przykładowe dane wyjściowe pokazują, że pula węzłów np nie jest włączona w trybie FIPS:

    Name       enableFips
    ---------  ------------
    np         False
    nodepool1  False  
    

Wyłączenie FIPS w istniejącej puli węzłów nie jest obecnie obsługiwane w portalu Azure. Aby wyłączyć standard FIPS w istniejącej puli węzłów, użyj Azure CLI, szablonu ARM, Bicep lub Terraform zgodnie z instrukcjami zawartymi w tym artykule.

  1. Wyłącz protokół FIPS w istniejącej puli węzłów przy użyciu szablonu usługi ARM, aktualizując profil puli agentów, aby ustawić enableFips właściwość na false. Przykład:

    {
      "type": "Microsoft.ContainerService/managedClusters/agentPools",
      "name": "[concat(parameters('clusterName'), '/np')]",
      "apiVersion": "2023-03-01",
      "properties": {
        "enableFips": false
      }
    }
    
  2. Wdróż zaktualizowany szablon przy użyciu portalu Azure, Azure CLI lub Azure PowerShell. Aby uzyskać więcej informacji na temat wdrażania szablonów usługi ARM, zobacz Wdrażanie zasobów przy użyciu szablonów usługi ARM.

  3. Sprawdź, czy pula węzłów nie jest z FIPS za pomocą polecenia az aks show i wykonaj zapytanie dotyczące wartości enableFIPS w agentPoolProfiles.

    az aks show \
      --resource-group myResourceGroup \
      --name myAKSCluster \
      --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
      -o table
    

    Następujące przykładowe dane wyjściowe pokazują, że pula węzłów np nie jest włączona w trybie FIPS:

    Name       enableFips
    ---------  ------------
    np         False
    nodepool1  False  
    
  1. Wyłącz program FIPS w istniejącej puli węzłów przy użyciu Bicep, aktualizując zasób puli agentów, aby ustawić enableFIPS na wartość false. Przykład:

    param clusterName string
    param nodePoolName string = 'np'
    
    resource nodePool 'Microsoft.ContainerService/managedClusters/agentPools@2023-03-01' = {
      name: '${clusterName}/${nodePoolName}'
      properties: {
        enableFIPS: false
      }
    }
    
  2. Wdróż zaktualizowany plik Bicep przy użyciu Azure CLI, Azure PowerShell lub portalu Azure. Aby uzyskać więcej informacji na temat wdrażania plików Bicep, zobacz Tworzenie plików Bicep przy użyciu Visual Studio Code.

  3. Sprawdź, czy pula węzłów nie jest z FIPS za pomocą polecenia az aks show i wykonaj zapytanie dotyczące wartości enableFIPS w agentPoolProfiles.

    az aks show \
      --resource-group myResourceGroup \
      --name myAKSCluster \
      --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
      -o table
    

    Następujące przykładowe dane wyjściowe pokazują, że pula węzłów np nie jest włączona w trybie FIPS:

    Name       enableFips
    ---------  ------------
    np         False
    nodepool1  False  
    
  1. Zaktualizuj zasób azurerm_kubernetes_cluster_node_pool w main.tf, ustawiając fips_enabled na 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. Zastosuj zaktualizowaną konfigurację programu Terraform przy użyciu poleceń terraform plan i terraform apply. Narzędzie Terraform wykrywa zmianę fips_enabled i następnie wyzwala niezbędną operację reimage.

    terraform plan
    terraform apply
    
  3. Sprawdź, czy pula węzłów nie jest z FIPS za pomocą polecenia az aks show i wykonaj zapytanie dotyczące wartości enableFIPS w agentPoolProfiles.

    az aks show \
      --resource-group myResourceGroup \
      --name myAKSCluster \
      --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
      -o table
    

    Następujące przykładowe dane wyjściowe pokazują, że pula węzłów np nie jest włączona w trybie FIPS:

    Name       enableFips
    ---------  ------------
    np         False
    nodepool1  False  
    

Wiadomość dnia

Komunikat dnia (MOTD) w węzłach systemu Linux można zastąpić za pomocą --message-of-the-day flagi podczas tworzenia klastra lub dodawania puli węzłów.

Utwórz klaster i zastąp komunikat dnia za pomocą az aks create polecenia --message-of-the-day flagą ustawioną na ścieżkę nowego pliku MOTD.

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

Dodaj pulę węzłów i zastąp komunikat dnia używając polecenia az aks nodepool add z flagą --message-of-the-day ustawioną na ścieżkę nowego pliku MOTD.

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