Конфиденциальные контейнеры (предварительная версия) в службе Azure Kubernetes

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

Конфиденциальные контейнеры в службе Azure Kubernetes (AKS) обеспечивают изоляцию уровня контейнера в рабочих нагрузках Kubernetes. Это дополнение к набору конфиденциальных вычислительных продуктов Azure и использует шифрование памяти AMD SEV-SNP для защиты контейнеров во время выполнения.

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

Что делает контейнер конфиденциальным?

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

  • Прозрачность: конфиденциальная среда контейнера, в которой предоставлен общий доступ к конфиденциальному приложению, вы можете увидеть и проверить, безопасно ли это. Все компоненты доверенной вычислительной базы (TCB) должны быть открыты.
  • Возможность аудита. У вас есть возможность проверить и узнать, какая версия пакета среды CoCo, включая гостевую ОС Linux, и все компоненты являются текущими. Корпорация Майкрософт получает доступ к гостевой ОС и контейнерной среде выполнения для проведения проверок через аттестацию. Он также выпускает безопасный хэш-алгоритм (SHA) гостевой ОС сборки для создания строковой звуковой системы и истории управления.
  • Полная аттестация: все, что является частью TEE, должно быть полностью измерено ЦП с возможностью удаленной проверки. Отчет о оборудовании процессора AMD SEV-SNP должен через утверждения аттестации отражать слои контейнера и хэш конфигурации среды выполнения контейнеров. Приложение может получить отчет оборудования локально, включая отчет, который отражает образ гостевой ОС и среду выполнения контейнера.
  • Целостность кода. Принудительное применение среды выполнения всегда доступно с помощью определяемых клиентом политик для контейнеров и конфигурации контейнеров, таких как неизменяемые политики и подписывание контейнеров.
  • Изоляция от оператора: проекты безопасности, предполагающие принцип наименьших привилегий и максимальную изоляцию для защиты от всех ненадежных сторон, включая администраторов клиента/арендатора. Он включает обеспечение защиты существующего доступа к плоскости управления Kubernetes (kubelet) к конфиденциальным модулям pod.

При выполнении этих функций конфиденциальности продукт должен дополнительно поддерживать все неизмененные контейнеры Linux с высоким соответствием функций Kubernetes. Кроме того, он поддерживает разнородные пулы узлов (GPU, узлы общего назначения) в одном кластере для оптимизации затрат.

Какие типы конфиденциальных контейнеров в AKS?

В соответствии с приверженностью Корпорации Майкрософт сообществу с открытым исходным кодом базовый стек для конфиденциальных контейнеров использует агент Kata CoCo в качестве агента, работающего на узле, на котором размещен модуль pod, на котором выполняется конфиденциальная рабочая нагрузка. Во многих технологиях TEE, требующих границы между хостом и гостем, Kata Containers являются основой для начальной работы Kata CoCo. Корпорация Майкрософт также внесла вклад в сообщество Kata Containers для поддержки контейнеров, работающих внутри конфиденциальной виртуальной машины служебного назначения.

Контейнер Kata для работы с конфиденциальными данными находится в контейнерном хосте Azure Linux AKS. Azure Linux и VMM облачного гипервизора (монитор виртуальных машин) — это программное обеспечение для конечных пользователей в пользовательском пространстве, используемое для создания виртуальных машин и управления их жизненным циклом.

Изоляция на уровне контейнера в AKS

По умолчанию в AKS все рабочие нагрузки используют одно и то же ядро и одного администратора кластера. С выпуском предварительной версии функциональности песочницы Pod в AKS уровень изоляции повысился, появилась возможность обеспечения изоляции ядра для рабочих нагрузок на одном узле AKS. Дополнительные сведения о функции см. здесь. Конфиденциальные контейнеры являются следующим шагом этой изоляции и используют возможности шифрования памяти базовых размеров виртуальных машин AMD SEV-SNP. Эти виртуальные машины представляют собой DCa_cc и ECa_cc размеры с возможностью обеспечения соответствия корневого доверия оборудования к модулям pod, развернутым на нем.

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

Начало работы

Чтобы приступить к работе и узнать больше о поддерживаемых сценариях, ознакомьтесь с нашей документацией AKS.

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

Разверните конфиденциальный контейнер в AKS.