Управление доверенными аппаратными удостоверениями

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

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

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

Diagram that illustrates interactions between an attestation service or node, Trusted Hardware Identity Management, and an enclave host.

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

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

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

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

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

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

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

Библиотека примитивов аттестации Центра обработки данных Azure (DCAP), замена библиотеки поставщиков кавычек Intel (QPL), извлекает сведения о создании котировок и проверочных данных непосредственно из службы управления доверенными аппаратными удостоверениями. Получение залога непосредственно из службы управления доверенными аппаратными удостоверениями гарантирует, что все узлы Azure имеют обеспечение доступности в облаке Azure для уменьшения внешних зависимостей. Текущая рекомендуемая версия библиотеки DCAP — 1.11.2.

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

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

Для более новых версий Ubuntu (например, Ubuntu 22.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 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 Boolean Параметр, позволяющий True возвращать залог.

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

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

Отклики

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

Определения

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

Разделы справки запрашивать обеспечение AMD в контейнере Служба Azure Kubernetes на узле 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 Ready агент 6m44s v1.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 Boolean Параметр, позволяющий True возвращать залог.
  4. Запустите задание, применив файл curl.yaml :

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

    kubectl get pods 
    

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

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

    kubectl logs job/curl  
    

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