Часто задаваемые вопросы об узлах Конфиденциальных вычислений в Службе Azure Kubernetes (AKS)

Эта статья содержит ответы на распространенные вопросы об узлах конфиденциальных вычислений на основе Intel SGX в Службе Azure Kubernetes (AKS). Если у вас возникнут дополнительные вопросы, обращайтесь по адресу электронной почты acconaks@microsoft.com.

Товар

Доступны ли узлы конфиденциальных вычислений в AKS для использования в рабочей среде?

Да, для узлов с анклавами Intel SGX.

Можно ли включить ускорение сети с помощью кластеров AKS конфиденциальных вычислений в Azure?

Да, узлы виртуальных машин DCSv3 поддерживают ускорение сети. Виртуальные машины DCSv2 не выполняются.

Какая версия драйвера Intel SGX используется в образе AKS для конфиденциальных узлов?

В настоящее время виртуальные машины DCSv2/DCSv3 для конфиденциальных вычислений Azure устанавливаются с Intel SGX DCAP 1.33.2

Можно ли внедрить сценарии после установки или настроить драйверы для узлов, подготовленных с помощью AKS?

Нет. Узлы конфиденциальных вычислений на основе обработчика AKS поддерживают узлы конфиденциальных вычислений, допускающие пользовательские установки и обладающие полным контролем над уровнем управления Kubernetes.

Можно ли запускать узлы ACC с другими стандартными номерами SKU AKS (выполнять сборку кластера разнородных пулов узлов)?

Да, можно запускать разные пулы узлов в одном кластере AKS, включая узлы ACC. Чтобы назначить приложения анклава определенному пулу узлов, рассмотрите добавление селекторов узлов или применение ограничений EPC. Дополнительные сведения см. в кратком руководстве по конфиденциальным узлам по ссылке.

Можно ли запускать узлы Windows и контейнеры Windows с помощью ACC?

В настоящее время нет. Если вам необходимы узлы или контейнеры Windows, обратитесь к группе разработки продукта по адресу электронной почты acconaks@microsoft.com.

Можно ли по-прежнему планировать и запускать контейнеры, не предназначенные для работы в анклаве, на узлах конфиденциальных вычислений?

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

Какой номер SKU виртуальной машины следует выбрать для узлов конфиденциальных вычислений?

Номера SKU DCSv2 и DCsv3. Дополнительные сведения о DCSv2 и DCSv3 см. в разделе о поддерживаемых регионах.

Можно ли подготовить AKS с пулами узлов DCSv2 на портале Microsoft Azure?

Да. Azure CLI также можно использовать в качестве альтернативы, как описано здесь.

Какая версия Ubuntu и поколение виртуальных машин поддерживаются?

18.04 на поколении 2.

Каковы известные текущие ограничения продукта?

  • Поддерживаются только узлы виртуальных машин Ubuntu 18.04 2-го поколения.
  • Отсутствует поддержка узлов Windows и контейнеров Windows.
  • Не поддерживается горизонтальное автомасштабирование модулей pod на основе памяти EPC. Поддерживается масштабирование с использованием ЦП и обычной памяти.
  • Рабочие среды для разработчиков в AKS для конфиденциальных приложений в настоящее время не поддерживаются.

Можно ли подготовить AKS с пулами узлов DCSv2 или DCSv3 на портале Azure?

Да. Azure CLI также можно использовать в качестве альтернативы, как описано здесь.

Разработка и развертывание

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

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

Следует ли использовать базовый образ Docker, чтобы начать работу с приложениями анклава?

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

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

Что такое аттестация и как выполнять аттестацию приложений, работающих в анклавах?

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

Что делать, если размер контейнера превышает доступный объем памяти EPC?

Память EPC относится к части приложения, запрограммированной для выполнения в анклаве. Общий размер контейнера не подходит для сравнения с максимальным объемом доступной памяти EPC. На самом деле компьютеры DCSv2 с SGX разрешают недоверенной части приложения использовать не более 32 ГБ памяти виртуальной машины. Тем не менее, если контейнер потребляет больше доступной памяти EPC, это может повлиять на производительность части программы, работающей в анклаве.

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

Примечание.

В следующем примере вытягивается общедоступный образ контейнера из Docker Hub. Рекомендуется настроить секрет для извлечения, чтобы проверка подлинности выполнялась с помощью учетной записи Docker Hub, а не анонимного запроса на вытягивание. Чтобы повысить надежность при работе с общедоступным содержимым, импортируйте образ и управляйте им в частном реестре контейнеров Azure. Узнайте больше о работе с общедоступными образами.

apiVersion: batch/v1
kind: Job
metadata:
  name: sgx-test
  labels:
    app: sgx-test
spec:
  template:
    metadata:
      labels:
        app: sgx-test
    spec:
      containers:
      - name: sgxtest
        image: oeciteam/sgx-test: 1.0
        resources:
          limits:
            sgx.intel.com/sgx_epc_mem_in_MiB: 10 # This limit will automatically place the job into confidential computing node. Alternatively, you can target deployment to node pools
      restartPolicy: Never
  backoffLimit: 0

Что произойдет, если мой анклав потребляет больше максимальной доступной памяти EPC?

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

Почему в приложении анклава не удается выполнить несколько процессов с помощью вилок () и exec?

В настоящее время виртуальные машины SKU DCSv2 в Azure поддерживают один диапазон адресов для программы, выполняющейся в анклаве. Один процесс — это текущее ограничение, разработанное для обеспечения высокого уровня безопасности. Однако средства включения конфиденциальных контейнеров могут иметь альтернативные реализации для преодоления этого ограничения.

Нужно ли подключать тома драйверов в файле YAML развертывания?

Нет. Для этого продукт предоставляет надстройку ACC, которая включает confcom. Дополнительные сведения о развертывании см. здесь.

Можно ли изменить текущую версию драйвера Intel SGX DCAP в AKS?

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

Будут ли загружаться в анклав для конфиденциальных вычислений только подписанные и доверенные образы?

Не в ходе инициализации анклава, однако проверить подпись в процессе аттестации можно. Справку см. здесь.

Возможно ли подписывание контейнеров, чтобы обеспечить защиту целостности кода в конфиденциальных контейнерах?

Конфиденциальные контейнеры позволяют подписывать код анклава, но не сам контейнер Docker. С помощью подписания кода анклава (который обычно является основным кодом приложения в Java, Python и т. д.) вы можете проверить код анклава с помощью аттестации MRSIGNER, прежде чем вы сможете доверять коду и среде выполнения. Для этого используйте поток аттестации.

Дальнейшие действия

Дополнительные сведения о конфиденциальных контейнерах см. на странице о конфиденциальных контейнерах.