Как я могу развернуть приложения SGX на Kubernetes?

#kubernetes #sgx #confidential

#kubernetes #sgx #конфиденциально

Вопрос:

Недавно я узнал, что процессоры Intel SGX способны шифровать анклавы для постоянного хранения на диске. После этого я начал писать свои первые приложения SGX, и теперь мне интересно, есть ли какая-нибудь возможность развернуть их на Kubernetes?

Ответ №1:

Ваш вопрос можно разделить на несколько шагов:

  1. Наличие кластера Kubernetes, который предоставляет SGX вашим приложениям

Вам понадобятся узлы Kubernetes с процессорами, поддерживающими SGX. Способ, которым Kubernetes обрабатывает «специальные устройства» как SGX, заключается в использовании плагинов для устройств. Для Kubernetes существует несколько плагинов для устройств SGX:

После того, как вы оснастили узел таким плагином, они предоставляют вам механизм для предоставления устройства SGX вашим контейнерам.

  1. Создание приложений SGX для Kubernetes и доступ к ресурсам SGX

Вам нужно будет объединить ваш анклав в контейнер и написать определения ресурсов Kubernetes. Вероятно, наиболее распространенным языком для облачных приложений является Go. Существует отличный пример конфиденциального приложения микросервиса на основе среды выполнения EdgelessRT Go и SDK (ссылка), в котором используется плагин Azure device для предоставления SGX контейнерам: https://github.com/edgelesssys/emojivoto

  1. Управление аттестацией, запечатыванием и т. Д. для вашего приложения SGX

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