Доверенный запуск (предварительная версия) для Служба Azure Kubernetes (AKS)

Доверенный запуск (предварительная версия) повышает безопасность виртуальных машин поколения 2 путем защиты от расширенных и постоянных атак. Он позволяет администраторам развертывать узлы AKS, содержащие базовые виртуальные машины, с проверенными и подписанными загрузчиками, ядрами ОС и драйверами. Используя безопасную и измеряемую загрузку, администраторы получают аналитические сведения и уверенность в целостности всей цепочки загрузки.

Эта статья поможет вам понять эту новую функцию и как ее реализовать.

Обзор

Доверенный запуск состоит из нескольких скоординированных инфраструктурных технологий, которые можно активировать независимо. Каждая технология обеспечивает следующий уровень защиты от сложных угроз.

  • VTPM — доверенный запуск представляет виртуализированную версию аппаратного доверенного платформенного модуля (TPM), соответствующую спецификации TPM 2.0. Он служит выделенным безопасным хранилищем для ключей и измерений. При доверенном запуске виртуальной машине предоставляется собственный выделенный экземпляр TPM, работающий в безопасной среде за пределами виртуальной машины. vTPM активирует аттестацию, измеряя всю цепочку загрузки виртуальной машины (UEFI, ОС, система и драйверы). Доверенный запуск использует vTPM для выполнения удаленной аттестации в облаке. Он используется для проверка работоспособности платформы и принятия решений на основе доверия. При проверке работоспособности доверенный запуск может криптографически сертифицировать правильность загрузки виртуальной машины. Если процесс завершается ошибкой, возможно, так как виртуальная машина выполняет несанкционированный компонент, Microsoft Defender для облака выдает оповещения о целостности. В оповещениях содержатся сведения о компонентах, которые не прошли проверку целостности.

  • Безопасная загрузка . В корне доверенного запуска используется безопасная загрузка для виртуальной машины. Этот режим, реализованный во встроенном ПО платформы, обеспечивает защиту от установки rootkit-программ на основе вредоносного ПО и буткитов. Безопасная загрузка обеспечивает возможность загрузки только подписанных операционных систем и драйверов. При этом задается "корневое доверие" для стека программного обеспечения на виртуальной машине. При активации безопасной загрузки все компоненты загрузки ОС (загрузчик, ядро, драйверы ядра) должны быть подписаны доверенными издателями. Безопасная загрузка поддерживается как Windows, так и некоторыми дистрибутивами Linux. Если безопасная загрузка не проходит проверку подлинности образа, подписанного доверенным издателем, виртуальная машина не может загружаться. Дополнительные сведения см. в статье Безопасная загрузка.

Подготовка к работе

  • Azure CLI версии 2.44.1 или более поздней версии. Запустите az --version, чтобы определить версию и запустите az upgrade для обновления версии. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0.

  • Расширение aks-preview Azure CLI версии 1.0.0b6 или более поздней.

  • Зарегистрируйте функцию в подписке TrustedLaunchPreview Azure.

  • AKS поддерживает доверенный запуск (предварительная версия) версии 1.25.2 и выше.

  • Доверенный запуск поддерживает только виртуальные машины поколения 2 Azure.

  • Для безопасной загрузки требуются подписанные загрузчики, ядра ОС и драйверы.

Установка расширения Azure CLI для aks-preview

Внимание

Предварительные версии функций AKS доступны на уровне самообслуживания. Предварительные версии предоставляются "как есть" и "при наличии". На них не распространяются соглашения об уровне обслуживания и ограниченная гарантия. Предварительные версии AKS предоставляются с частичной клиентской поддержкой по мере возможности. Следовательно, эти функции не предназначены для использования в рабочей среде. Дополнительные сведения доступны в следующих статьях поддержки.

Чтобы установить расширение aks-preview, выполните следующую команду:

az extension add --name aks-preview

Выполните следующую команду, чтобы обновить до последней версии выпущенного расширения:

az extension update --name aks-preview

Регистрация флага функции TrustedLaunchPreview

Зарегистрируйте флаг компонента TrustedLaunchPreview, используя команду az feature register, как показано в указанном ниже примере.

az feature register --namespace "Microsoft.ContainerService" --name "TrustedLaunchPreview"

Через несколько минут отобразится состояние Registered (Зарегистрировано). Проверьте состояние регистрации с помощью команды az feature show :

az feature show --namespace "Microsoft.ContainerService" --name "TrustedLaunchPreview"

Когда состояние отражает зарегистрировано, обновите регистрацию поставщика ресурсов Microsoft.ContainerService с помощью команды az provider register:

az provider register --namespace "Microsoft.ContainerService"

Ограничения

  • Узлы кластера под управлением операционной системы Windows Server не поддерживаются.
  • Доверенный запуск (предварительная версия) не поддерживает пулы узлов с включенным FIPS или на основе ARM64.
  • Группы доступности не поддерживаются только Масштабируемые наборы виртуальных машин.
  • Чтобы включить безопасную загрузку в пулах узлов GPU, необходимо пропустить установку драйвера GPU. Дополнительные сведения см. в разделе"Пропустить установку драйвера GPU".
  • Диски эфемерной ОС можно создавать с помощью доверенного запуска и поддерживаются все регионы. Однако не все размеры виртуальных машин поддерживаются. Дополнительные сведения см. в статье о эфемерных размерах операционной системы доверенного запуска.

Развертывание нового кластера

Выполните следующие действия, чтобы развернуть кластер AKS с помощью Azure CLI.

  1. Теперь создайте кластер AKS с помощью команды az aks create. Перед выполнением команды просмотрите следующие параметры:

    • --name: введите уникальное имя кластера AKS, например myAKSCluster.
    • --resource-group: введите имя существующей группы ресурсов для размещения ресурса кластера AKS.
    • --enable-secure-boot: включает безопасную загрузку для проверки подлинности образа, подписанного доверенным издателем.
    • --enable-vtpm: включает vTPM и выполняет аттестацию, измеряя всю цепочку загрузки виртуальной машины.

    Примечание.

    Для безопасной загрузки требуются подписанные загрузчики, ядра ОС и драйверы. Если после включения безопасной загрузки узлы не запускаются, можно проверить, какие компоненты загрузки отвечают за сбои безопасной загрузки в виртуальной машине Azure Linux. Ознакомьтесь с проверкой сбоев безопасной загрузки.

    В следующем примере создается кластер с именем myAKSCluster с одним узлом в myResourceGroup и включается secure Boot и vTPM:

    az aks create --name myAKSCluster --resource-group myResourceGroup --node-count 1 --enable-secure-boot --enable-vtpm --enable-managed-identity --generate-ssh-keys
    
  2. Выполните следующую команду, чтобы получить учетные данные для кластера Kubernetes. Используйте команду az aks get-credentials и замените значения для имени кластера и имени группы ресурсов.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    

Добавление пула узлов с включенным доверенным запуском

Разверните пул узлов с включенным доверенным запуском с помощью команды az aks nodepool add . Перед выполнением команды просмотрите следующие параметры:

  • --cluster-name: введите имя кластера AKS.
  • --resource-group: введите имя существующей группы ресурсов для размещения ресурса кластера AKS.
  • --name: введите уникальное имя пула узлов. Имя пула узлов может содержать только буквы в нижнем регистре и должно начинаться с буквы в нижнем регистре. Для пулов узлов Linux длина должна составлять от 1 до 11 символов.
  • --node-count: количество узлов в пуле агентов Kubernetes. Значение по умолчанию — 3.
  • --enable-secure-boot: включает безопасную загрузку для проверки подлинности образа, подписанного доверенным издателем.
  • --enable-vtpm: включает vTPM и выполняет аттестацию, измеряя всю цепочку загрузки виртуальной машины.

Примечание.

Для безопасной загрузки требуются подписанные загрузчики, ядра ОС и драйверы. Если после включения безопасной загрузки узлы не запускаются, можно проверить, какие компоненты загрузки отвечают за сбои безопасной загрузки в виртуальной машине Azure Linux. Ознакомьтесь с проверкой сбоев безопасной загрузки.

В следующем примере развертывается пул узлов с включенным vTPM в кластере с именем myAKSCluster с тремя узлами:

az aks nodepool add --resource-group myResourceGroup -–cluster-name myAKSCluster --name mynodepool --node-count 3 --enable-vtpm  

В следующем примере развертывается пул узлов с поддержкой vTPM и безопасной загрузки в кластере с именем myAKSCluster с тремя узлами:

az aks nodepool add --resource-group myResourceGroup --cluster-name myAKSCluster --name mynodepool --node-count 3 --enable-vtpm --enable-secure-boot

Обновление кластера и включение доверенного запуска

Обновите пул узлов с включенным доверенным запуском с помощью команды az aks nodepool update . Перед выполнением команды просмотрите следующие параметры:

  • --resource-group: введите имя существующей группы ресурсов, включающей существующий кластер AKS.
  • --cluster-name: введите уникальное имя кластера AKS, например myAKSCluster.
  • --name: введите имя пула узлов, например mynodepool.
  • --enable-secure-boot: позволяет безопасной загрузке пройти проверку подлинности, что образ был подписан доверенным издателем.
  • --enable-vtpm: включает vTPM и выполняет аттестацию, измеряя всю цепочку загрузки виртуальной машины.

Примечание.

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

По умолчанию создание пула узлов с конфигурацией, совместимой с TL, и флаг компонента, зарегистрированный, приводит к созданию доверенного образа запуска. Без указания --enable-vtpm или --enable-secure-boot параметров они отключены по умолчанию и можно включить позже с помощью az aks nodepool update команды.

Примечание.

Для безопасной загрузки требуются подписанные загрузчики, ядра ОС и драйверы. Если после включения безопасной загрузки узлы не запускаются, можно проверить, какие компоненты загрузки отвечают за сбои безопасной загрузки в виртуальной машине Azure Linux. Ознакомьтесь с проверкой сбоев безопасной загрузки.

В следующем примере пул узлов mynodepool обновляется в myAKSCluster в myResourceGroup и включает безопасную загрузку и vTPM:

az aks nodepool update --cluster-name myCluster --resource-group myResourceGroup --name mynodepool --enable-secure-boot --enable-vtpm 

Назначение модулей pod узлам с включенным доверенным запуском

Вы можете ограничить модуль pod и ограничить его выполнение на определенном узле или узлах или предпочтения узлах с включенным доверенным запуском. Вы можете управлять этим с помощью следующего селектора пула узлов в манифесте pod.

Для пула узлов под управлением vTPM примените следующее:

spec:
  nodeSelector:
        kubernetes.azure.com/trusted-launch: true

Для пула узлов, на котором выполняется безопасная загрузка, примените следующее:

spec:
  nodeSelector:
        kubernetes.azure.com/secure-boot: true

Отключение безопасной загрузки

Чтобы отключить безопасную загрузку в кластере AKS, выполните следующую команду:

az aks nodepool update --cluster-name myCluster --resource-group myResourceGroup --name mynodepool --disable-secure-boot 

Примечание.

Обновления автоматически запустить повторное создание образа узла, и эта операция может занять несколько минут на узел.

Отключение vTPM

Чтобы отключить vTPM в кластере AKS, выполните следующую команду:

az aks nodepool update --cluster-name myCluster --resource-group myResourceGroup --name mynodepool --disable-vtpm

Следующие шаги

Из этой статьи вы узнали, как включить доверенный запуск. Дополнительные сведения о доверенном запуске.