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


Управление доверенной аппаратной идентичностью

Служба управления доверенными аппаратными удостоверениями обрабатывает управление кэшем сертификатов для всех доверенных сред выполнения (TEEs), находящихся в Azure. Она также предоставляет сведения о доверенной вычислительной базе (TCB), чтобы установить минимальную базовую линию для решений аттестации.

Взаимодействие с управлением доверенными аппаратными удостоверениями и аттестацией.

Управление доверенными аппаратными удостоверениями определяет базовые показатели безопасности Azure для узлов конфиденциальных вычислений Azure (ACC) и кэширует залог от поставщиков TEE. Службы аттестации и узлы ACC могут использовать кэшированные сведения для проверки TEEs. На следующей схеме показаны взаимодействия между службой аттестации или узлом, Управлением удостоверениями доверенного оборудования и хостом анклава.

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

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

Как я могу использовать управление доверенными аппаратными удостоверениями с процессорами Intel?

Чтобы создать цитаты Intel SGX и Intel TDX, библиотеке генерации цитат Intel (QGL) требуется доступ к исходным данным для создания и проверки цитат. Все или часть этого обеспечения должны быть получены из управления идентификацией доверенного аппаратного устройства. Ее можно получить с помощью библиотеки поставщика котировок Intel (QPL) или клиентской библиотеки DCAP примитивов аттестации центра обработки данных Azure.

Дата «следующего обновления» API внутренней службы кэширования Azure, которым пользуется Аттестация Azure, кажется устарела. Это все еще работает и можно ли использовать его?

Поле tcbinfo содержит сведения о TCB. Служба управления доверенными аппаратными удостоверениями предоставляет более старые tcbinfo сведения по умолчанию. Обновление до самой актуальной tcbinfo информации от Intel приведет к сбоям аттестации для клиентов, которые не перешли на последний пакет SDK Intel, и это может вызвать отключения.

Open Enclave SDK и Azure Attestation не обращают внимания на nextUpdate дату и все равно будут проходить аттестацию.

Что такое библиотека Azure DCAP?

Библиотека примитивов аттестации Центра обработки данных Azure (DCAP), приходящая на замену Intel Quote Provider Library (QPL), извлекает данные формирования отчётов и данные проверки отчётов непосредственно из службы управления доверенными аппаратными удостоверениями. Получение обеспечения непосредственно из службы управления доверенными аппаратными удостоверениями гарантирует, что все узлы Azure имеют сопроводительную документацию сразу доступной в облаке Azure, чтобы уменьшить внешние зависимости. Рекомендуется использовать последнюю версию, доступную для целевой ОС.

Где можно скачать последнюю библиотеку Azure DCAP?

Чтобы скачать пакеты, используйте следующие ссылки:

Для более новых версий Ubuntu (например, Ubuntu 24.04) необходимо использовать Intel QPL.

Почему управление идентификацией доверенного оборудования и Intel имеют разные базовые стандарты?

Управление доверенными аппаратными идентификаторами и Intel предоставляют различные базовые уровни доверенной вычислительной основы. Если клиенты предполагают, что Intel имеет последние базовые показатели, они должны убедиться, что все требования выполнены. Такой подход может привести к разрыву, если клиенты не обновили указанные требования.

Управление доверенной аппаратной идентификацией принимает более умеренный подход к обновлению основного уровня TCB, чтобы клиенты могли вносить необходимые изменения в удобном для них темпе. Хотя этот подход предоставляет более старую базовую линию TCB, клиенты не будут испытывать проблем, если они не соответствовали требованиям новой базовой линии TCB. Поэтому базовый уровень TCB в Управлении удостоверениями на основе доверенного аппаратного обеспечения отличается от базовой версии Intel. Мы хотим дать клиентам возможность соответствовать требованиям новых базовых показателей TCB в их собственном темпе, а не вынуждать их обновляться и вызывать сбои, требующие пересмотра приоритетов рабочих процессов.

С процессорами Intel Xeon E я мог бы получить свои сертификаты непосредственно из Intel PCS. Почему для процессоров Intel Xeon Scalable с 4-го поколения необходимо получать сертификаты от доверенной системы управления аппаратными удостоверениями? И как получить эти сертификаты?

Начиная с 4-го поколения масштабируемых процессоров Intel® Xeon® Azure выполняет непрямую регистрацию в Службе регистрации Intel с помощью манифеста платформы и сохраняет полученный сертификат PCK в службе управления доверенными аппаратными удостоверениями (THIM), так как служба регистрации Intel не будет хранить корневые ключи для платформы в этом случае, и это отражается false на флаге в CachedKeys сертификатах PCK. Так как используется непрямая регистрация, для всех следующих подключений к Intel PCS потребуется манифест платформы, который Azure не предоставляет виртуальным машинам (ВМ). Вместо этого виртуальные машины должны обратиться к THIM для получения сертификатов PCK. Чтобы получить сертификат PCK, можно использовать Intel QPL или библиотеку Azure DCAP.

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

Заказчикам может потребоваться гибкость, чтобы использовать «Intel QPL» для взаимодействия с системой доверенного управления аппаратными удостоверениями, не загружая другую зависимость от корпорации Майкрософт (то есть клиентскую библиотеку Azure DCAP). Клиенты, которые хотят использовать Intel QPL с доверенной службой управления удостоверениями оборудования, должны настроить файл конфигурации Intel QPL sgx_default_qcnl.conf.

Средства генерации/проверки, используемые для создания отчетов Intel SGX или Intel TDX, можно разделить на:

  • Сертификат PCK. Чтобы получить его, клиенты должны использовать конечный пункт управления доверенными аппаратными удостоверениями.
  • Все остальные документы, связанные с созданием и проверкой котировок. Чтобы получить его, клиенты могут использовать конечную точку управления идентификацией доверенного аппаратного обеспечения или конечную точку службы сертификации Intel Provisioning Certification Service (PCS).

Файл конфигурации Intel QPL (sgx_default_qcnl.conf) содержит три ключа для определения конечных точек обеспечения. Ключ pccs_url определяет конечную точку, используемую для получения сертификатов PCK. Ключ collateral_service может определить конечную точку, которая используется для получения всех других данных по созданию и проверке котировок. Если ключ collateral_service не определён, все данные для проверки котировок извлекаются из конечной точки, заданной ключом pccs_url.

В следующей таблице показано, как можно задать эти ключи.

Имя. Возможные конечные точки
pccs_url Конечная точка управления доверенной аппаратной идентификацией: https://global.acccache.azure.net/sgx/certification/v3
collateral_service Конечная точка управления доверенными аппаратными удостоверениями (https://global.acccache.azure.net/sgx/certification/v3) или конечная точка Intel PCS. Файл sgx_default_qcnl.conf всегда перечисляет самую актуальную конечную точку collateral_service в ключе.

Следующий фрагмент кода представлен в примере файла конфигурации Intel QPL:

    { 
        "pccs_url": "https://global.acccache.azure.net/sgx/certification/v3/", 
        "use_secure_cert": true, 
        "collateral_service": "https://global.acccache.azure.net/sgx/certification/v3/",  
        "pccs_api_version": "3.1", 
        "retry_times": 6, 
        "retry_delay": 5, 
        "local_pck_url": "http://169.254.169.254/metadata/THIM/sgx/certification/v3/",
        "pck_cache_expire_hours": 24, 
        "verify_collateral_cache_expire_hours": 24, 
        "custom_request_options": { 
            "get_cert": { 
                "headers": { 
                    "metadata": "true" 
                }, 
                "params": { 
                    "api-version": "2021-07-22-preview" 
                } 
            } 
        } 
    }   

В следующих процедурах объясняется, как изменить файл конфигурации Intel QPL и активировать изменения.

В Windows

  1. Внесите изменения в файл конфигурации.

  2. Убедитесь, что у файла есть разрешения на чтение из следующего расположения реестра и ключа или значения:

    [HKEY_LOCAL_MACHINE\SOFTWARE\Intel\SGX\QCNL]
    "CONFIG_FILE"="<Full File Path>"
    
  3. Перезапустите службу AESMD. Например, откройте PowerShell от имени администратора и используйте следующие команды:

    Restart-Service -Name "AESMService" -ErrorAction Stop
    Get-Service -Name "AESMService"
    

На Linux

  1. Внесите изменения в файл конфигурации. Например, вы можете использовать Vim для изменений с помощью следующей команды:

    sudo vim /etc/sgx_default_qcnl.conf
    
  2. Перезапустите службу AESMD. Откройте любой терминал и выполните следующие команды:

    sudo systemctl restart aesmd 
    systemctl status aesmd 
    

Как я могу запросить залог в конфиденциальной виртуальной машине?

Используйте следующий пример в гостевой системе конфиденциальной виртуальной машины (CVM) для запроса документации AMD, включающей сертификат VCEK и цепочку сертификатов. Для получения подробной информации о данном залоге и его происхождении, см. сертификат подтверждения микросхем версии (VCEK) и спецификацию интерфейса KDS.

Параметры универсального кода ресурса (URI)

GET "http://169.254.169.254/metadata/THIM/amd/certification"

Текст запроса

Имя. Тип Описание
Metadata Булев Установка True позволяет вернуть залог.

Образец запроса

curl GET "http://169.254.169.254/metadata/THIM/amd/certification" -H "Metadata: true"

Отклики

Имя. Описание
200 OK Перечисляет доступные элементы обеспечения в теле HTTP в формате JSON
Other Status Codes Описывает, почему операция завершилась ошибкой

Определения

Ключ. Описание
VcekCert Сертификат X.509v3, определенный в RFC 5280
tcbm База доверенных вычислений
certificateChain Сертификаты ключа AMD SEV (ASK) и корневого ключа AMD (ARK)

Как запросить обеспечение AMD в контейнере Службы Kubernetes в Azure на узле CVM?

Выполните следующие действия, чтобы запросить обеспечение AMD в конфиденциальном контейнере:

  1. Сначала создайте кластер Служба Azure Kubernetes (AKS) на узле CVM или добавьте пул узлов CVM в существующий кластер:

    • Создайте кластер AKS на узле CVM:

      1. Создайте группу ресурсов в одном из поддерживаемых регионов CVM:

        az group create --resource-group <RG_NAME> --location <LOCATION> 
        
      2. Создайте кластер AKS с одним узлом CVM в группе ресурсов:

        az aks create --name <CLUSTER_NAME> --resource-group <RG_NAME> -l <LOCATION> --node-vm-size Standard_DC4as_v5 --nodepool-name <POOL_NAME> --node-count 1
        
      3. Настройте kubectl для подключения к кластеру:

        az aks get-credentials --resource-group <RG_NAME> --name <CLUSTER_NAME> 
        
    • Добавьте пул узлов CVM в существующий кластер AKS:

      az aks nodepool add --cluster-name <CLUSTER_NAME> --resource-group <RG_NAME> --name <POOL_NAME > --node-vm-size Standard_DC4as_v5 --node-count 1 
      
  2. Проверьте подключение к кластеру kubectl get с помощью команды. Эта команда возвращает список узлов кластера.

    kubectl get nodes 
    

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

    ИМЯ СОСТОЯНИЕ РОЛИ ВОЗРАСТ ВЕРСИЯ
    aks-nodepool1-31718369-0 Готово агент 6м44с Версия 1.12.8
  3. Создайте файл curl.yaml со следующим содержимым. Он определяет задание, которое запускает контейнер curl для получения информационных материалов AMD из конечной точки управления идентификацией доверенного оборудования. Дополнительные сведения о заданиях Kubernetes см. в документации по Kubernetes.

    apiVersion: batch/v1 
    kind: Job 
    metadata: 
      name: curl 
    spec: 
      template: 
        metadata: 
          labels: 
            app: curl 
        spec: 
          nodeSelector: 
            kubernetes.azure.com/security-type: ConfidentialVM 
          containers: 
            - name: curlcontainer 
              image: alpine/curl:3.14 
              imagePullPolicy: IfNotPresent 
              args: ["-H", "Metadata:true", "http://169.254.169.254/metadata/THIM/amd/certification"] 
          restartPolicy: "Never" 
    

    Файл curl.yaml содержит следующие аргументы.

    Имя. Тип Описание
    Metadata Булев Установка True позволяет вернуть залог.
  4. Запустите задание, применив файл curl.yaml :

    kubectl apply -f curl.yaml 
    
  5. Проверьте и дождитесь завершения работы pod:

    kubectl get pods 
    

    Вот пример ответа:

    Имя. Готово Состояние Перезапуски Возраст
    Завиток-w7nt8 0/1 Завершено 0 72 с
  6. Выполните следующую команду, чтобы получить журналы заданий и проверить, работает ли она. Успешные выходные данные должны включать vcekCert, tcbmи certificateChain.

    kubectl logs job/curl  
    

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