Поддержка анклавов приложений с узлами конфиденциальных вычислений на основе Intel SGX в Служба Azure Kubernetes

Конфиденциальные вычисления в Azure позволяют защитить конфиденциальные данные во время их использования. Анклавы на основе Intel SGX позволяют запускать приложения, упакованные в виде контейнера в AKS. Контейнеры, выполняемые в доверенной среде выполнения (TEE), обеспечивают изоляцию от других контейнеров, ядра узла в аппаратно защищенной, защищенной целостностью удостоверяемой среде.

Общие сведения

Служба Azure Kubernetes (AKS) поддерживает добавление узлов виртуальных машин конфиденциальных вычислений Intel SGX в качестве пулов агентов в кластере. Эти узлы позволяют выполнять конфиденциальные рабочие нагрузки в аппаратном TEE. TeEs позволяют коду на уровне пользователя из контейнеров выделять частные области памяти для выполнения кода напрямую с ЦП. Эти области выделенной памяти, которые выполняются напрямую ЦП, называются анклавами. Анклавы помогают защитить конфиденциальность данных, целостность данных и целостность кода от других процессов, выполняющихся на одних и том же узлах, а также от оператора Azure. Модель выполнения Intel SGX также удаляет промежуточные уровни гостевой ОС, ОС узла и гипервизора, тем самым уменьшая контактную зону для атак. Использование модели выполнения на основе оборудования с изоляцией для каждого контейнера в узле позволяет приложениям напрямую выполнять задачи с использованием ЦП, поддерживая при этом специальный блок памяти зашифрованным для каждого контейнера. Узлы конфиденциальных вычислений с конфиденциальными контейнерами — это отличное дополнение к стратегии "Никому не доверяй", планированию безопасности и углубленной защите контейнеров.

Рисунок конфиденциального вычислительного узла AKS, на котором показаны конфиденциальные контейнеры с защищенным кодом и данными.

Функция конфиденциальных вычислительных узлов Intel SGX

  • Аппаратная изоляция контейнера на уровне процессов с помощью доверенной среды выполнения Intel SGX (TEE)
  • Кластеры разнородных пулов узлов (сочетание конфиденциальных и неконфиденциальных пулов узлов)
  • Планирование модулей pod на основе памяти зашифрованного кэша страниц (EPC) с помощью надстройки AKS confcom
  • Предустановленный драйвер Intel SGX DCAP и зависимость ядра
  • Горизонтальное автомасштабирование pod и автомасштабирование кластера на основе используемых ресурсов ЦП
  • Поддержка контейнеров Linux на рабочих узлах виртуальной машины Ubuntu 18.04 2-го поколения

Надстройка конфиденциальных вычислений для AKS

Функция надстройки предоставляет дополнительные возможности в AKS при запуске пулов узлов с поддержкой Intel SGX конфиденциальных вычислений в кластере. Надстройка confcom в AKS включает приведенные ниже функции.

Подключаемый модуль устройства Azure для Intel SGX

Подключаемый модуль устройства реализует интерфейс подключаемого модуля устройства Kubernetes для памяти кэша зашифрованных страниц (EPC) и предоставляет драйверы устройств из узлов. Фактически этот подключаемый модуль предоставляет память EPC как еще один тип ресурса в Kubernetes. Пользователи могут указать для этого ресурса ограничения так же, как для любых других ресурсов. Помимо функции планирования подключаемый модуль устройства помогает назначать разрешения драйвера устройств Intel SGX для развертываний конфиденциальных контейнеров. Благодаря этому разработчик подключаемого модуля может не подключать тома драйвера Intel SGX в файлах развертывания. Эта надстройка в кластерах AKS выполняется в качестве управляющей программы для каждого узла виртуальной машины с поддержкой Intel SGX. Пример реализации развертывания на основе памяти EPC (kubernetes.azure.com/sgx_epc_mem_in_MiB) вы можете изучить здесь.

Вспомогатель цитат Intel SGX с компонентами программного обеспечения платформы

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

Приложения анклава, которые выполняют удаленную аттестацию, должны создавать цитаты. Цитата предоставляет криптографическое подтверждение удостоверения и состояния приложения, а также среду узла анклава. Создание предложений зависит от определенных доверенных программных компонентов intel, которые входят в состав программных компонентов платформы SGX (PSW/DCAP). Этот PSW упаковывается как набор управляющих программ, которые выполняются на каждом узле. Вы можете использовать PSW при запросе цитаты аттестации из приложений анклава. Использование предоставляемой службы AKS помогает лучше поддерживать совместимость между PSW и другими компонентами SW в узле с драйверами Intel SGX, которые являются частью узлов виртуальных машин AKS. Дополнительные сведения о том, как приложения могут использовать этот набор управляющих программ, не упаковывая примитивы аттестации в рамках развертываний контейнеров, см. здесь.

Модели программирования

Конфиденциальные контейнеры через партнеров и OSS

Конфиденциальные контейнеры позволяют конфиденциально запускать существующие неизмененные приложения-контейнеры в среде выполнения большинства распространенных языков программирования (Python, Node, Java и т. д.). Эта модель упаковки не требует изменения исходного кода или перекомпиляции и является самым быстрым методом для запуска в анклавах Intel SGX, который достигается путем упаковки стандартных контейнеров Docker с помощью Open-Source Projects или Решений партнеров Azure. В этой модели упаковки и выполнения все части приложения-контейнера загружаются в доверенную границу (анклав). Следовательно, она будет хорошим решением для готовых приложений-контейнеров, доступных на рынке, или пользовательских приложений, которые в настоящее время выполняются на узлах общего назначения. Дополнительные сведения о процессе подготовки и развертывания см. здесь.

Контейнеры с поддержкой анклавов

Узлы конфиденциальных вычислений в AKS также поддерживают контейнеры, запрограммированные для запуска в анклаве с использованием специального набора инструкций, доступного из ЦП. Эта модель программирования обеспечивает более строгий контроль над ходом выполнения и требует использования специальных пакетов SDK и платформ. Она обеспечивает максимальный контроль над блок-схемой приложения с самым низким уровнем доверенной вычислительной базы (TCB). Разработка контейнеров с поддержкой анклава включает в себя ненадежные и доверенные элементы для приложения-контейнера, что позволяет управлять обычным объемом памяти и объемом памяти кэша зашифрованных страниц (EPC), в котором выполняется анклав. Дополнительные сведения о контейнерах с поддержкой анклава см. здесь.

Часто задаваемые вопросы

Ответы на некоторые распространенные вопросы о поддержке пула узлов Служба Azure Kubernetes (AKS) для узлов конфиденциальных вычислений на основе Intel SGX см. здесь.

Next Steps

Развертывание кластера AKS с конфиденциальными вычислительными узлами

Примеры для быстрого начала работы с конфиденциальными контейнерами

Конфиденциальные виртуальные машины Intel SGX — список номеров SKU DCsv2

Конфиденциальные виртуальные машины Intel SGX — список номеров SKU DCsv3

Сеанс вебинара по углубленной защите с помощью конфиденциальных контейнеров