Activer Federal Information Processing Standard (FIPS) pour les clusters Azure Kubernetes Service (AKS) (préversion)

La norme FIPS (Federal Information Processing Standard) est une norme du gouvernement américain qui définit les exigences de sécurité minimales pour les modules de chiffrement dans les produits et systèmes informatiques. Cet article explique comment activer le mode FIPS au niveau du cluster pour Azure Kubernetes Service (AKS). FIPS au niveau du cluster impose que chaque pool de nœuds du cluster utilise une image de système d’exploitation compatible FIPS et bloque les composants gérés par AKS qui ne sont pas conformes à FIPS. Cette fonctionnalité est destinée aux clients ayant des exigences de conformité telles que FedRAMP qui ont besoin d’un moyen déclaratif unique pour garantir l’utilisation de FIPS sur leur cluster AKS. Pour plus d’informations sur FIPS, consultez Federal Information Processing Standard (FIPS) 140.

Important

Les fonctionnalités d’évaluation AKS sont disponibles en libre-service et font l’objet d’un abonnement. Les versions préliminaires sont fournies « en l’état » et « selon leur disponibilité » et ne sont pas couvertes par les accords de niveau de service ni par la garantie limitée. Les versions préliminaires d’AKS sont partiellement couvertes par le support client, dans la limite du raisonnable. Par conséquent, ces fonctionnalités ne sont pas destinées à une utilisation en production. Pour plus d’informations, consultez les articles de support suivants :

Qu’est-ce que le mode FIPS dans AKS ?

FIPS 140-2/140-3 définit les normes gouvernementales américaines pour les modules de chiffrement. Lorsque vous activez le mode FIPS sur un cluster AKS :

  • Tous les pools de nœuds du cluster, y compris les pools de nœuds Windows, doivent utiliser des images de système d’exploitation compatibles FIPS.
  • AKS bloque la création de pools de nœuds non FIPS.
  • AKS bloque les modules complémentaires, fonctionnalités et extensions gérés par AKS qui ne sont pas validés pour la conformité FIPS.

FIPS au niveau du cluster (properties.enableFIPS) est distinct de FIPS sur des pools de nœuds individuels (enableFIPS sur chaque pool d’agents). FIPS au niveau du cluster nécessite que chaque pool de nœuds ait FIPS activé, mais la désactivation de FIPS au niveau du cluster ne désactive pas FIPS sur vos pools de nœuds. Pour plus d’informations sur les pools de nœuds compatibles FIPS, consultez Activer FIPS pour les pools de nœuds AKS.

Important

Le mode FIPS s’applique à l’infrastructure et aux composants gérés par AKS. Les clients restent responsables de la garantie que leurs propres conteneurs d’applications utilisent le chiffrement conforme à FIPS.

Prerequisites

  • Un abonnement Azure actif. Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.
  • Azure CLI version 2.86.0 ou ultérieure installé et configuré. Pour connaître la version, exécutez az --version. Pour plus d’informations sur l’installation ou la mise à niveau du Azure CLI, consultez Install Azure CLI.
  • La dernière version de l’extension Azure CLI aks-preview. Les --enable-fips paramètres et --disable-fips les paramètres sont disponibles uniquement dans l’extension aks-preview . Pour des instructions, consultez Installer l’aks-previewExtension Azure CLI.
  • L’extension k8s-extension Azure CLI, utilisée pour répertorier et supprimer des extensions de cluster. Installez-le en exécutant az extension add --upgrade --name k8s-extension.
  • kubectl installé. Vous pouvez l’installer localement à l’aide de la az aks install-cli commande.
  • L’indicateur de fonctionnalité EnableFIPSPreview inscrit sur votre abonnement. Pour obtenir des instructions, consultez Inscrire l’EnableFIPSPreviewindicateur de fonctionnalité.
  • Version 1.35.0 ou ultérieure de Kubernetes. Pour afficher les versions disponibles dans votre région, utilisez la commande az aks get-versions. Un cluster compatible FIPS sur une version antérieure ne bénéficie pas d’une exception de compatibilité : AKS rejette toutes les mises à jour du cluster jusqu’à ce que vous le mettiez à niveau vers la version 1.35.0 ou ultérieure ou que vous désactiviez FIPS.
  • Si vous utilisez des modèles Azure Resource Manager (ARM) ou l’API REST, utilisez la version de l’API 2026-03-02-preview ou une version ultérieure pour Microsoft.ContainerService/managedClusters et Microsoft.ContainerService/managedClusters/agentPools.

Installer l’extension aks-preview Azure CLI

  1. Installez l’extension aks-preview en utilisant la commande az extension add.

    az extension add --name aks-preview
    
  2. Effectuez une mise à jour vers la dernière version de l’extension à l’aide de la az extension update commande.

    az extension update --name aks-preview
    

Définir des variables d’environnement

Définissez les variables d’environnement suivantes pour les ressources que vous utilisez dans cet article. Remplacez les valeurs par défaut par vos propres valeurs. Définissez ensuite votre contexte d’abonnement à l’aide de la az account set commande.

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

az account set --subscription $SUBSCRIPTION_ID

Inscrire l’indicateur de fonctionnalité EnableFIPSPreview

  1. Enregistrez l’indicateur de fonctionnalité EnableFIPSPreview à l’aide de la commande az feature register.

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

    Quelques minutes sont nécessaires pour que l’état s’affiche Registered (Inscrit).

  2. Vérifiez l’état de l’inscription à l’aide de la az feature show commande.

    az feature show --namespace "Microsoft.ContainerService" --name "EnableFIPSPreview"
    
  3. Lorsque l’état indique Enregistré, actualisez l’enregistrement du Microsoft.ContainerService fournisseur de ressources à l’aide de la az provider register commande.

    az provider register --namespace Microsoft.ContainerService
    

Limitations

Les limitations suivantes s’appliquent lors de l’utilisation de clusters AKS compatibles FIPS.

Composants bloqués

Certains composants gérés par AKS ne sont pas encore compilés avec des bibliothèques de chiffrement compatibles FIPS. Vous ne pouvez pas activer ces composants sur un cluster avec FIPS activé, et vous ne pouvez pas activer FIPS sur un cluster qui les utilise. Le tableau suivant répertorie les composants bloqués et la commande Azure CLI pour les désactiver. Ajoutez --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME à chaque commande az aks.

Important

Cette liste s’applique uniquement aux composants gérés par AKS. Les conteneurs d’applications clientes ne sont pas validés par AKS.

Composant bloqué Désactiver la commande
cost-analysis az aks update --disable-cost-analysis
approuting az aks approuting disable
defender (Microsoft Defender for Containers surveillance de la sécurité) az aks update --disable-defender
azure-monitor (Métriques Prometheus gérées, Container Insights et surveillance des applications) 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 Vous ne pouvez pas supprimer Cilium d’un cluster existant. Créez un cluster.
acns-observability az aks update --disable-acns ou az aks update --disable-acns-observability
OpenServiceMesh az aks disable-addons --addons open-service-mesh
kaito az aks update --disable-ai-toolchain-operator
Révisions du module complémentaire de maillage de services Istio antérieures à asm-1-26 Effectuez une mise à niveau vers la révision asm-1-26 ou ultérieure. Pour obtenir des instructions, consultez Mettre à niveau le module complémentaire de maillage de service basé sur Istio.
installation du pilote GPU Windows Pour ajouter un pool de nœuds GPU Windows, ignorez l’installation du pilote à l’aide de --gpu-driver none.
Extensions de cluster qui ne sont pas conformes à FIPS, telles que Flux (GitOps). Consultez la colonne FIPS dans la matrice de capacité d’extension. az k8s-extension delete --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --cluster-type managedClusters --name <extension-name>

Si une automatisation, telle qu’une affectation d’Azure Policy, tente d’installer une extension qui n’est pas conforme à FIPS sur un cluster avec FIPS activé, AKS rejette l’installation et l’extension affiche un état de provisionnement Failed. Le cluster n’est pas affecté.

Créer un cluster AKS compatible FIPS

Vous pouvez activer FIPS lorsque vous créez le cluster à l’aide de l’indicateur --enable-fips . Le cluster ne peut pas utiliser les composants bloqués.

  1. Créez un cluster AKS compatible FIPS à l’aide de la commande az aks create avec le paramètre --enable-fips.

    az aks create \
        --name $CLUSTER_NAME \
        --resource-group $RESOURCE_GROUP \
        --kubernetes-version 1.35 \
        --enable-fips \
        --generate-ssh-keys
    
  2. Vérifiez que votre cluster est activé par FIPS à l’aide de la az aks show commande et interrogez la valeur enableFips .

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

    L’exemple de sortie suivant montre que votre cluster est activé par FIPS :

    true
    

    Si la commande ne retourne pas true, vous n’avez pas installé l’extension aks-preview lors de la création du cluster. Sans l’extension, le Azure CLI traite --enable-fips comme --enable-fips-image et active FIPS uniquement sur le pool de nœuds par défaut. Installez l’extensionaks-preview, puis activez FIPS sur le cluster existant.

  3. La création d’un cluster compatible FIPS crée automatiquement un pool de nœuds compatible FIPS. Vous pouvez le vérifier en inspectant la configuration du pool de nœuds en utilisant la az aks show commande et en interrogeant la valeur enableFips dans agentPoolProfiles.

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

    L’exemple de sortie suivant montre que le pool de nœuds par défaut est activé par FIPS :

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

Mettre à jour un cluster AKS existant pour activer ou désactiver FIPS

Pour activer FIPS sur un cluster existant, préparez d’abord le cluster, puis mettez-le à jour.

Préparer votre cluster pour FIPS

Effectuez les étapes suivantes avant d’activer FIPS au niveau du cluster.

  1. Vérifiez que le cluster exécute Kubernetes version 1.35.0 ou ultérieure. Si votre cluster exécute une version antérieure, mettez d’abord à niveau le cluster. Pour obtenir des instructions, consultez Mettre à niveau un cluster AKS.

  2. Vérifiez que chaque pool de nœuds est activé par FIPS. Mettez à jour chaque pool de nœuds non FIPS pour utiliser des images activées pour FIPS. Pour obtenir des instructions, consultez Mettre à jour un pool de nœuds existant pour activer ou désactiver FIPS.

    Les pools de nœuds Windows Server 2022 s’exécutent déjà avec FIPS activé dans le système d’exploitation, mais leur propriété enableFips est False sauf si vous la définissez. Exécutez az aks nodepool update --enable-fips-image également sur ces pools de nœuds. Pour ces pools de nœuds, la mise à jour définit la propriété et ne modifie pas l’image de nœud.

  3. Désactivez ou supprimez chaque composant répertorié dans les composants bloqués, y compris les extensions de cluster qui ne sont pas conformes à FIPS. Pour répertorier les extensions de votre cluster, utilisez la commande az k8s-extension list. Pour supprimer une extension, utilisez la commande az k8s-extension delete. Pour plus d’informations, consultez Gérer les extensions 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

    Une extension peut être installée automatiquement après la création du cluster, par exemple par une assignation de stratégie Azure Policy. Répertoriez à nouveau les extensions juste avant d’activer FIPS. Si une affectation continue d’installer une extension qui n’est pas conforme à FIPS, exemptez le cluster de cette affectation.

Mettre à jour un cluster existant pour activer FIPS

Après avoir préparé votre cluster, activez FIPS. Si le cluster ne répond pas à une exigence, AKS rejette la mise à jour et le message d’erreur décrit la cause. Pour obtenir de l’aide, consultez Résoudre les erreurs FIPS au niveau du cluster.

  1. Mettez à jour un cluster AKS à l’aide de la commande az aks update avec le paramètre --enable-fips.

    az aks update \
        --name $CLUSTER_NAME \
        --resource-group $RESOURCE_GROUP \
        --enable-fips
    
  2. Vérifiez que votre cluster est avec FIPS activé à l’aide de la commande az aks show et interrogez la valeur enableFips.

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

    L’exemple de sortie suivant montre que votre cluster est activé par FIPS :

    true
    

Mettre à jour un cluster existant pour désactiver FIPS

Vous pouvez mettre à jour un cluster existant pour désactiver FIPS. Lorsque vous désactivez le mode FIPS :

  • L’application de la norme FIPS au niveau du cluster est supprimée.
  • Les pools de nœuds existants ne sont pas modifiés.
  • Vous pouvez exécuter des pools de nœuds FIPS et non-FIPS dans le même cluster.
  • Vous pouvez déployer des extensions et des modules complémentaires AKS qui ont été précédemment bloqués pendant l’activation de FIPS.
  • Les nouveaux pools de nœuds n’ont plus besoin d’être compatibles FIPS.

Note

La désactivation de FIPS ne convertit pas automatiquement les pools de nœuds avec FIPS activé en pools de nœuds non FIPS. Si nécessaire, vous pouvez mettre à jour des pools de nœuds individuellement. Pour obtenir des instructions, consultez Désactiver FIPS sur un pool de nœuds existant. Windows Server pools de nœuds 2025 ne peuvent pas désactiver FIPS.

  1. Mettez à jour un cluster AKS à l’aide de la commande az aks update avec le paramètre --disable-fips.

    az aks update \
        --name $CLUSTER_NAME \
        --resource-group $RESOURCE_GROUP \
        --disable-fips
    
  2. Vérifiez que votre cluster n’est pas activé avec FIPS à l’aide de la commande az aks show et interrogez la valeur enableFips.

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

    L’exemple de sortie suivant montre que votre cluster n’est pas activé par FIPS :

    false
    

Ajouter un pool de nœuds à un cluster AKS compatible FIPS

Chaque nouveau pool de nœuds d’un cluster activé avec FIPS doit être activé avec FIPS. Ajoutez un pool de nœuds à l’aide de la az aks nodepool add commande avec le --enable-fips-image paramètre. Si vous omettez --enable-fips-image, AKS rejette la demande.

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

Résoudre les erreurs FIPS au niveau du cluster

Lorsqu’une requête est en conflit avec FIPS au niveau du cluster, AKS la rejette généralement, avec une erreur BadRequest qui décrit la cause. Pour connaître les messages d’erreur courants et comment les résoudre, consultez Résoudre les erreurs FIPS au niveau du cluster dans AKS.

Nettoyer les ressources

Lorsque vous n’avez plus besoin des ressources que vous avez créées dans cet article, supprimez le groupe de ressources et toutes les ressources associées à l’aide de la commande az group delete.

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