Partage via


Lancement fiable pour Azure Kubernetes Service (AKS)

lancement fiable améliore la sécurité des machines virtuelles de génération 2 en protégeant les techniques avancées et persistantes d’attaque. Il permet aux administrateurs de déployer des nœuds AKS, qui contiennent les machines virtuelles sous-jacentes, avec des chargeurs de démarrage vérifiés et signés, des noyaux de système d’exploitation et des pilotes. En utilisant un démarrage sécurisé et mesuré, les administrateurs ont une meilleure connaissance et une plus grande confiance dans l’intégrité de l’ensemble de la chaîne de démarrage.

Cet article vous permet de comprendre cette nouvelle fonctionnalité et de l’implémenter.

Vue d’ensemble

Le lancement fiable se compose de plusieurs technologies d’infrastructure coordonnées qui peuvent être activées indépendamment. Chaque technologie offre une couche de défense supplémentaire contre les menaces sophistiquées.

  • vTPM – Le lancement fiable présente une version virtualisée d’un module matériel du module de lancement fiable (TPM), conforme à la spécification TPM 2.0. Il sert de coffre sécurisé dédié pour les clés et les mesures. Le lancement fiable permet à votre machine virtuelle d’utiliser sa propre instance TPM dédiée, s’exécutant dans un environnement sécurisé en dehors de la portée de toute machine virtuelle. Le module vTPM permet d’effectuer l’attestation en mesurant la chaîne de démarrage complète de votre machine virtuelle (UEFI, système d’exploitation, système et pilotes). Le lancement fiable utilise le module vTPM pour effectuer l’attestation distante par le cloud. Il est utilisé pour les contrôles d’intégrité de la plateforme et pour permettre de prendre des décisions basées sur la confiance. En guise de contrôle d’intégrité, le lancement fiable peut certifier par chiffrement que votre machine virtuelle a démarré correctement. Si le processus échoue, par exemple parce que votre machine virtuelle exécute un composant non autorisé, Microsoft Defender pour le cloud émet des alertes d’intégrité. Les alertes incluent des détails sur les composants concernés par l’échec des contrôles d’intégrité.

  • Démarrage sécurisé – À la racine du lancement fiable, on trouve le démarrage sécurisé pour votre machine virtuelle. Ce mode, qui est implémenté dans le microprogramme de la plateforme, protège contre l’installation de rootkits et kits de démarrage basés sur des programmes malveillants. Le démarrage sécurisé garantit que seuls les systèmes d’exploitation et pilotes signés peuvent démarrer. Il établit une « racine de confiance » pour la pile logicielle de votre machine virtuelle. Quand le démarrage sécurisé est activé, tous les composants de démarrage du système d’exploitation (chargeur de démarrage, noyau, pilotes de noyau) doivent être signés par des éditeurs approuvés. Le démarrage sécurisé est pris en charge par Windows et certaines distributions Linux. Si le démarrage sécurisé ne parvient pas à authentifier une image signée par un éditeur de confiance, la VM n’est pas autorisée à démarrer. Pour plus d'informations, voir Démarrage sécurisé.

Avant de commencer

  • Azure CLI version 2.44.1 ou ultérieure. Exécutez az --version pour rechercher la version, puis exécutez az upgrade pour mettre à niveau la version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI.
  • Le démarrage sécurisé nécessite des chargeurs de démarrage signés, des noyaux de système d’exploitation et des pilotes.

Limites

  • AKS prend en charge le lancement fiable à partir de la version 1.25.2.
  • Le lancement fiable prend uniquement en charge machines virtuelles Azure Generation 2.
  • Les nœuds de cluster exécutant le système d’exploitation Windows Server ne sont pas pris en charge.
  • Le lancement fiable ne prend pas en charge les pools de nœuds avec FIPS activé ou basé sur Arm64.
  • Le lancement approuvé ne prend pas en charge le nœud virtuel.
  • Les groupes à haute disponibilité ne sont pas pris en charge, seuls les Virtual Machine Scale Sets le sont.
  • Pour activer le démarrage sécurisé sur les pools de nœuds GPU, vous devez ignorer l’installation du pilote GPU. Pour plus d’informations, consultez Ignorer l’installation du pilote GPU.
  • Les disques d’OS éphémères peuvent être créés avec le lancement fiable et toutes les régions sont prises en charge. Toutefois, toutes les tailles de machines virtuelles ne sont pas prises en charge. Pour plus d’informations, consultez Lancement fiable tailles OS éphémères.

Déployer un nouveau cluster

Effectuez les étapes suivantes pour déployer un cluster AKS au moyen d’Azure CLI.

  1. Créez un cluster AKS avec la commande az aks create. Avant d’exécuter la commande, passez en revue les paramètres suivants :

    • --nome : entrez un nom unique pour le cluster AKS, tel que myAKSCluster.
    • --groupe de ressources : Entrez le nom d’un groupe de ressources existant pour héberger la ressource du cluster AKS.
    • --activer le démarrage sécurisé : permet au démarrage sécurisé d’authentifier une image signée par un éditeur approuvé.
    • --activer-vtpm : Active le vTPM et effectue une attestation en mesurant la chaîne de démarrage complète de votre VM.

    Remarque

    Le démarrage sécurisé nécessite des chargeurs de démarrage signés, des noyaux de système d’exploitation et des pilotes. Si, après avoir activé le démarrage sécurisé, vos nœuds ne démarrent pas, vous pouvez vérifier quels composants de démarrage sont responsables des échecs du démarrage sécurisé au sein d’une machine virtuelle Azure Linux. Consulter Vérification des échecs de démarrage sécurisé.

    L’exemple suivant crée un cluster à un nœud nommé myAKSCluster avec un nœud dans myResourceGroup et active le démarrage sécurisé et vTPM :

    az aks create \
        --name myAKSCluster \
        --resource-group myResourceGroup \
        --node-count 1 \
        --enable-secure-boot \
        --enable-vtpm \
        --generate-ssh-keys
    
  2. Exécutez la commande suivante pour obtenir les informations d'identification d'accès au cluster Kubernetes. Utilisez la commande az aks get-credentials et remplacez les valeurs pour le nom du cluster et le nom du groupe de ressources.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    

Ajouter un pool de nœuds avec le lancement fiable activé

Déployez un pool de nœuds avec le lancement fiable activé à l’aide de la commande az aks nodepool add. Avant d’exécuter la commande, passez en revue les paramètres suivants :

  • --nom de cluster: entrez le nom du cluster AKS.
  • --groupe de ressources : Entrez le nom d’un groupe de ressources existant pour héberger la ressource du cluster AKS.
  • --nom : entrez un nom unique pour le pool de code. Le nom d’un pool de nœuds ne peut contenir que des caractères alphanumériques minuscules et doit commencer par une lettre minuscule. Pour les pools de nœuds Linux, la longueur doit être comprise entre 1 et 11 caractères.
  • --décompte de nœuds : nombre de nœuds dans le pool d’agents Kubernetes. La valeur par défaut est 3.
  • --activer le démarrage sécurisé : permet au démarrage sécurisé d’authentifier une image signée par un éditeur approuvé.
  • --activer-vtpm : Active le vTPM et effectue une attestation en mesurant la chaîne de démarrage complète de votre VM.

Remarque

Le démarrage sécurisé nécessite des chargeurs de démarrage signés, des noyaux de système d’exploitation et des pilotes. Si, après avoir activé le démarrage sécurisé, vos nœuds ne démarrent pas, vous pouvez vérifier quels composants de démarrage sont responsables des échecs du démarrage sécurisé au sein d’une machine virtuelle Azure Linux. Consulter Vérification des échecs de démarrage sécurisé.

L’exemple suivant déploie un pool de nœuds avec vTPM activé sur un cluster nommé myAKSCluster avec trois nœuds :

az aks nodepool add --resource-group myResourceGroup -–cluster-name myAKSCluster --name mynodepool --node-count 3 --enable-vtpm  

L’exemple suivant déploie un pool de nœuds avec vTPM et le démarrage sécurisé activé sur un cluster nommé myAKSCluster avec trois nœuds :

az aks nodepool add --resource-group myResourceGroup --cluster-name myAKSCluster --name mynodepool --node-count 3 --enable-vtpm --enable-secure-boot

Mettre à jour le cluster et activer le lancement fiable

Mettez à jour un pool de nœuds avec le lancement fiable activé à l’aide de la commande az aks nodepool update. Avant d’exécuter la commande, passez en revue les paramètres suivants :

  • --groupe de ressource : Saisissez le nom d’un groupe de ressources existant qui héberge votre cluster AKS existant.
  • --cluster-name : saisissez un nom unique pour le cluster AKS, comme myAKSCluster.
  • --nom : entrez le nom de votre pool de nœuds, par exemple mynodepool.
  • --activer le démarrage rapide : Active le démarrage sécurisé pour authentifier que l’image a été signée par un éditeur de confiance.
  • --activer-vtpm : Active le vTPM et effectue une attestation en mesurant la chaîne de démarrage complète de votre VM.

Remarque

Par défaut, la création d’un pool de nœuds avec une configuration compatible TL donne lieu à une image de lancement fiable. Sans spécifier de paramètres --enable-vtpm ou --enable-secure-boot , ils sont désactivés par défaut et vous pouvez l’activer ultérieurement à l’aide de az aks nodepool update commande. Le pool de nœuds existant doit utiliser une image de lancement fiable afin d’activer sur un pool de nœuds existant.

Remarque

Le démarrage sécurisé nécessite des chargeurs de démarrage signés, des noyaux de système d’exploitation et des pilotes. Si, après avoir activé le démarrage sécurisé, vos nœuds ne démarrent pas, vous pouvez vérifier quels composants de démarrage sont responsables des échecs du démarrage sécurisé au sein d’une machine virtuelle Azure Linux. Consulter Vérification des échecs de démarrage sécurisé.

L’exemple suivant met à jour le pool de nœuds mynodepool sur le cluster myAKSCluster dans le groupe myResourceGroup, et active le démarrage sécurisé et vTPM :

az aks nodepool update --cluster-name myCluster --resource-group myResourceGroup --name mynodepool --enable-secure-boot --enable-vtpm 

Affecter des pods à des nœuds avec lancement fiable activé

Vous pouvez limiter un pod et le restreindre pour s’exécuter sur un nœud ou des nœuds spécifiques, ou la préférence pour les nœuds avec le lancement fiable activé. Vous pouvez contrôler cela à l’aide du sélecteur de pool de nœuds suivant dans le manifeste de votre pod.

Pour un pool de nœuds exécutant vTPM, appliquez les éléments suivants :

spec:
  nodeSelector:
        kubernetes.azure.com/trusted-launch: true

Pour un pool de nœuds exécutant le démarrage sécurisé, appliquez les éléments suivants :

spec:
  nodeSelector:
        kubernetes.azure.com/secure-boot: true

Désactiver le démarrage sécurisé

Pour désactiver le démarrage sécurisé sur un cluster AKS, exécutez la commande suivante :

az aks nodepool update --cluster-name myCluster --resource-group myResourceGroup --name mynodepool --disable-secure-boot 

Remarque

Les mises à jour lancent automatiquement une nouvelle image de nœud et cette opération peut prendre plusieurs minutes par nœud.

Désactiver vTPM

Pour désactiver le vTPM sur un cluster AKS, exécutez la commande suivante :

az aks nodepool update --cluster-name myCluster --resource-group myResourceGroup --name mynodepool --disable-vtpm

Étapes suivantes

Dans cet article, vous avez appris à activer le lancement fiable. En savoir plus sur le lancement fiable.