Trusted Hardware Identity Management
Il servizio Trusted Hardware Identity Management gestisce la gestione della cache dei certificati per tutti gli ambienti di esecuzione attendibili (TEE) che risiedono in Azure. Fornisce inoltre informazioni TCB (Trusted Computing Base) per applicare una baseline minima per le soluzioni di attestazione.
Trusted Hardware Identity Management and attestation interactions (Gestione delle identità hardware attendibili e interazioni di attestazione)
Trusted Hardware Identity Management definisce la baseline di sicurezza di Azure per i nodi di confidential computing (ACC) di Azure e memorizza nella cache gli elementi collaterali dai provider tee. I servizi di attestazione e i nodi acc possono usare le informazioni memorizzate nella cache per convalidare le TEE. Il diagramma seguente illustra le interazioni tra un servizio di attestazione o un nodo, Trusted Hardware Identity Management e un host enclave.
Domande frequenti
Ricerca per categorie usare Trusted Hardware Identity Management con processori Intel?
Per generare virgolette Intel SGX e Intel TDX, Intel Quote Generation Library (QGL) necessita dell'accesso al materiale di generazione/convalida delle offerte. Tutte le parti o di questo materiale collaterale devono essere recuperate da Trusted Hardware Identity Management. È possibile recuperarlo usando la libreria client QPL (Intel Quote Provider Library) o la libreria client DCAP (Data Center Attestation Primitives) di Azure.
La data di "aggiornamento successivo" dell'API del servizio di memorizzazione nella cache interna di Azure che attestazione di Azure usa sembra non aggiornata. È ancora in funzione e posso usarlo?
Il tcbinfo
campo contiene le informazioni TCB. Il servizio Trusted Hardware Identity Management fornisce informazioni meno recenti tcbinfo
per impostazione predefinita. L'aggiornamento alle informazioni più recenti tcbinfo
da Intel provocherebbe errori di attestazione per i clienti che non hanno eseguito la migrazione all'SDK Intel più recente e potrebbero verificarsi interruzioni.
Open Enclave SDK e attestazione di Azure non esaminare la nextUpdate
data, ma passerà l'attestazione.
Che cos'è la libreria DCAP di Azure?
La libreria DCAP (Data Center Attestation Primitives) di Azure, una sostituzione di Intel Quote Provider Library (QPL), recupera il materiale collaterale e la convalida delle virgolette direttamente dal servizio Trusted Hardware Identity Management. Il recupero di materiale collaterale direttamente dal servizio Trusted Hardware Identity Management garantisce che tutti gli host di Azure abbiano immediatamente disponibilità collaterale all'interno del cloud di Azure per ridurre le dipendenze esterne. La versione consigliata corrente della libreria DCAP è 1.11.2.
Dove è possibile scaricare la libreria DCAP di Azure più recente?
Usare i collegamenti seguenti per scaricare i pacchetti:
Per le versioni più recenti di Ubuntu (ad esempio, Ubuntu 22.04), è necessario usare Intel QPL.
Perché Gestione identità hardware attendibile e Intel hanno baseline diverse?
Trusted Hardware Identity Management e Intel forniscono diversi livelli di base della base di elaborazione attendibile. Quando i clienti presuppongono che Intel abbia le baseline più recenti, devono assicurarsi che tutti i requisiti siano soddisfatti. Questo approccio può causare un'interruzione se i clienti non sono stati aggiornati ai requisiti specificati.
Trusted Hardware Identity Management adotta un approccio più lento all'aggiornamento della baseline TCB, in modo che i clienti possano apportare le modifiche necessarie al proprio ritmo. Anche se questo approccio fornisce una baseline TCB meno recente, i clienti non riscontrano interruzioni se non soddisfano i requisiti della nuova baseline TCB. Ecco perché la baseline TCB di Trusted Hardware Identity Management è una versione diversa dalla baseline di Intel. Vogliamo consentire ai clienti di soddisfare i requisiti della nuova baseline TCB al loro ritmo, invece di forzarli ad aggiornare e causare un'interruzione che richiederebbe la riscrittura dei flussi di lavoro.
Con i processori Intel Xeon E, potrei ottenere i miei certificati direttamente dal PCS Intel. Perché, con processori Scalabili Intel Xeon a partire dalla 4a generazione, è necessario ottenere i certificati da Trusted Hardware Identity Management? E come è possibile recuperare tali certificati?
A partire dalla 4a generazione di processori scalabili Intel® Xeon®, Azure esegue la registrazione indiretta al servizio di registrazione di Intel usando il manifesto della piattaforma e archivia il certificato PCK risultante nel servizio Trusted Hardware Identity Management (THIM) Azure usa la registrazione indiretta, perché il servizio di registrazione intel non archivierà le chiavi radice per una piattaforma in questo caso e questo si riflette nel false
flag nei CachedKeys
certificati PCK.
Come viene usata la registrazione indiretta, tutte le comunicazioni seguenti con Intel PCS richiederebbero il manifesto della piattaforma, che Azure non fornisce alle macchine virtuali (VM).
Le macchine virtuali devono invece contattare THIM per ricevere i certificati PCK.
Per recuperare un certificato PCK, è possibile usare intel QPL o la libreria DCAP di Azure.
Ricerca per categorie usare Intel QPL con Trusted Hardware Identity Management?
I clienti potrebbero voler usare Intel QPL per interagire con Trusted Hardware Identity Management senza dover scaricare un'altra dipendenza da Microsoft( ovvero la libreria client DCAP di Azure). I clienti che vogliono usare Intel QPL con il servizio Trusted Hardware Identity Management devono modificare il file di configurazione di Intel QPL, sgx_default_qcnl.conf.
Il materiale collaterale di generazione/verifica delle virgolette usato per generare le citazioni Intel SGX o Intel TDX può essere suddiviso in:
- Certificato PCK. Per recuperarlo, i clienti devono usare un endpoint di Gestione identità hardware attendibile.
- Tutti gli altri elementi collaterali di generazione/verifica delle virgolette. Per recuperarlo, i clienti possono usare un endpoint di Gestione identità hardware attendibile o un endpoint del servizio di certificazione del provisioning Intel (PCS).
Il file di configurazione Intel QPL (sgx_default_qcnl.conf) contiene tre chiavi per definire gli endpoint collaterali. La pccs_url
chiave definisce l'endpoint usato per recuperare i certificati PCK. La collateral_service
chiave può definire l'endpoint usato per recuperare tutti gli altri elementi collaterali di generazione/verifica delle virgolette. Se la chiave non è definita, tutta la collateral_service
verifica delle virgolette viene recuperata dall'endpoint definito con la pccs_url
chiave.
Nella tabella seguente viene illustrato come impostare queste chiavi.
Nome | Endpoint possibili |
---|---|
pccs_url |
Endpoint di Gestione identità hardware attendibile: https://global.acccache.azure.net/sgx/certification/v3 . |
collateral_service |
Endpoint Trusted Hardware Identity Management (https://global.acccache.azure.net/sgx/certification/v3 ) o endpoint Intel PCS. Il file sgx_default_qcnl.conf elenca sempre l'endpoint più aggiornato nella collateral_service chiave. |
Il frammento di codice seguente proviene da un esempio di file di configurazione 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"
}
}
}
}
Le procedure seguenti illustrano come modificare il file di configurazione intel QPL e attivare le modifiche.
In Windows
Apportare modifiche al file di configurazione.
Assicurarsi che siano disponibili autorizzazioni di lettura per il file dal percorso e dalla chiave/valore del Registro di sistema seguenti:
[HKEY_LOCAL_MACHINE\SOFTWARE\Intel\SGX\QCNL] "CONFIG_FILE"="<Full File Path>"
Riavviare il servizio AESMD. Ad esempio, aprire PowerShell come amministratore e usare i comandi seguenti:
Restart-Service -Name "AESMService" -ErrorAction Stop Get-Service -Name "AESMService"
In Linux
Apportare modifiche al file di configurazione. Ad esempio, è possibile usare Vim per le modifiche tramite il comando seguente:
sudo vim /etc/sgx_default_qcnl.conf
Riavviare il servizio AESMD. Aprire qualsiasi terminale ed eseguire i comandi seguenti:
sudo systemctl restart aesmd systemctl status aesmd
Ricerca per categorie richiedere materiale collaterale in una macchina virtuale riservata?
Usare l'esempio seguente in un guest di macchina virtuale riservata (CVM) per richiedere materiale collaterale AMD che include il certificato VCEK e la catena di certificati. Per informazioni dettagliate su questo materiale collaterale e da dove proviene, vedere Certificato vcEK (Versioned Chip Endorsement Key) e specifica dell'interfaccia KDS.
Parametri URI
GET "http://169.254.169.254/metadata/THIM/amd/certification"
Testo della richiesta
Nome | Tipo | Descrizione |
---|---|---|
Metadata |
Boolean | L'impostazione su True consente la restituzione del materiale collaterale. |
Esempio di richiesta
curl GET "http://169.254.169.254/metadata/THIM/amd/certification" -H "Metadata: true"
Risposte
Nome | Descrizione |
---|---|
200 OK |
Elenca gli elementi collaterali disponibili nel corpo HTTP nel formato JSON |
Other Status Codes |
Descrive il motivo per cui l'operazione non è riuscita |
Definizioni
Chiave | Descrizione |
---|---|
VcekCert |
Certificato X.509v3 come definito in RFC 5280 |
tcbm |
Base di elaborazione attendibile |
certificateChain |
Certificati AMD SEV Key (ASK) e AMD Root Key (ARK) |
Ricerca per categorie richiedere il materiale collaterale AMD in un contenitore servizio Azure Kubernetes in un nodo CVM?
Seguire questa procedura per richiedere il materiale collaterale AMD in un contenitore riservato:
Per iniziare, creare un cluster servizio Azure Kubernetes (servizio Azure Kubernetes) in un nodo CVM o aggiungendo un pool di nodi CVM a un cluster esistente:
Creare un cluster del servizio Azure Kubernetes in un nodo CVM:
Creare un gruppo di risorse in una delle aree supportate da CVM:
az group create --resource-group <RG_NAME> --location <LOCATION>
Creare un cluster del servizio Azure Kubernetes con un nodo CVM nel gruppo di risorse:
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
Configurare kubectl per connettersi al cluster:
az aks get-credentials --resource-group <RG_NAME> --name <CLUSTER_NAME>
Aggiungere un pool di nodi CVM a un cluster del servizio Azure Kubernetes esistente:
az aks nodepool add --cluster-name <CLUSTER_NAME> --resource-group <RG_NAME> --name <POOL_NAME > --node-vm-size Standard_DC4as_v5 --node-count 1
Verificare la connessione al cluster usando il
kubectl get
comando . Questo comando restituisce un elenco dei nodi del cluster.kubectl get nodes
L'esempio di output seguente mostra il singolo nodo creato nei passaggi precedenti. Assicurarsi che lo stato del nodo sia
Ready
.NOME STATO RUOLI AGE VERSION aks-nodepool1-31718369-0 Pronto agente 6m44s v1.12.8 Creare un file curl.yaml con il contenuto seguente. Definisce un processo che esegue un contenitore curl per recuperare il collaterale AMD dall'endpoint Trusted Hardware Identity Management. Per altre informazioni sui processi Kubernetes, vedere la documentazione di 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"
Il file curl.yaml contiene gli argomenti seguenti.
Nome Tipo Descrizione Metadata
Boolean L'impostazione su True
consente la restituzione del materiale collaterale.Eseguire il processo applicando il file curl.yaml :
kubectl apply -f curl.yaml
Controllare e attendere che il pod completi il processo:
kubectl get pods
Di seguito è riportata una risposta di esempio:
Nome Pronto Status Riavvii Età Curl-w7nt8 0/1 Completato 0 72 s Eseguire il comando seguente per ottenere i log del processo e verificare se funziona. Un output riuscito deve includere
vcekCert
,tcbm
ecertificateChain
.kubectl logs job/curl
Passaggi successivi
- Altre informazioni sulla documentazione di attestazione di Azure.
- Informazioni sul confidential computing di Azure.