Использование конфиденциальных Виртуальные машины (CVMs) в кластере Azure Kubernetes Service (AKS)

Confidential Виртуальные машины (CVMs) обеспечивают надежную безопасность и конфиденциальность для клиентов. CVM предлагают виртуальные машины с аппаратной доверенной средой выполнения (TEE), которая использует функции безопасности SEV-SNP, чтобы запретить гипервизору и другим кодам управления узлами доступ к памяти и состоянию виртуальной машины, обеспечивая многослойную защиту от доступа оператора. Эти функции позволяют пулам узлов с CVMs ориентироваться на миграцию рабочих нагрузок контейнеров с высокой степенью конфиденциальности в AKS без рефакторинга кода при использовании функций AKS. Например, вам может потребоваться CVM, если у вас есть следующее:

  • Рабочие нагрузки, обрабатывающие критически важные данные безопасности и (или) конфиденциальные данные клиента
  • Службы, необходимые для удовлетворения различных требований соответствия требованиям, особенно для государственных контрактов. Без масштабируемого решения для защиты данных это может привести к потере аккредитации и контрактов.

Из этой статьи вы узнаете, как создать пулы узлов AKS с помощью размеров конфиденциальных виртуальных машин.

Поддерживаемые размеры конфиденциальных виртуальных машин AKS

Azure предлагает варианты доверенной среды выполнения (TEE) в AMD и Intel. Эти TEEs позволяют создавать среды конфиденциальных виртуальных машин с отличным соотношением цены и производительности, не требуя каких-либо изменений кода.

  • Конфиденциальные виртуальные машины на основе AMD используют технологию AMD SEV-SNP, которая представлена третьими процессорами AMD EPYC™.
  • Конфиденциальные виртуальные машины intel используют Intel TDX с четвертым поколением процессоров Intel® Xeon®.

Замечание

Конфиденциальные виртуальные машины на основе Intel TDX в настоящее время не поддерживаются в AKS.

Дополнительные сведения см. в разделе "Размеры виртуальных машин CVM".

Функции безопасности

CVMs предлагают следующие улучшения безопасности по сравнению с другими размерами виртуальных машин.

  • Надежная аппаратная изоляция между виртуальными машинами, гипервизором и кодом управления узлами.
  • Настраиваемые политики аттестации для проверки соответствия узла требованиям перед развертыванием.
  • Ключи шифрования виртуальных машин, которыми владеет и управляет платформа или клиент (необязательно).
  • Безопасный выпуск ключа с криптографической привязкой между успешной аттестацией платформы и ключами шифрования виртуальных машин.
  • Выделенный экземпляр доверенного платформенного модуля (TPM) для аттестации и защиты ключей и секретов на виртуальной машине.
  • Возможность безопасной загрузки, аналогичная доверенному запуску для виртуальных машин Azure

Как это работает?

Если вы выполняете рабочую нагрузку, требующую повышенной конфиденциальности и целостности, вы можете воспользоваться шифрованием памяти и улучшенной безопасностью без изменений кода в приложении. Все поды на узле CVM являются частью одной границы доверия. Узлы в пуле узлов, созданном с помощью CVMs, используют настраиваемый образ узла , специально настроенный для CVM.

Поддерживаемые версии ОС

Пулы узлов CVM можно создавать в типах ОС Linux (Ubuntu и Azure Linux). Однако не все версии ОС поддерживают пулы узлов CVM.

Эта таблица включает поддерживаемые версии ОС:

Тип ОС Артикул ОС Поддержка CVM CVM по умолчанию
Линукс Ubuntu Поддерживается Ubuntu 20.04 по умолчанию для Kubernetes версии 1.24-1.33. Ubuntu 24.04 — это значение по умолчанию для Kubernetes версии 1.34-1.38.
Линукс Ubuntu2204 Не поддерживается AKS не поддерживает CVM для Ubuntu 22.04.
Линукс Ubuntu2404 Поддерживается CVM поддерживается на Ubuntu2404 в Kubernetes 1.32-1.38.
Линукс AzureLinux Поддерживается в Azure Linux 3.0 Azure Linux 3 используется по умолчанию при включении CVM для Kubernetes версий 1.28–1.36.
Линукс flatcar Не поддерживается Flatcar Container Linux для AKS не поддерживает CVM.
Линукс AzureLinuxOSGuard Не поддерживается Azure Linux с OS Guard для AKS не поддерживает CVM.
Линукс AzureContainerLinux Не поддерживается Azure Контейнер Linux (ACL) не поддерживает CVM.
Виндоус Все SKU ОС Windows Не поддерживается N/A

При использовании Ubuntu или AzureLinux в качестве osSKU, если версия ОС по умолчанию не поддерживает CVM, AKS по умолчанию использует самую последнюю версию ОС с поддержкой CVM. Например, Ubuntu 22.04 по умолчанию используется для пулов узлов Linux. Так как 22.04 в настоящее время не поддерживает cvms, AKS по умолчанию использует пулы узлов с поддержкой Ubuntu 20.04 для Linux CVM.

Ограничения

При добавлении пула узлов с CVM в AKS применяются следующие ограничения:

  • Вы не можете использовать FIPS, ARM64, доверенный запуск или изоляцию контейнера Pod.
  • Невозможно обновить существующий пул узлов, чтобы перейти к размеру CVM. Чтобы выполнить миграцию, необходимо изменить размер пула узлов.
  • Вы не можете использовать CVMs с пулами узлов Windows.
  • Azure Container Linux (ACL) в настоящее время не поддерживает пулы узлов CVM в AKS.

Предпосылки

Прежде чем начать, убедитесь, что у вас есть следующее:

  • Существующий кластер AKS.
  • Размеры CVM должны быть доступны для вашей подписки в регионе, где создается кластер. Необходимо иметь достаточную квоту для создания пула узлов с размером CVM.

Добавление пула узлов с cvM в кластер AKS

Добавьте пул узлов с CVM в кластер AKS с помощью az aks nodepool add команды и задайте node-vm-sizeподдерживаемый размер виртуальной машины.

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.

Чтобы создать пул узлов CVM, использующий Azure Linux, задайте --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

Обновите существующий пул узлов с помощью CVM до Ubuntu 24.04 из Ubuntu 20.04 с помощью az aks nodepool update команды. Задайте значение os-sku as Ubuntu2404.

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

Проверьте, что пул узлов использует CVM

  1. Убедитесь, что пул узлов использует CVM, с помощью команды az aks nodepool show, и убедитесь, что vmSize имеет значение Standard_DCa4_v5.

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

    Следующий пример команды и её вывода показывает, что пул узлов использует CVMs:

    az aks nodepool show \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name cvmnodepool \
        --query 'vmSize'
    
    "Standard_DC4as_v5"
    
  2. Убедитесь, что пул узлов использует образ CVM с помощью az aks nodepool list команды.

    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"
    

Удаление пула узлов с CVMs из кластера AKS

Удалите пул узлов с CVMs из кластера AKS с помощью az aks nodepool delete команды.

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

Из этой статьи вы узнали, как добавить пул узлов с CVMs в кластер AKS.