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

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

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

Это важно

Начиная с 30 ноября 2025 г. служба Azure Kubernetes (AKS) больше не поддерживает или предоставляет обновления безопасности для Azure Linux 2.0. Образ узла Linux 2.0 Azure заморожен в выпуске 202512.06.0. Начиная с 31 марта 2026 г. образы узлов будут удалены, и вы не сможете масштабировать пулы узлов. Выполните миграцию в поддерживаемую версию Linux Azure, обновив пулы узлов до поддерживаемой версии Kubernetes или переключив ее на osSku AzureLinux3. Дополнительные сведения см. в вопросе о прекращении поддержки на GitHub и объявлении об устаревании обновлений Azure. Чтобы оставаться в курсе объявлений и обновлений, следуйте заметкам о выпуске AKS.

Обзор

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

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

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

Перед началом работы

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

Ограничения

  • AKS поддерживает доверенный запуск в kubernetes версии 1.25.2 и выше.
  • Доверенный запуск поддерживает только виртуальные машины поколения 2 Azure.
  • Пулы узлов под управлением Windows Server не поддерживаются.
  • Доверенный запуск не может быть включен в том же пуле узлов, что и Arm64, песочница Pod или конфиденциальная виртуальная машина. Дополнительные сведения см. в документации по изображениям узлов.
  • Доверенный запуск можно включить только в том же пуле узлов, что и FIPS с Ubuntu 22.04.
  • Доверенный запуск не поддерживает виртуальный узел.
  • Группы доступности не поддерживаются, поддерживаются только масштабируемые наборы виртуальных машин.
  • Чтобы включить безопасную загрузку в пулах узлов GPU, необходимо пропустить установку драйвера GPU. Дополнительные сведения см. в разделе "Пропустить установку драйвера GPU".
  • Временные диски ОС можно создавать с Trusted Launch, и они поддерживаются во всех регионах. Однако не все размеры виртуальных машин поддерживаются. Дополнительные сведения см. в разделе "Эфемерные размеры ОС для доверенного запуска".
  • Flatcar Container Linux для AKS не поддерживает Trusted Launch на AKS.

Создайте кластер AKS с поддержкой Trusted Launch

При создании кластера включение vTPM или Secure Boot автоматически настраивает ваши пулы узлов на использование специализированного образа Trusted Launch. Этот образ специально сконфигурирован для поддержки функций безопасности, доступных при использовании Trusted Launch.

  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 \
        --generate-ssh-keys
    
  2. Выполните следующую команду, чтобы получить учетные данные для кластера Kubernetes. Используйте команду az aks get-credentials и замените значения для имени кластера и имени группы ресурсов.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  1. Создайте шаблон с параметрами доверенного запуска. Перед созданием шаблона ознакомьтесь со следующими параметрами:

    • enableSecureBoot: обеспечивает безопасную загрузку для проверки подлинности образа, подписанного доверенным издателем.
    • enableVTPM: включает vTPM и выполняет аттестацию, измеряя всю цепочку загрузки виртуальной машины.

    В шаблоне укажите значения для enableVTPM и enableSecureBoot. Та же схема, используемая для развертывания CLI, присутствует в Microsoft.ContainerService/managedClusters/agentPools разделе определения в "properties", как показано в следующем примере:

    "properties": {
        ...,
        "securityProfile": {
            "enableVTPM": "true",
            "enableSecureBoot": "true",
        }
    }
    
  2. Разверните шаблон с поддержкой VTPM и безопасной загрузкой в кластере. Подробные инструкции см. в статье "Развертывание кластера AKS с помощью шаблона ARM ".

Добавьте пул узлов с включённой функцией Trusted Launch

При создании пула узлов включение vTPM или функции Secure Boot автоматически настраивает пул узлов на использование специализированного образа Trusted Launch. Этот образ специально сконфигурирован для поддержки функций безопасности, доступных при использовании Trusted Launch.

  1. Добавьте пул узлов с включенным Доверенным запуском с помощью команды 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 --enable-secure-boot
    
  2. Убедитесь, что пул узлов использует образ доверенного запуска.

    Узлы доверенного запуска имеют следующие выходные данные:

    • Версия образа узла, содержащая "TL", например "AKSUbuntu-2204-gen2TLcontainerd".
    • "Security-type" должно быть "Trusted Launch".
    kubectl get nodes
    kubectl describe node {node-name} | grep -e node-image-version -e security-type
    
  1. Создайте шаблон с параметрами доверенного запуска. Перед созданием шаблона ознакомьтесь со следующими параметрами:

    • enableSecureBoot: обеспечивает безопасную загрузку для проверки подлинности образа, подписанного доверенным издателем.
    • enableVTPM: включает vTPM и выполняет аттестацию, измеряя всю цепочку загрузки виртуальной машины.

    В шаблоне укажите значения для enableVTPM и enableSecureBoot. Та же схема, используемая для развертывания CLI, присутствует в Microsoft.ContainerService/managedClusters/agentPools разделе определения в "properties", как показано в следующем примере:

    "properties": {
        ...,
        "securityProfile": {
            "enableVTPM": "true",
            "enableSecureBoot": "true",
        }
    }
    
  2. Разверните шаблон с поддержкой VTPM и безопасной загрузкой в кластере. Подробные инструкции см. в статье "Развертывание кластера AKS с помощью шаблона ARM ".

Добавить пул узлов с включенными Trusted Launch и FIPS

Вы можете включить доверенный запуск и FIPS только для пулов узлов Ubuntu 22.04 в размерах виртуальных машин поколения 2.

Сведения об операциях, связанных с FIPS, например об отключении FIPS в существующем пуле узлов, см. в разделе «Включение Федерального стандарта обработки информации (FIPS) для пулов узлов Azure Kubernetes Service (AKS)».

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

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

    Примечание.

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

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

    az aks nodepool add --resource-group myResourceGroup --cluster-name myAKSCluster --name mynodepool --node-count 3 --enable-vtpm --enable-secure-boot --enable-fips-image
    
  2. Убедитесь, что пул узлов использует образ доверенного запуска.

    Узлы доверенного запуска имеют следующие выходные данные:

    • Версия образа узла, содержащая "TL" и "FIPS".
    • "Security-type" равно "Trusted Launch".
    kubectl get nodes
    kubectl describe node {node-name} | grep -e node-image-version -e security-type
    
  1. Создайте шаблон с параметрами доверенного запуска и FIPS. Перед созданием шаблона ознакомьтесь со следующими параметрами:

    • enableSecureBoot: обеспечивает безопасную загрузку для проверки подлинности образа, подписанного доверенным издателем.
    • enableVTPM: включает vTPM и выполняет аттестацию, измеряя всю цепочку загрузки виртуальной машины.
    • enableFips: включает образ узла, совместимый с FIPS, для пула узлов.

    В шаблоне укажите значения для enableVTPM, enableSecureBootи enableFips. Та же схема, используемая для развертывания CLI, присутствует в Microsoft.ContainerService/managedClusters/agentPools разделе определения в "properties", как показано в следующем примере:

    "properties": {
        ...,
        "osSKU": "Ubuntu",
        "enableFips": true,
        "securityProfile": {
            "enableVTPM": "true",
            "enableSecureBoot": "true",
        }
    }
    
  2. Разверните шаблон в вашем кластере с включёнными vTPM, безопасной загрузкой и FIPS. Подробные инструкции см. в статье "Развертывание кластера AKS с помощью шаблона ARM ".

Включите vTPM или безопасную загрузку в существующем пуле узлов Trusted Launch

Вы можете обновить существующий пул узлов доверенного запуска, чтобы включить vTPM или безопасную загрузку. Поддерживаются следующие сценарии:

  • При создании пула узлов нужно указать только --enable-secure-boot; команду обновления можно выполнить, чтобы --enable-vtpm
  • При создании пула узлов нужно указать только --enable-vtpm; команду обновления можно выполнить, чтобы --enable-secure-boot

Если пул узлов в настоящее время не имеет образа доверенного запуска, вы не сможете обновить пул узлов, чтобы включить безопасную загрузку или vTPM.

  1. Убедитесь, что пул узлов использует образ доверенного запуска.

    Узлы доверенного запуска имеют следующие выходные данные:

    • Версия образа узла, содержащая "TL", например "AKSUbuntu-2204-gen2TLcontainerd".
    • "Security-type" должно быть "Trusted Launch".
    kubectl get nodes
    kubectl describe node {node-name} | grep -e node-image-version -e security-type
    

    Если пул узлов в настоящее время не имеет образа доверенного запуска, вы не сможете обновить пул узлов, чтобы включить безопасную загрузку или vTPM.

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

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

    Примечание.

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

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

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

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

    az aks nodepool update --cluster-name myCluster --resource-group myResourceGroup --name mynodepool --enable-secure-boot
    
  1. Убедитесь, что пул узлов использует образ доверенного запуска.

    Узлы доверенного запуска имеют следующие выходные данные:

    • Версия образа узла, содержащая "TL", например "AKSUbuntu-2204-gen2TLcontainerd".
    • "Security-type" должно быть "Trusted Launch".
    kubectl get nodes
    kubectl describe node {node-name} | grep -e node-image-version -e security-type
    

    Если пул узлов в настоящее время не имеет образа доверенного запуска, вы не сможете обновить пул узлов, чтобы включить безопасную загрузку или vTPM.

  2. Создайте шаблон с параметрами доверенного запуска. Перед созданием шаблона ознакомьтесь со следующими параметрами:

    • enableSecureBoot: обеспечивает безопасную загрузку для проверки подлинности образа, подписанного доверенным издателем.
    • enableVTPM: включает vTPM и выполняет аттестацию, измеряя всю цепочку загрузки виртуальной машины.

    В шаблоне укажите значения для enableVTPM и enableSecureBoot. Та же схема, используемая для развертывания CLI, присутствует в Microsoft.ContainerService/managedClusters/agentPools разделе определения в "properties", как показано в следующем примере:

    "properties": {
        ...,
        "securityProfile": {
            "enableVTPM": "true",
            "enableSecureBoot": "true",
        }
    }
    
  3. Разверните шаблон с поддержкой VTPM и безопасной загрузкой в кластере. Подробные инструкции см. в статье "Развертывание кластера AKS с помощью шаблона ARM ".

Назначьте поды узлам с включённым Trusted Launch

Вы можете настроить pod так, чтобы он запускался только на определенном узле или узлах либо чтобы предпочтение отдавалось узлам с включенной функцией Trusted Launch. Вы можете управлять этим, используя следующий селектор пула узлов в манифесте pod’а.

spec:
  nodeSelector:
        kubernetes.azure.com/security-type = "TrustedLaunch"

Отключите vTPM или безопасную загрузку в существующем пуле узлов Trusted Launch

Вы можете обновить существующий пул узлов, чтобы отключить vTPM или безопасную загрузку. В этом случае вы по-прежнему будете использовать образ Trusted Launch. Вы можете повторно включить vTPM или безопасную загрузку в любое время, обновив пул узлов.

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

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

Чтобы отключить vTPM в существующем пуле узлов:

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

Чтобы отключить Secure Boot в существующем пуле узлов:

az aks nodepool update --cluster-name myCluster --resource-group myResourceGroup --name mynodepool --disable-secure-boot 
  1. Создайте шаблон с параметрами доверенного запуска. Перед созданием шаблона ознакомьтесь со следующими параметрами:

    • enableSecureBoot: обеспечивает безопасную загрузку для проверки подлинности образа, подписанного доверенным издателем.
    • enableVTPM: включает vTPM и выполняет аттестацию, измеряя всю цепочку загрузки виртуальной машины.

    В шаблоне укажите значения для enableVTPM и enableSecureBoot. Та же схема, используемая для развертывания CLI, присутствует в Microsoft.ContainerService/managedClusters/agentPools разделе определения в "properties", как показано в следующем примере:

    "properties": {
        ...,
        "securityProfile": {
            "enableVTPM": "false",
            "enableSecureBoot": "false",
        }
    }
    
  2. Разверните шаблон на вашем кластере с отключёнными vTPM и защищённой загрузкой. Подробные инструкции см. в статье "Развертывание кластера AKS с помощью шаблона ARM ".

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

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