Vertrauliche Virtual Machines (CVMs) im Azure Kubernetes Service (AKS) Cluster verwenden

Confidential Virtual Machines (CVMs) bieten eine starke Sicherheit und Vertraulichkeit für Mandanten. CVMs bieten eine VM-basierte Trusted Execution Environment (TEE) als Hardware, die Sicherheitsfeatures von SEV-SNP nutzt, um dem Hypervisor und anderem Hostverwaltungscode den Zugriff auf den VM-Speicher und -Zustand zu verweigern, was einen tiefgehenden Schutz gegen Zugriff durch die Betreibenden bietet. Diese Funktionen ermöglichen es Knotenpools mit CVMs, die Migration hochsensibler Container-Workloads zu AKS zu unterstützen, ohne dass Code umgestaltet werden muss, und gleichzeitig von den Funktionen von AKS zu profitieren. Sie können z. B. CVMs benötigen, wenn Sie folgendes haben:

  • Workloads, die sicherheitskritische Daten und/oder vertrauliche Kundendaten verarbeiten
  • Dienste, die erforderlich sind, um verschiedene Compliance-Anforderungen zu erfüllen, insbesondere für Regierungsverträge. Ohne eine skalierbare Lösung zum Sichern von Daten könnte dies möglicherweise zu einem Verlust der Akkreditierung und verträge führen.

In diesem Artikel erfahren Sie, wie Sie AKS-Knotenpools mit vertraulichen VM-Größen erstellen.

AKS unterstützte vertrauliche VM-Größen

Azure bietet eine Auswahl an Trusted Execution Environment (TEE) -Optionen sowohl von AMD als auch von Intel. Diese TEEs ermöglichen die Erstellung vertraulicher VM-Umgebungen mit hervorragendem Preis-Leistungs-Verhältnis ohne erforderliche Codeänderungen.

  • AMD-basierte vertrauliche VMs verwenden AMD SEV-SNP-Technologie, die mit der dritten Generation von AMD EPYC™-Prozessoren eingeführt wurde.
  • Intel-basierte vertrauliche VMs verwenden Intel TDX mit Prozessoren der vierten Generation von Intel® Xeon®.

Hinweis

Intel TDX-basierte vertrauliche VMs werden derzeit auf AKS nicht unterstützt.

Weitere Informationen finden Sie unter CVM-VM-Größen.

Sicherheitsfeatures

CVMs bieten im Vergleich zu anderen VM-Größen die folgenden Sicherheitsverbesserungen:

  • Robuste hardwarebasierte Isolation zwischen virtuellen Computern, dem Hypervisor und Hostverwaltungscode
  • Anpassbare Nachweisrichtlinien, um die Konformität des Hosts vor der Bereitstellung sicherzustellen
  • VM-Verschlüsselungsschlüssel, die die Plattform oder optional der Kunde besitzt und verwaltet.
  • Sichere Schlüsselfreigabe mit kryptografischer Bindung zwischen dem erfolgreichen Nachweis der Plattform und den Verschlüsselungsschlüsseln der VM
  • Dedizierte TPM-Instanz (Virtual Trusted Platform Module) zum Nachweis und Schutz von Schlüsseln und geheimen Schlüsseln auf dem virtuellen Computer.
  • Sichere Startfunktion ähnlich dem vertrauenswürdigen Start für Azure-VMs

Wie funktioniert es?

Wenn Sie eine Workload ausführen, die eine verbesserte Vertraulichkeit und Integrität erfordert, können Sie von der Speicherverschlüsselung und der erweiterten Sicherheit profitieren, ohne dass codebezogene Änderungen in Ihrer Anwendung vorgenommen werden. Alle Pods auf Ihrem CVM-Knoten sind Teil derselben Vertrauensgrenze. Die Knoten in einem knotenpool, der mit CVMs erstellt wurde, verwenden ein benutzerdefiniertes Knotenimage , das speziell für CVMs konfiguriert ist.

Unterstützte Betriebssystemversionen

Sie können CVM-Knotenpools unter Linux-Betriebssystemtypen (Ubuntu und Azure Linux) erstellen. Allerdings unterstützen nicht alle Betriebssystemversionen CVM-Knotenpools.

Diese Tabelle enthält die unterstützten Betriebssystemversionen:

Betriebssystemtyp Betriebssystem-SKU CVM-Unterstützung CVM-Standardeinstellung
Linux Ubuntu Unterstützt Ubuntu 20.04 ist standard für Kubernetes Version 1.24-1.33. Ubuntu 24.04 ist die Standardeinstellung für Kubernetes Version 1.34-1.38.
Linux Ubuntu2204 Nicht unterstützt AKS unterstützt CVM für Ubuntu 22.04 nicht.
Linux Ubuntu2404 Unterstützt CVM wird auf Ubuntu2404 in Kubernetes 1.32-1.38 unterstützt.
Linux AzureLinux Unterstützt unter Azure Linux 3.0 Azure Linux 3 ist standardmäßig aktiviert, wenn CVM für Kubernetes, Version 1.28-1.36, aktiviert wird.
Linux flatcar Nicht unterstützt Flatcar Container Linux für AKS unterstützt CVM nicht.
Linux AzureLinuxOSGuard Nicht unterstützt Azure Linux mit OS Guard für AKS unterstützt CVM nicht.
Linux AzureContainerLinux Nicht unterstützt Azure Container Linux (ACL) unterstützt CVM nicht.
Fenster Alle Windows Betriebssystem-SKUs Nicht unterstützt N/A

Bei Verwendung von Ubuntu oder AzureLinux als osSKU verwendet AKS standardmäßig die neueste CVM-unterstützte Version des Betriebssystems, wenn die Standardversion des Betriebssystems keine CVMs unterstützt. Beispielsweise ist Ubuntu 22.04 standardmäßig für Linux-Knotenpools. Da 22.04 derzeit keine CVMs unterstützt, unterstützt AKS standardmäßig Ubuntu 20.04 für Linux CVM-fähige Knotenpools.

Einschränkungen

Die folgenden Einschränkungen gelten beim Hinzufügen eines Knotenpools mit CVM zu AKS:

  • FIPS, ARM64, Trusted Launch oder Pod Sandboxing können nicht verwendet werden.
  • Sie können keinen vorhandenen Knotenpool aktualisieren, um zu einer CVM-Größe zu migrieren. Zum Migrieren müssen Sie die Größe des Knotenpools ändern.
  • Sie können CVMs nicht mit Windows Knotenpools verwenden.
  • Azure Container Linux (ACL) unterstützt derzeit keine CVM-Knotenpools in AKS.

Voraussetzungen

Bevor Sie beginnen, sollten Sie sicherstellen, dass Folgendes vorhanden ist:

  • Ein vorhandener AKS-Cluster.
  • CVM-Größen müssen für Ihr Abonnement in der Region verfügbar sein, in der der Cluster erstellt wird. Sie müssen über ein ausreichendes Kontingent verfügen, um einen Knotenpool mit einer CVM-Größe zu erstellen.

Hinzufügen eines Knotenpools mit einem CVM zu Ihrem AKS-Cluster

Fügen Sie mithilfe des az aks nodepool add Befehls einen Knotenpool mit einem CVM zu Ihrem AKS-Cluster hinzu, und legen Sie die node-vm-size Größe auf eine unterstützte VM-Größe fest.

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

Wenn Sie osSKU oder osType nicht angeben, verwendet AKS standardmäßig --os-type Linux und --os-sku Ubuntu.

Um einen CVM-Knotenpool zu erstellen, der Azure Linux verwendet, legen Sie folgendes fest--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

Upgrade eines vorhandenen Knotenpools mit einem CVM auf Ubuntu 24.04

Aktualisieren Sie einen vorhandenen Knotenpool mit einem CVM auf Ubuntu 24.04 von Ubuntu 20.04 mithilfe des az aks nodepool update Befehls. Legen Sie os-sku als Ubuntu2404 fest.

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

Überprüfen, ob der Knotenpool CVMs verwendet

  1. Überprüfen Sie mit dem az aks nodepool show-Befehl, ob ein Knotenpool CVMs verwendet, und überprüfen Sie, ob vmSizeStandard_DCa4_v5 ist.

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

    Der folgende Beispielbefehl und die Ausgabe zeigen, dass der Knotenpool CVMs verwendet:

    az aks nodepool show \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name cvmnodepool \
        --query 'vmSize'
    
    "Standard_DC4as_v5"
    
  2. Überprüfen Sie, ob ein Knotenpool ein CVM-Image mit dem az aks nodepool list Befehl verwendet.

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

    Der folgende Beispielbefehl und die Ausgabe zeigt, dass der Knotenpool ein Ubuntu 20.04 CVM-Bild verwendet:

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

Entfernen eines Knotenpools mit CVMs aus einem AKS-Cluster

Entfernen Sie einen Knotenpool mit CVMs aus einem AKS-Cluster mithilfe des az aks nodepool delete Befehls.

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

In diesem Artikel haben Sie erfahren, wie Sie einem AKS-Cluster einen Knotenpool mit CVMs hinzufügen.