Azure Kubernetes Service (AKS) クラスターで Confidential Virtual Machines (CVM) を使用する

Confidential Virtual Machines (CVM) は、テナントの強力なセキュリティと機密性を提供します。 VM ベースのハードウェア信頼実行環境 (TEE) は、SEV-SNP セキュリティ機能を利用して、ハイパーバイザーやその他のホスト管理コードによる VM のメモリと状態へのアクセスを拒否し、オペレーター アクセスに対する多層防御を提供します。 これらの機能により、CVM を使用するノード プールは、AKS の機能の恩恵を受けながら、コードをリファクタリングすることなく、機密性の高いコンテナー ワークロードの AKS への移行をターゲットにすることができます。 たとえば、次のような場合は、CVM が必要になることがあります。

  • セキュリティの重要なデータや機密の顧客データを処理するワークロード
  • さまざまなコンプライアンス要件 (特に政府契約) を満たすために必要なサービス。 データをセキュリティで保護するためのスケーラブルなソリューションがないと、認定と契約が失われる可能性があります。

この記事では、機密 VM サイズを使用して AKS ノード プールを作成する方法について説明します。

AKS でサポートされている機密 VM のサイズ

Azure では、AMD と Intel の両方から 、信頼できる実行環境 (TEE) オプションを選択できます。 これらの TEE により、コードをまったく変更することなく、優れた費用対効果で機密 VM 環境を作成できます。

  • AMD ベースの Confidential VM では、3 番目の Gen AMD EPYC™ プロセッサで導入された AMD SEV-SNP テクノロジを使用します。
  • Intel ベースの Confidential VM では、Intel TDX と 4 番目の Gen Intel® Xeon® プロセッサが使用されます。

Intel TDX ベースの Confidential VM は、AKS では現在サポートされていません。

詳細については、「 CVM VM のサイズ」を参照してください。

セキュリティ機能

CVM は、他の仮想マシン (VM) サイズと比較して、次のセキュリティ強化機能を提供します。

  • 仮想マシン、ハイパーバイザー、ホスト管理コードの間をハードウェアベースで強固に分離。
  • カスタマイズ可能な認証ポリシーにより、デプロイ前にホストのコンプライアンスを確認することができます。
  • プラットフォームまたは顧客 (必要に応じて) によって所有および管理される VM 暗号化キー。
  • プラットフォームの成功した構成証明と VM の暗号化キーの間の暗号化バインドを使用したセキュリティで保護されたキーのリリース。
  • 仮想マシン内のキーとシークレットの構成証明と保護のための専用仮想トラステッド プラットフォーム モジュール (TPM) インスタンス。
  • Azure VM の信頼された起動と同様のセキュア ブート機能

それはどのように動作しますか?

機密性と整合性の強化を必要とするワークロードを実行している場合は、アプリケーションでコードを変更することなく、メモリ暗号化とセキュリティ強化のメリットを得ることができます。 CVM ノード上のすべてのポッドは、同じ信頼境界の一部です。 CVM で作成されたノード プール内のノードは、特に CVM 用に構成されたカスタマイズされた ノード イメージ を使用します。

サポートされている OS のバージョン

LINUX OS の種類 (Ubuntu と Azure Linux) で CVM ノード プールを作成できます。 ただし、すべての OS バージョンで CVM ノード プールがサポートされているわけではありません。

この表には、サポートされている OS バージョンが含まれています。

OS の種類 OSインベントリコード(SKU) CVM のサポート CVM の既定値
Linux Ubuntu サポートされています Ubuntu 20.04 は、Kubernetes バージョン 1.24-1.33 の既定です。 Ubuntu 24.04 は、Kubernetes バージョン 1.34-1.38 の既定値です。
Linux Ubuntu2204 サポートされていません AKS では、Ubuntu 22.04 の CVM はサポートされていません。
Linux Ubuntu2404 サポートされています CVM は、Kubernetes 1.32-1.38 の Ubuntu2404 でサポートされています。
Linux AzureLinux Azure Linux 3.0 でサポートされています Kubernetes バージョン 1.28-1.36 で CVM を有効にする場合、Azure Linux 3 は既定です。
Linux flatcar サポートされていません AKS 用 Flatcar Container Linux は CVM をサポートしていません。
Linux AzureLinuxOSGuard サポートされていません AZURE Linux と OS Guard for AKS は CVM をサポートしていません。
Linux AzureContainerLinux サポートされていません Azure Container Linux (ACL) は CVM をサポートしていません。
ウィンドウズ すべてのWindows OS SKU サポートされていません N/A

UbuntuまたはAzureLinuxosSKUとして使用する場合、既定の OS バージョンで CVM がサポートされていない場合、AKS は既定で最新の CVM でサポートされているバージョンの OS に設定されます。 たとえば、Ubuntu 22.04 は Linux ノード プールの既定です。 現在、22.04 では CVM がサポートされていないため、AKS では Linux CVM 対応ノード プールの Ubuntu 20.04 が既定で使用されます。

制限事項

CVM を使用してノード プールを AKS に追加する場合、次の制限が適用されます。

  • FIPS、ARM64、Trusted Launch、または Pod Sandboxing を使用することはできません。
  • CVM サイズに移行するように既存のノード プールを更新することはできません。 移行するには、 ノード プールのサイズを変更する必要があります。
  • WINDOWS ノード プールで CVM を使用することはできません。
  • Azure Container Linux (ACL) は現在、AKS の CVM ノード プールをサポートしていません。

[前提条件]

開始する前に、次の条件を満たしていることを確認します。

  • 既存の AKS クラスター。
  • CVM サイズは、クラスターが作成されるリージョンのサブスクリプションで使用できる必要があります。 CVM サイズのノード プールを作成するには、十分なクォータが必要です。

CVM を持つノード プールを AKS クラスターに追加する

az aks nodepool add コマンドを使用して CVM を持つノード プールを AKS クラスターに追加し、node-vm-sizeをサポートされている VM サイズに設定します。

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

osSKUまたはosTypeを指定しない場合、AKS は既定で --os-type Linux--os-sku Ubuntuに設定されます。

Azure Linux を使用する CVM ノード プールを作成するには、--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

CVM を使用して既存のノード プールを Ubuntu 24.04 にアップグレードする

az aks nodepool update コマンドを使用して、CVM を使用して既存のノード プールを Ubuntu 20.04 から Ubuntu 24.04 にアップグレードします。 os-skuUbuntu2404として設定します。

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

ノード プールで CVM が使用されていることを確認する

  1. az aks nodepool show コマンドを使用してノード プールが CVM を使用していることを確認し、vmSizeStandard_DCa4_v5 であることを確認します。

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

    次のコマンドと出力の例は、ノード プールで CVM を使用する方法を示しています。

    az aks nodepool show \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name cvmnodepool \
        --query 'vmSize'
    
    "Standard_DC4as_v5"
    
  2. az aks nodepool list コマンドを使用して、ノード プールで CVM イメージが使用されていることを確認します。

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

    次のコマンドと出力の例は、ノード プールで Ubuntu 20.04 CVM イメージを使用する方法を示しています。

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

AKS クラスターから CVM を含むノード プールを削除する

az aks nodepool delete コマンドを使用して、AKS クラスターから CVM を含むノード プールを削除します。

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

この記事では、CVM を含むノード プールを AKS クラスターに追加する方法について説明しました。