Доверенный запуск для Служба 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 поддерживает доверенный запуск версии 1.25.2 и выше.
- Доверенный запуск поддерживает только виртуальные машины поколения 2 Azure.
- Узлы кластера под управлением операционной системы Windows Server не поддерживаются.
- Доверенный запуск не поддерживает пулы узлов с включенным FIPS или на основе Arm64.
- Доверенный запуск не поддерживает виртуальный узел.
- Группы доступности не поддерживаются только Масштабируемые наборы виртуальных машин.
- Чтобы включить безопасную загрузку в пулах узлов GPU, необходимо пропустить установку драйвера GPU. Дополнительные сведения см. в разделе "Пропустить установку драйвера GPU".
- Диски эфемерной ОС можно создавать с помощью доверенного запуска и поддерживаются все регионы. Однако не все размеры виртуальных машин поддерживаются. Дополнительные сведения см. в статье о эфемерных размерах операционной системы доверенного запуска.
Развертывание нового кластера
Выполните следующие действия, чтобы развернуть кластер AKS с помощью Azure CLI.
Теперь создайте кластер 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
Выполните следующую команду, чтобы получить учетные данные для кластера 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 и выполняет аттестацию, измеряя всю цепочку загрузки виртуальной машины.
Примечание.
По умолчанию создание пула узлов с конфигурацией, совместимой с 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
Следующие шаги
Из этой статьи вы узнали, как включить доверенный запуск. Дополнительные сведения о доверенном запуске.
Azure Kubernetes Service