Partager via


Utiliser les machines virtuelles confidentielles (CVM) dans un cluster Azure Kubernetes Service (AKS)

Les machines virtuelles confidentielles offrent une sécurité et une confidentialité fortes pour les locataires. Les machines virtuelles offrent un environnement TEE (Hardware Trusted Execution Environment) basé sur des machines virtuelles qui tirent parti de SEV-SNP fonctionnalités de sécurité pour refuser l’hyperviseur et d’autres accès au code de gestion de l’hôte à la mémoire et à l’état des machines virtuelles, ce qui assure une défense contre l’accès aux opérateurs. Ces fonctionnalités permettent aux pools de nœuds avec CVM de cibler la migration des charges de travail de conteneur hautement sensibles vers AKS sans refactorisation de code, tout en bénéficiant des fonctionnalités d’AKS. Par exemple, vous pouvez exiger la machine virtuelle CVM si vous disposez des éléments suivants :

  • Charges de travail qui gèrent les données critiques de sécurité et/ou les données client sensibles
  • Services requis pour répondre à diverses exigences de conformité, en particulier pour les contrats gouvernementaux. Sans solution évolutive pour la sécurisation des données, cela peut entraîner la perte d’accréditations et de contrats.

Dans cet article, vous allez apprendre à créer des pools de nœuds AKS à l’aide de tailles de machine virtuelle confidentielle.

Tailles de machine virtuelle confidentielle prises en charge par AKS

Azure propose un choix d’options d’environnement d’exécution de confiance (TEE) à partir d’AMD et d’Intel. Ces TEE vous permet de créer des environnement de machines virtuelles confidentielles avec un excellent rapport prix/performance, sans nécessiter de modification de code.

  • Les machines virtuelles confidentielles basées sur AMD utilisent la technologie AMD SEV-SNP, qui est introduite avec les troisièmes processeurs AMD EPYC™ Gen.
  • Les machines virtuelles confidentielles Basées sur Intel utilisent Intel TDX, avec des processeurs Intel® Xeon® de quatrième génération.

Les deux technologies ont des implémentations différentes. Toutefois, les deux fournissent des protections similaires à partir de la pile d’infrastructure cloud. Pour plus d’informations, voir Tailles des machines virtuelles CVM.

Fonctionnalités de sécurité

Les machines virtuelles offrent les améliorations de sécurité suivantes par rapport aux autres tailles de machine virtuelle :

  • Isolement matériel fiable entre les machines virtuelles, l’hyperviseur et le code de gestion de l’hôte.
  • Stratégies d’attestation personnalisables pour garantir la conformité de l’hôte avant le déploiement.
  • Chiffrement de disque de système d’exploitation confidentiel basé sur le cloud avant le premier démarrage.
  • Clés de chiffrement de machine virtuelle que la plateforme ou le client possède et gère.
  • Libération de clé sécurisée avec liaison de chiffrement entre l’attestation réussie de la plateforme et les clés de chiffrement de la machine virtuelle.
  • Instance de module de plateforme sécurisée (TPM) virtuelle dédiée pour l’attestation et la protection des clés et des secrets dans la machine virtuelle.
  • Fonction de démarrage sécurisé semblable au lancement fiable pour les machines virtuelles Azure

Comment fonctionne-t-il ?

Si vous exécutez une charge de travail qui nécessite une confidentialité et une intégrité améliorées, vous pouvez tirer parti du chiffrement de la mémoire et de la sécurité renforcée sans modification du code dans votre application. Tous les pods sur votre nœud CVM font partie de la même limite d’approbation. Les nœuds d’un pool de nœuds créés avec CVM utilisent une image de nœud personnalisée spécialement configurée pour CVM.

Versions des systèmes d’exploitation prise en charge

Vous pouvez créer des pools de nœuds CVM sur des types de système d’exploitation Linux (Ubuntu et Azure Linux). Toutefois, toutes les versions du système d’exploitation ne prennent pas en charge les pools de nœuds CVM.

Ce tableau inclut les versions de système d’exploitation prises en charge :

Type de système d’exploitation Référence SKU du système d’exploitation Prise en charge de CVM CVM par défaut
Linux Ubuntu Soutenu Ubuntu 20.04 est la valeur par défaut pour K8s version 1.24-1.33. Ubuntu 24.04 est la valeur par défaut pour K8s version 1.34-1.38.
Linux Ubuntu2204 Non pris en charge AKS ne prend pas en charge CVM pour Ubuntu 22.04.
Linux Ubuntu2404 Soutenu La machine virtuelle CVM est prise en charge Ubuntu2404 dans K8s 1.32-1.38.
Linux AzureLinux Prise en charge sur Azure Linux 3.0 Azure Linux 3 est par défaut lors de l’activation de la machine virtuelle CVM pour K8s version 1.28-1.36.
Linux flatcar Non prise en charge Flatcar Container Linux pour AKS ne prend pas en charge CVM.
Linux AzureLinuxOSGuard Non prise en charge Azure Linux avec OS Guard pour AKS ne prend pas en charge CVM.
Fenêtres Toutes les références SKU du système d’exploitation Windows Non pris en charge

Lorsque vous utilisez Ubuntu ou AzureLinux comme osSKU, si la version du système d’exploitation par défaut ne prend pas en charge la machine virtuelle CVM, AKS prend par défaut en charge la version CVM la plus récente du système d’exploitation. Par exemple, Ubuntu 22.04 est le système d’exploitation par défaut pour les pools de nœuds Linux. Étant donné que la version 22.04 ne prend actuellement pas en charge la machine virtuelle CVM, AKS prend par défaut en charge les pools de nœuds Ubuntu 20.04 pour linux CVM.

Limites

Les limitations suivantes s’appliquent quand vous ajoutez un pool de nœuds avec CVM à AKS :

  • Vous ne pouvez pas utiliser FIPS, ARM64, Trusted Launch ou Pod Sandboxing.
  • Vous ne pouvez pas mettre à jour un pool de nœuds existant pour migrer vers une taille CVM. Pour migrer, vous devez redimensionner votre pool de nœuds.
  • Vous ne pouvez pas utiliser CVM avec des pools de nœuds Windows.
  • La machine virtuelle CVM avec Azure Linux est actuellement en préversion.

Conditions préalables

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Cluster AKS existant.
  • Les tailles CVM doivent être disponibles pour votre abonnement dans la région où le cluster est créé. Vous devez disposer d’un quota suffisant pour créer un pool de nœuds avec une taille CVM.
  • Si vous utilisez le système d’exploitation Linux Azure, vous devez installer l’extension aks-preview, mettre à jour l’extension aks-preview et inscrire l’indicateur de fonctionnalité en préversion. Si vous utilisez Ubuntu, vous pouvez ignorer ces étapes.

Si vous utilisez Azure Linux

Les machines virtuelles pour Ubuntu sont en disponibilité générale, mais les machines virtuelles avec Azure Linux sont actuellement en préversion. Si vous souhaitez utiliser des pools de nœuds CVM avec Azure Linux comme système d’exploitation de choix, veillez à activer l’extension et à inscrire l’indicateur.

Installer l’extension aks-preview

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

    Important

    Les fonctionnalités d’évaluation AKS sont disponibles en libre-service et font l’objet d’un abonnement. Les versions d'essai sont fournies « en l’état » et « selon disponibilité », et elles sont exclues des contrats de niveau de service et de la garantie limitée. Les versions préliminaires AKS sont, dans la mesure du possible, partiellement couvertes par le service clientèle. Telles quelles, ces fonctionnalités ne sont pas destinées à une utilisation en production. Pour plus d’informations, consultez les articles de support suivants :

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

    az extension update --name aks-preview
    

Inscrire l’indicateur de fonctionnalité AzureLinuxCVMPreview

  1. Inscrivez l’indicateur de fonctionnalité AzureLinuxCVMPreview à l’aide de la commande [az feature register][az-feature-register].

    az feature register --namespace "Microsoft.ContainerService" --name "AzureLinuxCVMPreview"
    
  2. Vérifiez l’état de l’inscription à l’aide de la commande [az feature show][az-feature-show]. Quelques minutes sont nécessaires pour que l’état s’affiche Registered (Inscrit).

    az feature show --namespace Microsoft.ContainerService --name AzureLinuxCVMPreview
    
  3. Lorsque l’état reflète Inscrit, actualisez l’inscription du fournisseur de ressources Microsoft.ContainerService à l’aide de la commande [az provider register][az-provider-register].

    az provider register --namespace Microsoft.ContainerService
    

Ajouter un pool de nœuds avec une machine virtuelle CVM à votre cluster AKS

  • Ajoutez un pool de nœuds avec une machine virtuelle CVM à votre cluster AKS à l’aide de la commande az aks nodepool add et définissez-le node-vm-size sur une taille de machine virtuelle prise en charge.

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name cvmnodepool \
        --node-count 3 \
        --node-vm-size Standard_DC4as_v5 
    

Si vous ne spécifiez pas le osSKU ou osType, AKS est défini par défaut --os-type Linux sur et --os-sku Ubuntu.

Mettre à niveau un pool de nœuds existant avec une machine virtuelle CVM vers Ubuntu 24.04

  • Mettez à niveau un pool de nœuds existant avec une machine virtuelle CVM vers Ubuntu 24.04 à partir d’Ubuntu 20.04 à l’aide de la az aks nodepool update commande. Définissez la valeur os-sku sur Ubuntu2404.

      az aks nodepool update \
          --resource-group myResourceGroup \
          --cluster-name myAKSCluster \
          --name cvmnodepool \
          --os-sku Ubuntu2404
    

Note

Un pool de nœuds basé sur Ubuntu 24.04 avec un CVM est pris en charge à partir de la version 1.33 du cluster AKS. En outre, avant la mise à disposition générale (GA) d’Ubuntu 24.04, vous devez inscrire la fonctionnalité Ubuntu2404Preview. Pour plus d’informations, consultez here pour enregistrer la fonctionnalité.

Vérifier que le pool de nœuds utilise CVM

  1. Vérifiez l’utilisation de CVM par un pool de nœuds avec la commande az aks nodepool show et assurez-vous que vmSize est défini sur Standard_DCa4_v5.

    az aks nodepool show \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name cvmnodepool \
        --query 'vmSize'
    

    L’exemple de commande et de sortie suivant montre que le pool de nœuds utilise la fonctionnalité CVM :

    az aks nodepool show \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name cvmnodepool \
        --query 'vmSize'
    
    "Standard_DC4as_v5"
    
  2. Vérifiez qu’un pool de nœuds utilise une image CVM à l’aide de la commande az aks nodepool list.

    az aks nodepool list \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name cvmnodepool \
        --query 'nodeImageVersion'
    

    L’exemple de commande et de sortie suivant montre que le pool de nœuds utilise une image CVM Ubuntu 20.04 :

    az aks nodepool show \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name cvmnodepool \
        --query 'nodeImageVersion'
    
    "AKSUbuntu-2004cvmcontainerd-202507.02.0"
    

Supprimer un pool de nœuds avec CVM d’un cluster AKS

  • Supprimez un pool de nœuds avec CVM d’un cluster AKS, utilisez la commande az aks nodepool delete.

    az aks nodepool delete \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name cvmnodepool
    

Étapes suivantes

Dans cet article, vous avez découvert comment ajouter un pool de nœuds avec CVM à un cluster AKS.