Dela via


Hantering av betrodd maskinvaruidentitet

Tjänsten Trusted Hardware Identity Management hanterar cachehantering av certifikat för alla betrodda körningsmiljöer (TEE) som finns i Azure. Den innehåller också information om betrodd databehandlingsbas (TCB) för att framtvinga en minimibaslinje för attesteringslösningar.

Betrodd maskinvaruidentitetshantering och attesteringsinteraktioner

Trusted Hardware Identity Management definierar Azure-säkerhetsbaslinjen för AZURE-noder för konfidentiell databehandling (ACC) och cachelagrar säkerheter från TEE-leverantörer. Attesteringstjänster och ACC-noder kan använda den cachelagrade informationen för att verifiera TEE:er. Följande diagram visar interaktionerna mellan en attesteringstjänst eller nod, Betrodd maskinvaruidentitetshantering och en enklavvärd.

Diagram som illustrerar interaktioner mellan en attesteringstjänst eller nod, Betrodd maskinvaruidentitetshantering och en enklavvärd.

Vanliga frågor och svar

Hur använder jag Trusted Hardware Identity Management med Intel-processorer?

För att generera Intel SGX- och Intel TDX-citattecken behöver Intel Quote Generation Library (QGL) åtkomst till citattecken för generering/validering av säkerheter. Alla eller delar av den här säkerheten måste hämtas från Trusted Hardware Identity Management. Du kan hämta den med hjälp av Intel Quote Provider Library (QPL) eller Azure Data Center Attestation Primitives -klientbiblioteket (DCAP).

Datumet "nästa uppdatering" för det Azure-interna cachelagringstjänst-API:et som Azure Attestation använder verkar vara inaktuellt. Är den fortfarande i drift och kan jag använda den?

Fältet tcbinfo innehåller TCB-informationen. Tjänsten Trusted Hardware Identity Management innehåller äldre tcbinfo information som standard. Att uppdatera till den senaste tcbinfo informationen från Intel skulle orsaka attesteringsfel för kunder som inte har migrerat till den senaste Intel SDK:t, och det kan leda till avbrott.

Open Enclave SDK och Azure Attestation tittar dock inte på nextUpdate datumet och klarar attesteringen.

Vad är Azure DCAP-biblioteket?

Azure Data Center Attestation Primitives-biblioteket (DCAP), en ersättning för Intel Quote Provider Library (QPL), hämtar säkerheter för generering av offerter och citerar valideringssäkerhet direkt från tjänsten För betrodd maskinvaruidentitetshantering. Om du hämtar säkerheter direkt från tjänsten Trusted Hardware Identity Management ser du till att alla Azure-värdar har säkerheter som är lättillgängliga i Azure-molnet för att minska externa beroenden. Den aktuella rekommenderade versionen av DCAP-biblioteket är 1.11.2.

Var kan jag ladda ned det senaste Azure DCAP-biblioteket?

Använd följande länkar för att ladda ned paketen:

För nyare versioner av Ubuntu (till exempel Ubuntu 22.04) måste du använda Intel QPL.

Varför har Trusted Hardware Identity Management och Intel olika baslinjer?

Trusted Hardware Identity Management och Intel tillhandahåller olika basnivåer för den betrodda databehandlingsbasen. När kunderna antar att Intel har de senaste baslinjerna måste de se till att alla krav uppfylls. Den här metoden kan leda till ett avbrott om kunderna inte har uppdaterat till de angivna kraven.

Hantering av betrodd maskinvaruidentitet tar en långsammare metod för att uppdatera TCB-baslinjen, så att kunderna kan göra nödvändiga ändringar i sin egen takt. Även om den här metoden ger en äldre TCB-baslinje får kunderna ingen brytpunkt om de inte uppfyller kraven för den nya TCB-baslinjen. Därför är TCB-baslinjen från Trusted Hardware Identity Management en annan version än Intels baslinje. Vi vill ge kunderna möjlighet att uppfylla kraven för den nya TCB-baslinjen i sin takt, i stället för att tvinga dem att uppdatera och orsaka ett avbrott som skulle kräva omprioritering av arbetsströmmar.

Med Intel Xeon E-processorer kunde jag få mina certifikat direkt från Intel PCS. Varför behöver jag, med Intel Xeon Scalable-processorer från den fjärde generationen, hämta certifikaten från Trusted Hardware Identity Management? Och hur kan jag hämta dessa certifikat?

Från och med den fjärde generationen av Intel® Xeon-skalbara® processorer utför Azure indirekt registrering på Intels registreringstjänst med hjälp av plattformsmanifestet och lagrar det resulterande PCK-certifikatet i THIM-tjänsten (Trusted Hardware Identity Management) som använder indirekt registrering, eftersom Intels registreringstjänst inte lagrar rotnycklar för en plattform i det här fallet och detta återspeglas i false CachedKeys flaggan i PCK-certifikat. Eftersom indirekt registrering används skulle all följande kommunikation till Intel PCS kräva plattformsmanifestet, som Azure inte tillhandahåller till virtuella datorer (VM). I stället måste virtuella datorer kontakta THIM för att ta emot PCK-certifikat. Om du vill hämta ett PCK-certifikat kan du antingen använda Intel QPL eller Azure DCAP-biblioteket.

Hur använder jag Intel QPL med Trusted Hardware Identity Management?

Kunder kanske vill ha flexibiliteten att använda Intel QPL för att interagera med Trusted Hardware Identity Management utan att behöva ladda ned ett annat beroende från Microsoft (dvs. Azure DCAP-klientbiblioteket). Kunder som vill använda Intel QPL med tjänsten Trusted Hardware Identity Management måste justera Intel QPL-konfigurationsfilen sgx_default_qcnl.conf.

Den offertgenerering/verifieringssäkerhet som används för att generera Intel SGX- eller Intel TDX-citattecken kan delas upp i:

  • PCK-certifikatet. För att hämta den måste kunderna använda en slutpunkt för hantering av betrodd maskinvaruidentitet.
  • Alla andra säkerheter för generering/verifiering av offerter. För att hämta den kan kunderna antingen använda en slutpunkt för hantering av betrodd maskinvaruidentitet eller en Slutpunkt för Intel Provisioning Certification Service (PCS).

Konfigurationsfilen för Intel QPL (sgx_default_qcnl.conf) innehåller tre nycklar för att definiera slutpunkterna för säkerheter. Nyckeln pccs_url definierar slutpunkten som används för att hämta PCK-certifikaten. Nyckeln collateral_service kan definiera slutpunkten som används för att hämta alla andra genererings-/verifieringssäkerheter för offerter. collateral_service Om nyckeln inte har definierats hämtas alla säkerheter för citatverifiering från den slutpunkt som definierats med pccs_url nyckeln.

I följande tabell visas hur dessa nycklar kan anges.

Name Möjliga slutpunkter
pccs_url Slutpunkt för betrodd maskinvaruidentitetshantering: https://global.acccache.azure.net/sgx/certification/v3.
collateral_service Slutpunkt för betrodd maskinvaruidentitetshantering (https://global.acccache.azure.net/sgx/certification/v3) eller Intel PCS-slutpunkt. Filen sgx_default_qcnl.conf visar alltid den senaste slutpunkten i collateral_service nyckeln.

Följande kodfragment är från ett exempel på en Intel QPL-konfigurationsfil:

    { 
        "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" 
                } 
            } 
        } 
    }   

Följande procedurer förklarar hur du ändrar Intel QPL-konfigurationsfilen och aktiverar ändringarna.

På Windows

  1. Gör ändringar i konfigurationsfilen.

  2. Kontrollera att det finns läsbehörigheter för filen från följande registerplats och nyckel/värde:

    [HKEY_LOCAL_MACHINE\SOFTWARE\Intel\SGX\QCNL]
    "CONFIG_FILE"="<Full File Path>"
    
  3. Starta om AESMD-tjänsten. Öppna till exempel PowerShell som administratör och använd följande kommandon:

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

I Linux

  1. Gör ändringar i konfigurationsfilen. Du kan till exempel använda Vim för ändringarna via följande kommando:

    sudo vim /etc/sgx_default_qcnl.conf
    
  2. Starta om AESMD-tjänsten. Öppna valfri terminal och kör följande kommandon:

    sudo systemctl restart aesmd 
    systemctl status aesmd 
    

Hur begär jag säkerhet på en konfidentiell virtuell dator?

Använd följande exempel på en cvm-gäst (konfidentiell virtuell dator) för att begära AMD-säkerhet som innehåller VCEK-certifikatet och certifikatkedjan. Mer information om den här säkerheten och var den kommer ifrån finns i VCEK-certifikat (Versioned Chip Endorsement Key) och KDS Interface Specification.

URI-parametrar

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

Begärandetext

Namn Type Beskrivning
Metadata Booleskt Inställning för att True tillåta att säkerheter returneras.

Exempelbegäran

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

Svar

Name beskrivning
200 OK Visar tillgängliga säkerheter i HTTP-brödtexten i JSON-format
Other Status Codes Beskriver varför åtgärden misslyckades

Definitioner

Nyckel beskrivning
VcekCert X.509v3-certifikat enligt definitionen i RFC 5280
tcbm Betrodd beräkningsbas
certificateChain AMD SEV-nyckelcertifikat (ASK) och AMD-rotnyckel (ARK)

Hur begär jag AMD-säkerhet i en Azure Kubernetes Service Container på en CVM-nod?

Följ dessa steg för att begära AMD-säkerhet i en konfidentiell container:

  1. Börja med att skapa ett AkS-kluster (Azure Kubernetes Service) på en CVM-nod eller genom att lägga till en CVM-nodpool i ett befintligt kluster:

    • Skapa ett AKS-kluster på en CVM-nod:

      1. Skapa en resursgrupp i en av de CVM-regioner som stöds:

        az group create --resource-group <RG_NAME> --location <LOCATION> 
        
      2. Skapa ett AKS-kluster med en CVM-nod i resursgruppen:

        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. Konfigurera kubectl för att ansluta till klustret:

        az aks get-credentials --resource-group <RG_NAME> --name <CLUSTER_NAME> 
        
    • Lägg till en CVM-nodpool i ett befintligt AKS-kluster:

      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. Kontrollera anslutningen till klustret med hjälp kubectl get av kommandot . Det här kommandot returnerar en lista över klusternoderna.

    kubectl get nodes 
    

    I följande utdataexempel visas den enda nod som du skapade i föregående steg. Kontrollera att nodstatusen är Ready.

    NAMN STATUS ROLLER ÅLDER VERSION
    aks-nodepool1-31718369-0 Klar agent 6m44s v1.12.8
  3. Skapa en curl.yaml-fil med följande innehåll. Det definierar ett jobb som kör en curl-container för att hämta AMD-säkerheter från slutpunkten För betrodd maskinvaruidentitetshantering. Mer information om Kubernetes-jobb finns i Kubernetes-dokumentationen.

    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" 
    

    Filen curl.yaml innehåller följande argument.

    Namn Type Beskrivning
    Metadata Booleskt Inställning för att True tillåta att säkerheter returneras.
  4. Kör jobbet genom att använda filen curl.yaml :

    kubectl apply -f curl.yaml 
    
  5. Kontrollera och vänta tills podden har slutfört sitt jobb:

    kubectl get pods 
    

    Här är ett exempel:

    Name Klar Status Startar Ålder
    Curl-w7nt8 0/1 Slutförd 0 72 s
  6. Kör följande kommando för att hämta jobbloggarna och kontrollera om det fungerar. Ett lyckat utdata bör innehålla vcekCert, tcbmoch certificateChain.

    kubectl logs job/curl  
    

Nästa steg