Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Служба Azure Kubernetes (AKS) предоставляет подключаемый модуль для виртуальных машин конфиденциальных вычислений Azure. Подключаемый модуль — confcomэто набор управляющей программы. Плагин выполняется только для конфиденциальных ВМ с Intel Software Guard Extensions (SGX) в кластере AKS. Этот подключаемый модуль зарегистрирован на уровне кластера AKS. Плагин позволяет легко управлять конфиденциальными узлами.
Перед началом работы включите плагин в вашем кластере AKS.
Плагин устройства Intel SGX для AKS
Модуль устройства SGX реализует подключаемый интерфейс модуля устройства Kubernetes для памяти кэша страниц анклава (EPC). В результате этот подключаемый модуль делает память EPC еще одним типом ресурсов в Kubernetes. Пользователи могут указывать ограничения на EPC так же, как и другие ресурсы. Помимо функции планирования, плагин устройства помогает назначать разрешения драйвера устройства SGX для контейнеров с конфиденциальной рабочей нагрузкой.
Доступен пример реализации развертывания на основе памяти EPCkubernetes.azure.com/sgx_epc_mem_in_MiB.
Помощник PSW с SGX для работы с цитатами
Анклавные приложения, которые выполняют удалённую аттестацию, должны сгенерировать доказательство. Цитируемое утверждение предоставляет криптографическое подтверждение идентичности и состояния приложения, а также среду выполнения анклава. Создание отчётов опирается на некоторые доверенные компоненты программного обеспечения Intel, входящие в состав компонентов программного обеспечения платформы SGX (PSW/DCAP). Этот PSW упаковывается как набор управляющих программ, которые выполняются на каждом узле. При запросе цитаты аттестации из приложений анклава можно использовать PSW. Использование предоставленной службы AKS помогает лучше поддерживать совместимость между PSW и другими компонентами SW в узле. Ознакомьтесь с сведениями о функции ниже.
Приложения анклавов, которые выполняют удалённую аттестацию, требуют сгенерированного заключения. Данное доказательство предоставляет криптографическое подтверждение идентичности приложения, его состояния и исполняющей среды. Для поколения требуются доверенные компоненты программного обеспечения, которые являются частью Intel PSW.
Обзор
Примечание.
Эта функция необходима только для виртуальных машин DCsv2/DCsv3, использующих специализированное оборудование Intel SGX.
Intel поддерживает два режима аттестации для запуска создания кавычки. Чтобы узнать, как выбрать тип, см. в разделе [Различия типов аттестации] (#attestation-type-differences).
In-proc: размещает доверенные компоненты программного обеспечения внутри процесса приложения анклава. Этот метод полезен при выполнении локальной аттестации (между 2 приложениями анклава в одном узле виртуальной машины)
внепроцессный: размещает доверенные программные компоненты за пределами анклавного приложения. Это предпочтительный метод при выполнении удаленной аттестации.
Приложения SGX создаются с помощью пакета Open Enclave SDK и по умолчанию используется режим in-proc аттестации. Приложения на основе SGX позволяют использовать внепрокционные приложения и требуют дополнительного размещения. Эти приложения предоставляют необходимые компоненты, такие как Менеджер сервиса архитектурного анклава (AESM), расположенные вне приложения.
Настоятельно рекомендуется использовать эту функцию. Эта функция повышает время работы приложений анклава во время обновлений Платформы Intel или обновлений драйверов DCAP.
Различия типов аттестации
Не требуется никаких обновлений для компонентов PSW, генерирующих расценки, для каждого контейнерного приложения.
Воспользовавшись внепроцессным подходом, владельцы контейнеров освобождаются от необходимости управлять обновлениями в своем контейнере. Вместо этого владельцы контейнеров полагаются на предоставленный интерфейс, который вызывает централизованную службу за пределами контейнера.
Нет опасений по поводу отказов, связанных с устаревшими компонентами PSW, для внешних процессов. Формирование отчета включает доверенные компоненты SW - анкла́в цитирования (QE) и анклав сертифика́та обеспе́чения (PCE), которые входят в доверенную вычислительную базу (TCB). Чтобы соблюдать требования аттестации, эти компоненты программного обеспечения должны быть актуальными. Поставщик управляет обновлениями этих компонентов. Клиентам никогда не придется сталкиваться с проблемами аттестации из-за устаревших компонентов программного обеспечения в контейнере.
Внепроцессный режим лучше использует память EPC. В режиме внутрипроцессной (in-proc) аттестации приложение энклава создает экземпляр QE и PCE для удаленной аттестации. При использовании вне proc контейнер не размещает эти анклавы и не потребляет память анклава из квоты контейнера.
Существуют также средства защиты от принудительного применения ядра. Когда драйвер SGX передается в ядро Linux, анклав имеет более высокие привилегии. Эта привилегия позволяет анклавам вызывать PCE, которое нарушает приложение анклава, работающее в режиме proc. По умолчанию анклавы не имеют такого разрешения. Чтобы предоставить приложению с поддержкой анклавов эту привилегию, нужно вносить изменения в процесс установки приложения. Поставщик службы, обрабатывающей запросы вне процесса, гарантирует, что служба установлена с этой привилегией.
Вам не нужно проверять обратную совместимость с PSW и DCAP. Поставщик проверяет обновления компонентов генерации смет PSW для обеспечения обратной совместимости. Этот шаг обрабатывает проблемы совместимости заранее и устраняет их перед развертыванием обновлений для конфиденциальных рабочих нагрузок.
Аттестация вне процесса для конфиденциальных заданий
Модель аттестации вне процесса подходит для конфиденциальных рабочих нагрузок. Запрос кавычек и создание кавычки выполняются отдельно, но на одном физическом компьютере. Создание кавычки выполняется централизованно и обслуживает запросы к QUOTES со всех сущностей. Правильно определите интерфейс и сделайте его обнаруживаемым для любого субъекта, чтобы запрашивать ценовые предложения.
Абстрактная модель применяется к сценариям конфиденциальной рабочей нагрузки. Эта модель использует уже доступную службу AESM. AESM контейнеризован и развернут в качестве управляющей программы в кластере Kubernetes. Kubernetes гарантирует, что на каждом узле агента будет развернут один экземпляр контейнера службы AESM, обернутый в модуль. Новый комплект демон-программы SGX Quote имеет зависимость от sgx-device-plugin, так как контейнер службы AESM запрашивает память EPC у sgx-device-plugin для запуска анклавов QE и PCE.
Каждый контейнер должен согласиться на использование внепроцессного создания цитат, задав переменную среды SGX_AESM_ADDR=1 во время создания. Контейнер также должен включать пакет libsgx-quote-ex, который направляет запрос к сокету домена Unix по умолчанию.
Приложение по-прежнему может использовать внутриипроцессную аттестацию, как и раньше. Однако вы не можете одновременно использовать как in-proc, так и out-of-proc в одном приложении. Внепроцессная инфраструктура доступна по умолчанию и потребляет ресурсы.
Примечание.
Если вы используете программное обеспечение оболочки Intel SGX (OSS/ISV), чтобы запускать неизмененные контейнеры, взаимодействие аттестации с оборудованием обычно осуществляется для ваших приложений более высокого уровня. Обратитесь к реализации аттестации для каждого поставщика.
Пример реализации
По умолчанию эта служба не включена для кластера AKS с надстройкой confcom. Обновите надстройку с помощью следующей команды.
az aks addon update --addon confcom --name " YourAKSClusterName " --resource-group "YourResourceGroup " --enable-sgxquotehelper
После завершения работы службы используйте приведенный ниже пример docker для приложения на основе Open Enclave для проверки потока.
SGX_AESM_ADDR=1 Задайте переменную среды в файле Docker. Или задайте переменную в файле развертывания. Следуйте этому примеру для файла Docker и сведений о развертывании YAML.
Примечание.
Пакет libsgx-quote-ex от Intel необходимо упаковать в контейнер приложения для правильной работы аттестации вне основного процесса. Приведенные ниже инструкции содержат подробные сведения.
# Refer to Intel_SGX_Installation_Guide_Linux for detail
FROM ubuntu:18.04 as sgx_base
RUN apt-get update && apt-get install -y \
wget \
gnupg
# Add the repository to sources, and add the key to the list of
# trusted keys used by the apt to authenticate packages
RUN echo "deb [arch=amd64] https://download.01.org/intel-sgx/sgx_repo/ubuntu bionic main" | tee /etc/apt/sources.list.d/intel-sgx.list \
&& wget -qO - https://download.01.org/intel-sgx/sgx_repo/ubuntu/intel-sgx-deb.key | apt-key add -
# Add Microsoft repo for az-dcap-client
RUN echo "deb [arch=amd64] https://packages.microsoft.com/ubuntu/18.04/prod bionic main" | tee /etc/apt/sources.list.d/msprod.list \
&& wget -qO - https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
FROM sgx_base as sgx_sample
RUN apt-get update && apt-get install -y \
clang-7 \
libssl-dev \
gdb \
libprotobuf10 \
libsgx-dcap-ql \
libsgx-quote-ex \
az-dcap-client \
open-enclave
WORKDIR /opt/openenclave/share/openenclave/samples/attestation
RUN . /opt/openenclave/share/openenclave/openenclaverc \
&& make build
# this sets the flag for out of proc attestation mode, alternatively you can set this flag on the deployment files
ENV SGX_AESM_ADDR=1
CMD make run
Вместо этого задайте внепроцессный режим аттестации в файле YAML для развертывания следующим образом:
apiVersion: batch/v1
kind: Job
metadata:
name: sgx-test
spec:
template:
spec:
containers:
- name: sgxtest
image: <registry>/<repository>:<version>
env:
- name: SGX_AESM_ADDR
value: 1
resources:
limits:
kubernetes.azure.com/sgx_epc_mem_in_MiB: 10
volumeMounts:
- name: var-run-aesmd
mountPath: /var/run/aesmd
restartPolicy: "Never"
volumes:
- name: var-run-aesmd
hostPath:
path: /var/run/aesmd
Развертывание должно завершиться успешно и позволить приложениям проводить удалённую аттестацию с помощью SGX Quote Helper service.