Поделиться через


Конфиденциальные контейнеры в Служба Azure Kubernetes(AKS) с анклавами Intel SGX

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

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

Схема преобразования конфиденциальных контейнеров с новыми шагами для включения Intel SGX и AKS.

Программное обеспечение оболочки SGX, необходимое для выполнения стандартных контейнеров, предлагается партнерами по программному обеспечению Azure или решениями Open Source Software (OSS).

Партнеры по включению

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

Внимание

Партнеры по программному обеспечению Azure часто включают плату за лицензирование поверх инфраструктуры Azure. Проверьте все условия программного обеспечения партнера независимо.

Fortanix

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

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

SCONE (Scontain)

Политики безопасности SCONE (Scontain) создают сертификаты, ключи и секреты. Эти учетные данные отображаются только в службах с аттестацией для приложения. Службы приложений автоматически выполняют аттестацию друг для друга через TLS. Вам не нужно изменять приложения или TLS. Дополнительные сведения см. в демонстрации приложения Flask scONE.

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

Схема рабочего процесса SCONE, показывающая, как SCONE обрабатывает двоичные образы.

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

Anjuna

Anjuna предоставляет программное обеспечение платформы SGX для запуска неизмененных контейнеров в AKS. Дополнительные сведения см. в документации Anjuna по функциям и примерам приложений.

Начните работу, используя примеры Redis Cache и настраиваемого приложения Python, доступные здесь

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

Включение OSS

Примечание.

Конфиденциальные вычисления Azure и Корпорация Майкрософт не связаны напрямую с этими проектами и решениями.

Gramine

Gramine — это упрощенная гостевая ОС, предназначенная для запуска одного приложения Linux с минимальными требованиями к узлу. Gramine может запускать приложения в изолированной среде. Существует поддержка инструментов для преобразования существующего контейнера Docker в готовые контейнеры SGX.

Дополнительные сведения см. в примере приложения и развертывания Gramine в AKS

Occlum

Occlum — это надежная, многопроцессная библиотечная ОС (LibOS) для Intel SGX. ОС позволяет устаревшим приложениям работать в SGX без изменений в исходном коде. Occlum прозрачно защищает конфиденциальность рабочих нагрузок пользователей, позволяя легко "поднять и переместить" в существующие приложения Docker.

Дополнительные сведения см. в инструкциях по развертыванию Occlum и примерах приложений в AKS.

Marblerun

Marblerun — это платформа оркестрации для конфиденциальных контейнеров. Вы можете запускать и масштабировать конфиденциальные службы в Kubernetes с поддержкой SGX. Marblerun выполняет стандартные задачи, такие как проверка служб в кластере, управление секретами для них и установка подключений анклав к анклаву с использованием mTLS между ними. Marblerun также гарантирует, что ваш кластер конфиденциальных контейнеров будет соответствовать манифесту, определенному в простом JSON. Манифест можно проверить с внешними клиентами с помощью удаленной аттестации.

Эта платформа расширяет свойства конфиденциальности, целостности и проверяемости одного анклава в кластер Kubernetes.

Marblerun поддерживает конфиденциальные контейнеры, созданные с помощью Graphene, Occlum и EGo, с примерами для каждого пакета SDK. Платформа работает в Kubernetes вместе с существующими облачными инструментами. Есть интерфейс командной строки и диаграммы helm. Marblerun также поддерживает узлы конфиденциальных вычислений в AKS. Следуйте руководству Marblerun по развертыванию Marblerun в AKS.

Эталонные архитектуры конфиденциальных контейнеров

Связаться

У вас есть вопросы о реализации? Вы хотите стать включением для конфиденциальных контейнеров? Отправьте сообщение электронной почты на адрес [email protected].

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