Abilitare FIPS (Federal Information Processing Standard) per i cluster Servizio Azure Kubernetes (AKS) (anteprima)

Federal Information Processing Standard (FIPS) è uno standard del governo degli Stati Uniti che definisce i requisiti minimi di sicurezza per i moduli crittografici nei prodotti e nei sistemi informatici. Questo articolo descrive come abilitare la modalità FIPS a livello di cluster per Servizio Azure Kubernetes (AKS). FIPS a livello di cluster impone che ogni pool di nodi nel cluster usi un'immagine del sistema operativo abilitata per FIPS e blocchi i componenti gestiti da AKS non conformi a FIPS. Questa funzionalità è destinata ai clienti con requisiti di conformità, ad esempio FedRAMP, che necessitano di un unico modo dichiarativo per garantire l'utilizzo di FIPS nel cluster AKS. Per altre informazioni su FIPS, vedere Federal Information Processing Standard (FIPS) 140.

Importante

Le funzionalità in anteprima di AKS sono disponibili in modalità self-service, su base volontaria. Le anteprime vengono fornite "così come sono" e "come disponibili" e sono escluse dai contratti di servizio e dalla garanzia limitata. Le anteprime di AKS sono coperte solo parzialmente dall'assistenza clienti nei limiti del possibile. Di conseguenza, queste funzionalità non sono destinate all'uso in produzione. Per altre informazioni, vedere gli articoli di supporto seguenti:

Che cos'è la modalità FIPS in AKS?

FIPS 140-2/140-3 definisce gli standard del governo degli Stati Uniti per i moduli crittografici. Quando si abilita la modalità FIPS in un cluster del servizio Azure Kubernetes:

  • Tutti i pool di nodi nel cluster, inclusi i pool di nodi Windows, devono usare immagini del sistema operativo abilitate per FIPS.
  • Il servizio Azure Kubernetes blocca la creazione di pool di nodi non FIPS.
  • AKS blocca componenti aggiuntivi, funzionalità ed estensioni gestiti da AKS che non sono convalidati per la conformità FIPS.

FiPS a livello di cluster (properties.enableFIPS) è separato da FIPS in singoli pool di nodi (enableFIPS in ogni pool di agenti). FiPS a livello di cluster richiede che ogni pool di nodi sia abilitato per FIPS, ma la disabilitazione di FIPS a livello di cluster non disabilita FIPS nei pool di nodi. Per altre informazioni sui pool di nodi abilitati per FIPS, vedere Abilitare FIPS per i pool di nodi del servizio Azure Kubernetes.

Importante

La modalità FIPS si applica a infrastruttura e componenti gestiti da AKS. I clienti rimangono responsabili di garantire che i propri container di applicazioni usino la crittografia conforme a FIPS.

Prerequisites

  • Una sottoscrizione di Azure attiva. Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
  • interfaccia della riga di comando di Azure versione 2.86.0 o successiva installata e configurata. Per trovare la versione, eseguire az --version. Per altre informazioni sull'installazione o l'aggiornamento della interfaccia della riga di comando di Azure, vedere Installare interfaccia della riga di comando di Azure.
  • L'ultima versione dell'aks-previewestensione dell'interfaccia della riga di comando di Azure. I parametri --enable-fips e --disable-fips sono disponibili solo nell'estensione aks-preview. Per istruzioni, vedere Installare l'estensione aks-preview interfaccia della riga di comando di Azure.
  • L'estensione k8s-extension interfaccia della riga di comando di Azure, usata per elencare e rimuovere le estensioni del cluster. Installala eseguendo az extension add --upgrade --name k8s-extension.
  • kubectl installato. È possibile installarlo in locale usando il az aks install-cli comando .
  • Il flag di funzionalità EnableFIPSPreview registrato nella tua sottoscrizione. Per le istruzioni, vedere Registrare il EnableFIPSPreview feature flag.
  • Kubernetes versione 1.35.0 o successiva. Per visualizzare le versioni disponibili nella tua regione, usare il comando az aks get-versions. Un cluster abilitato per FIPS in una versione precedente non è coperto da alcuna eccezione: il servizio Azure Kubernetes rifiuta ogni aggiornamento al cluster fino a quando non viene aggiornato alla versione 1.35.0 o successiva o non viene disabilitato FIPS.
  • Se si usano modelli di Azure Resource Manager (ARM) o l'API REST, usare la versione dell'API 2026-03-02-preview o successiva per Microsoft.ContainerService/managedClusters e Microsoft.ContainerService/managedClusters/agentPools.

Installare l'estensione aks-preview interfaccia della riga di comando di Azure

  1. Installare l'estensione aks-preview usando il az extension add comando .

    az extension add --name aks-preview
    
  2. Eseguire l'aggiornamento alla versione più recente dell'estensione usando il az extension update comando .

    az extension update --name aks-preview
    

Impostare le variabili di ambiente

Impostare le variabili di ambiente seguenti per le risorse usate in questo articolo. Sostituire i valori segnaposto con i propri. Impostare quindi il contesto della sottoscrizione usando il az account set comando .

export SUBSCRIPTION_ID="<subscription-id>"
export RESOURCE_GROUP="myResourceGroup"
export CLUSTER_NAME="myAKSCluster"
export NODE_POOL_NAME="fipsnp"

az account set --subscription $SUBSCRIPTION_ID

Registrare il flag di funzionalità EnableFIPSPreview

  1. Registra il feature flag EnableFIPSPreview usando il comando az feature register.

    az feature register --namespace "Microsoft.ContainerService" --name "EnableFIPSPreview"
    

    Sono necessari alcuni minuti per visualizzare lo stato Registered.

  2. Verificare lo stato della registrazione usando il az feature show comando .

    az feature show --namespace "Microsoft.ContainerService" --name "EnableFIPSPreview"
    
  3. Quando lo stato è Registrato, aggiornare la registrazione del Microsoft.ContainerService provider di risorse usando il az provider register comando .

    az provider register --namespace Microsoft.ContainerService
    

Limitations

Quando si usano cluster del servizio Azure Kubernetes abilitati per FIPS, si applicano le limitazioni seguenti.

Componenti bloccati

Alcuni componenti gestiti da AKS non sono ancora compilati con librerie di crittografia conformi a FIPS. Non è possibile abilitare questi componenti in un cluster abilitato per FIPS e non è possibile abilitare FIPS in un cluster che li usa. Nella tabella seguente sono elencati i componenti bloccati e il comando interfaccia della riga di comando di Azure per disabilitare ognuno di essi. Aggiungere --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME a ogni az aks comando.

Importante

Questo elenco si applica solo ai componenti gestiti da AKS. I contenitori di applicazioni del cliente non vengono convalidati da AKS.

Componente bloccato Disabilita comando
cost-analysis az aks update --disable-cost-analysis
approuting az aks approuting disable
defender (monitoraggio della sicurezza di Microsoft Defender for Containers) az aks update --disable-defender
azure-monitor (metriche di Prometheus gestite, informazioni dettagliate sui contenitori e monitoraggio delle applicazioni) az aks update --disable-azure-monitor-metrics
az aks disable-addons --addons monitoring
az aks update --disable-azure-monitor-app-monitoring
blob-csi az aks update --disable-blob-driver
ACCSGXDevicePlugin az aks disable-addons --addons confcom
IngressApplicationGateway az aks disable-addons --addons ingress-appgw
calico, azure-npm az aks update --network-policy none
cilium Non è possibile rimuovere Cilium da un cluster esistente. Creare un nuovo cluster.
acns-observability az aks update --disable-acns oppure az aks update --disable-acns-observability
OpenServiceMesh az aks disable-addons --addons open-service-mesh
kaito az aks update --disable-ai-toolchain-operator
Revisioni del componente aggiuntivo service mesh basato su Istio precedenti a asm-1-26 Eseguire l'aggiornamento alla revisione asm-1-26 o successiva. Per istruzioni, vedere Aggiornare il componente aggiuntivo Service Mesh basato su Istio.
Installazione del driver GPU di Windows Per aggiungere un pool di nodi GPU Windows, ignorare l'installazione del driver usando --gpu-driver none.
Estensioni del cluster non conformi a FIPS, ad esempio Flux (GitOps). Vedere la colonna FIPS nella matrice delle funzionalità di estensione. az k8s-extension delete --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --cluster-type managedClusters --name <extension-name>

Se un'automazione, ad esempio un'assegnazione di Criteri di Azure, tenta di installare un'estensione non conforme a FIPS in un cluster abilitato per FIPS, AKS rifiuta l'installazione e l'estensione mostra uno Failed stato di provisioning. Il cluster non è interessato.

Creare un cluster del servizio Azure Kubernetes abilitato per FIPS

È possibile abilitare FIPS quando si crea il cluster usando il --enable-fips flag . Il cluster non può usare nessuno dei componenti bloccati.

  1. Creare un cluster AKS abilitato per FIPS usando il az aks create comando con il --enable-fips parametro.

    az aks create \
        --name $CLUSTER_NAME \
        --resource-group $RESOURCE_GROUP \
        --kubernetes-version 1.35 \
        --enable-fips \
        --generate-ssh-keys
    
  2. Verificare che il cluster sia abilitato per FIPS usando il az aks show comando e la query per il valore enableFips .

    az aks show \
        --name $CLUSTER_NAME \
        --resource-group $RESOURCE_GROUP \
        --query "enableFips"
    

    L'output di esempio seguente mostra che il cluster è abilitato per FIPS:

    true
    

    Se il comando non restituisce true, non è stata installata l'estensione aks-preview al momento della creazione del cluster. Senza l'estensione, il interfaccia della riga di comando di Azure considera --enable-fips come --enable-fips-image e abilita FIPS solo nel pool di nodi predefinito. Installare l'estensione aks-previewe quindi abilitare FIPS nel cluster esistente.

  3. La creazione di un cluster abilitato per FIPS crea automaticamente un pool di nodi abilitato per FIPS. È possibile verificarlo esaminando la configurazione del pool di nodi usando il az aks show comando e la query per il valore enableFips in agentPoolProfiles.

    az aks show \
        --name $CLUSTER_NAME \
        --resource-group $RESOURCE_GROUP \
        --query "agentPoolProfiles[].{Name:name, enableFips:enableFips}" \
        --output table
    

    L'output di esempio seguente mostra che il pool di nodi predefinito è abilitato per FIPS:

    Name       EnableFips
    ---------  ----------
    nodepool1  True
    

Aggiornare un cluster AKS esistente per abilitare o disabilitare FIPS

Per abilitare FIPS in un cluster esistente, preparare prima il cluster e quindi aggiornarlo.

Prepara il cluster per FIPS

Completare i passaggi seguenti prima di abilitare FIPS a livello di cluster.

  1. Assicurarsi che il cluster esegua Kubernetes versione 1.35.0 o successiva. Se il cluster esegue una versione precedente, aggiornare prima il cluster. Per istruzioni, vedere Aggiornare un cluster AKS.

  2. Assicurarsi che ogni pool di nodi sia abilitato per FIPS. Aggiornare ogni pool di nodi non FIPS per usare immagini abilitate per FIPS. Per istruzioni, vedere Aggiornare un pool di nodi esistente per abilitare o disabilitare FIPS.

    i pool di nodi di Windows Server 2022 sono già in esecuzione con FIPS abilitato nel sistema operativo, ma la relativa proprietà enableFips è False, a meno che non la si imposti. Esegui az aks nodepool update --enable-fips-image anche in questi pool di nodi. Per questi pool di nodi, l'aggiornamento imposta la proprietà e non modifica l'immagine dei nodi.

  3. Disabilitare o rimuovere ogni componente elencato in Componenti bloccati, incluse le estensioni del cluster non conformi a FIPS. Per elencare le estensioni nel cluster, usare il az k8s-extension list comando . Per rimuovere un'estensione, usare il az k8s-extension delete comando . Per altre informazioni, vedere Gestire le estensioni di AKS.

    az k8s-extension list \
        --resource-group $RESOURCE_GROUP \
        --cluster-name $CLUSTER_NAME \
        --cluster-type managedClusters \
        --query "[].{name:name, extensionType:extensionType, state:provisioningState}" \
        --output table
    

    Note

    Un'estensione può essere installata automaticamente dopo la creazione del cluster, ad esempio da un'assegnazione Criteri di Azure. Elencare di nuovo le estensioni prima di abilitare FIPS. Se un'assegnazione continua a installare un'estensione non conforme a FIPS, esentare il cluster da tale assegnazione.

Aggiornare un cluster esistente per abilitare FIPS

Dopo aver preparato il cluster, abilitare FIPS. Se il cluster non soddisfa un requisito, il servizio Azure Kubernetes rifiuta l'aggiornamento e il messaggio di errore descrive la causa. Per informazioni, vedere Risolvere gli errori FIPS a livello di cluster.

  1. Aggiornare un cluster AKS usando il comando az aks update con il parametro --enable-fips.

    az aks update \
        --name $CLUSTER_NAME \
        --resource-group $RESOURCE_GROUP \
        --enable-fips
    
  2. Verificare che il cluster sia abilitato per FIPS usando il az aks show comando e la query per il valore enableFips .

    az aks show \
        --name $CLUSTER_NAME \
        --resource-group $RESOURCE_GROUP \
        --query "enableFips"
    

    L'output di esempio seguente mostra che il cluster è abilitato per FIPS:

    true
    

Aggiornare un cluster esistente per disabilitare FIPS

È possibile aggiornare un cluster esistente per disabilitare FIPS. Quando si disabilita la modalità FIPS:

  • L'applicazione di FIPS a livello di cluster è stata rimossa.
  • I pool di nodi esistenti non vengono modificati.
  • È possibile eseguire pool di nodi FIPS e non FIPS nello stesso cluster.
  • È possibile distribuire estensioni e componenti aggiuntivi del servizio Azure Kubernetes bloccati in precedenza quando FIPS era abilitato.
  • I nuovi pool di nodi non devono più essere abilitati per FIPS.

Note

La disabilitazione di FIPS non converte automaticamente i pool di nodi abilitati per FIPS in pool non FIPS. Se necessario, è possibile aggiornare i pool di nodi singolarmente. Per istruzioni, vedere Disabilitare FIPS in un pool di nodi esistente. I pool di nodi di Windows Server 2025 non possono disabilitare FIPS.

  1. Aggiornare un cluster AKS usando il comando az aks update con il parametro --disable-fips.

    az aks update \
        --name $CLUSTER_NAME \
        --resource-group $RESOURCE_GROUP \
        --disable-fips
    
  2. Verificare che il cluster non sia abilitato per FIPS usando il az aks show comando e la query per il valore enableFips .

    az aks show \
        --name $CLUSTER_NAME \
        --resource-group $RESOURCE_GROUP \
        --query "enableFips"
    

    L'output di esempio seguente mostra che il cluster non è abilitato per FIPS:

    false
    

Aggiungere un pool di nodi a un cluster del servizio Azure Kubernetes abilitato per FIPS

Ogni nuovo pool di nodi in un cluster abilitato per FIPS deve essere abilitato per FIPS. Aggiungere un pool di nodi usando il az aks nodepool add comando con il --enable-fips-image parametro . Se si omette --enable-fips-image, il servizio Azure Kubernetes rifiuta la richiesta.

az aks nodepool add \
    --resource-group $RESOURCE_GROUP \
    --cluster-name $CLUSTER_NAME \
    --name $NODE_POOL_NAME \
    --enable-fips-image

Risolvere gli errori FIPS a livello di cluster

Quando una richiesta è in conflitto con FIPS a livello di cluster, il servizio Azure Kubernetes lo rifiuta, in genere con un BadRequest errore che descrive la causa. Per i messaggi di errore comuni e come risolverli, vedere Risolvere gli errori FIPS a livello di cluster in AKS.

Pulire le risorse

Quando non sono più necessarie le risorse create in questo articolo, eliminare il gruppo di risorse e tutte le risorse correlate usando il az group delete comando .

az group delete --name $RESOURCE_GROUP --yes --no-wait