Activer les normes FIPS (Federal Information Process Standard) pour les pools de nœuds Azure Kubernetes Service (AKS)
Le normes FIPS (Federal Information Processing Standard) 140-2 est une norme gouvernementale américaine qui définit les exigences de sécurité minimales pour les modules cryptographiques dans les produits et systèmes de technologies de l’information. Azure Kubernetes Service (AKS) vous permet de créer des pools de nœuds Linux et Windows compatibles avec la norme FIPS 140-2. Les déploiements s’exécutant sur des pools de nœuds compatibles FIPS peuvent utiliser ces modules cryptographiques pour fournir une sécurité accrue et aider à respecter les contrôles de sécurité dans le cadre de la conformité FedRAMP. Pour plus d’informations sur la norme FIPS 140-2, consultez Norme FIPS (Federal Information Processing Standard) 140.
Prérequis
- Azure CLI version 2.32.0 ou ultérieure installé et configuré. Exécutez
az --version
pour trouver la version. Pour plus d'informations sur l'installation ou la mise à niveau de l’interface de ligne de commande Azure, consultez Installer Azure CLI.
Remarque
AKS Monitoring Addon prend en charge les pools de nœuds compatibles FIPS avec Ubuntu, Azure Linux et Windows à partir de la version de l'agent 3.1.17 (Linux) et Win-3.1.17 (Windows).
Limites
- Les pools de nœuds compatibles FIPS présentent les limitations suivantes :
- Les pools de nœuds compatibles FIPS requièrent la version 1.19 ou une version ultérieure de Kubernetes.
- Pour mettre à jour les packages ou modules sous-jacents utilisés pour FIPS, vous devez utiliser la mise à niveau d’image de nœud.
- Les images de conteneur sur les nœuds FIPS n’ont pas été évaluées pour la conformité FIPS.
- Le montage d’un partage CIFS échoue, car FIPS désactive certains modules d’authentification. Pour contourner ce problème, consultez Erreurs lors du montage d’un partage de fichiers sur un pool de nœuds compatible FIPS.
Important
L’image Linux compatible FIPS est une image différente de celle de l’image Linux par défaut utilisée pour les pools de nœuds basés sur Linux. Pour activer FIPS sur un pool de nœuds, vous devez créer un pool de nœuds Linux. Vous ne pouvez pas activer FIPS sur des pools de nœuds existants.
Les numéros de version des images de nœuds compatibles FIPS peuvent différents de ceux des images non compatibles FIPS, par exemple la version du noyau. Le cycle de mise à jour pour les pools de nœuds et les images de nœuds compatibles FIPS peut être différent de celui des pools de nœuds et des images non compatibles FIPS.
Créer un pool de nœuds Linux compatible FIPS
Créez un pool de nœuds Linux compatibles FIPS en utilisant la commande
az aks nodepool add
avec le paramètre--enable-fips-image
.az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name fipsnp \ --enable-fips-image
Notes
Vous pouvez également utiliser le paramètre
--enable-fips-image
avec la commandeaz aks create
lorsque vous créez un cluster pour activer FIPS sur le pool de nœuds par défaut. Lors de l’ajout de pools de nœuds à un cluster créé de cette façon, vous devez toujours utiliser le paramètre--enable-fips-image
lors de l’ajout de pools de nœuds pour créer un pool de nœuds compatible FIPS.Vérifiez que votre pool de nœuds est compatible FIPS en utilisant la commande
az aks show
et recherchez la valeur de enableFIPS dans agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o table
L’exemple de sortie suivant montre que le pool de nœuds fipsnp est compatible FIPS :
Name enableFips --------- ------------ fipsnp True nodepool1 False
Listez les nœuds à l’aide de la commande
kubectl get nodes
.kubectl get nodes
L’exemple de sortie suivant présente la liste des nœuds du cluster. Les nœuds commençant par
aks-fipsnp
font partie du pool de nœuds compatible 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
Exécutez un déploiement avec une session interactive sur l’un des nœuds du pool de nœuds compatible FIPS à l’aide de la commande
kubectl debug
.kubectl debug node/aks-fipsnp-12345678-vmss000000 -it --image=mcr.microsoft.com/dotnet/runtime-deps:6.0
Dans la sortie de la session interactive, vérifiez que les bibliothèques de chiffrement FIPS sont activées. Vous devez obtenir un résultat semblable à l’exemple de sortie qui suit :
root@aks-fipsnp-12345678-vmss000000:/# cat /proc/sys/crypto/fips_enabled 1
Les pools de nœuds compatibles FIPS présentent également une étiquette kubernetes.azure.com/fips_enabled=true, que les déploiements peuvent utiliser pour cibler ces pools de nœuds.
Créer un pool de nœuds Windows compatible FIPS
Créez un pool de nœuds compatible FIPS en utilisant la commande
az aks nodepool add
avec le paramètre--enable-fips-image
. Contrairement aux pools de nœuds Linux, les pools de nœuds Windows partagent le même ensemble d’images.az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name fipsnp \ --enable-fips-image \ --os-type Windows
Vérifiez que votre pool de nœuds est compatible FIPS en utilisant la commande
az aks show
et recherchez la valeur de enableFIPS dans agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o table
Vérifiez que les pools de nœuds Windows ont accès aux bibliothèques de chiffrement FIPS en créant une connexion RDP à un nœud Windows dans un pool de nœuds compatible FIPS, puis vérifiez le registre. À partir de l’application Exécuter, entrez
regedit
.Recherchez
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy
dans le registre.Si
Enabled
est défini sur 1, FIPS est activé.
Les pools de nœuds compatibles FIPS présentent également une étiquette kubernetes.azure.com/fips_enabled=true, que les déploiements peuvent utiliser pour cibler ces pools de nœuds.
Étapes suivantes
Pour plus d’informations sur la sécurité AKS, consultez Meilleures pratiques relatives aux mises à niveau et à la sécurité du cluster dans Azure Kubernetes Service (AKS).