Utiliser des Machines Virtuelles confidentiels dans Azure Kubernetes Service (AKS) cluster

Confidential Machines Virtuelles (CVMs) 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 des machines virtuelles de cibler la migration de 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 des machines virtuelles virtuelles 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.

Note

Les machines virtuelles confidentielles Intel TDX ne sont actuellement pas prises en charge sur AKS.

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.
  • 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 des machines virtuelles virtuelles utilisent une image de nœud personnalisée spécialement configurée pour les machines virtuelles virtuelles.

Versions du système d’exploitation prises 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 Kubernetes version 1.24-1.33. Ubuntu 24.04 est la valeur par défaut pour Kubernetes version 1.34-1.38.
Linux Ubuntu2204 Non prise en charge AKS ne prend pas en charge CVM pour Ubuntu 22.04.
Linux Ubuntu2404 Soutenu CVM est pris en charge sur Ubuntu2404 dans Kubernetes 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 Kubernetes 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.
Linux AzureContainerLinux Non prise en charge Azure Container Linux (ACL) ne prend pas en charge CVM.
Fenêtres Toutes les références SKU de système d’exploitation Windows Non prise en charge N/A

Lorsque vous utilisez Ubuntu ou AzureLinux comme osSKU, si la version par défaut du système d’exploitation ne prend pas en charge les CVM, AKS utilise par défaut la version du système d’exploitation la plus récente prenant en charge les CVM. 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 pas en charge les machines virtuelles virtuelles, AKS prend par défaut en charge les pools de nœuds compatibles avec 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 de machines virtuelles virtuelles avec des pools de nœuds Windows.
  • Azure Container Linux (ACL) ne prend actuellement pas en charge les pools de nœuds CVM dans AKS.

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.

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.

Pour créer un pool de nœuds CVM qui utilise Azure Linux, définissez --os-sku AzureLinux.

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

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

Vérifiez que le pool de nœuds utilise des CVM

  1. Vérifiez qu’un pool de nœuds utilise des CVMs à l’aide de la commande az aks nodepool show et vérifiez que le vmSize est 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 des machines virtuelles virtuelles :

    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 des machines virtuelles d’un cluster AKS

Supprimez un pool de nœuds avec des machines virtuelles virtuelles d’un cluster AKS à l’aide de la az aks nodepool delete commande.

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

Dans cet article, vous avez appris à ajouter un pool de nœuds avec des machines virtuelles virtuelles à un cluster AKS.