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.
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
Gör ändringar i konfigurationsfilen.
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>"
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
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
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:
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:
Skapa en resursgrupp i en av de CVM-regioner som stöds:
az group create --resource-group <RG_NAME> --location <LOCATION>
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
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
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 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.Kör jobbet genom att använda filen curl.yaml :
kubectl apply -f curl.yaml
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 Kör följande kommando för att hämta jobbloggarna och kontrollera om det fungerar. Ett lyckat utdata bör innehålla
vcekCert
,tcbm
ochcertificateChain
.kubectl logs job/curl
Nästa steg
- Läs mer om dokumentation om Azure-attestering.
- Läs mer om konfidentiell databehandling i Azure.