MicrosoftDocs / azure-docs

Open source documentation of Microsoft Azure
https://docs.microsoft.com/azure
Creative Commons Attribution 4.0 International
10.28k stars 21.47k forks source link

Some ambiguities and missing steps in the vTPM guidelines for CVMs on SEV-SNP #119171

Closed paulhowardarm closed 7 months ago

paulhowardarm commented 9 months ago

A few uncertainties arose for me while reviewing and understanding this document:


Document Details

Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

AjayBathini-MSFT commented 9 months ago

@paulhowardarm Thanks for your feedback! We will investigate and update as appropriate.

paulhowardarm commented 9 months ago

@AjayBathini-MSFT Thanks for the prompt response. I am happy to take part in further conversations if any of my feedback is unclear.

ManoharLakkoju-MSFT commented 9 months ago

@paulhowardarm Thanks for bringing this to our attention. I'm going to assign this to the document author so they can take a look at it accordingly

@simranparkhe Can you please check and add your comments on this doc update request as applicable.

simranparkhe commented 9 months ago

ACK. I will work on replying to these questions and updating the doc accordingly.

simranparkhe commented 9 months ago

Hi @paulhowardarm , thanks for your questions. I will work on updating the document to bring more clarity

1&2) The snp_report.bin is the entire SNP hardware report while the guest_report.bin is just the report data JSON. First, we retrieve the entire SNP report and then just extract the portion report data JSON from the SNP report. The report data JSON is everything included in the "x-ms-runtime" field. This field contains AKpub, whether secure boot is enabled etc. Our goal is to make sure this field was indeed signed by the VCEK (the hardware) therefore as intended when provisioning the CVM. 3) vTPM is provisioned with an AK and AKcert rather than the EK and EK cert. AKcert is a certificate associated with the Attestation Key. It is used in attestation processes to prove the identity of the TPM and to provide evidence of the configuration and state of the platform and is rooted to the Azure CA. 4) Thank you for pointing this out. I will add in step 5 to make sure the key read from this index is equivalent to the key seen in step 3.