Atestar una instancia de Amazon EC2 con el SEV-SNP de AMD
La atestación es un proceso que permite que la instancia demuestre su estado e identidad. Tras habilitar SEV-SNP de AMD para la instancia, podrá solicitar un informe de atestación del SEV-SNP de AMD del procesador subyacente. El informe de atestación de SEV-SNP de AMD contiene un hash criptográfico, denominado medición de inicialización, del contenido inicial de la memoria huésped y del estado inicial de la CPU virtual. El informe de atestación está firmado con una firma VLEK que se remonta a una raíz de confianza de AMD. Puede usar la medición de inicialización incluida en el informe de atestación para validar que la instancia se ejecuta en un entorno de AMD genuino y validar el código de arranque inicial que se usó para iniciar la instancia.
Requisito previo
Inicialice una instancia que esté habilitada para SEV-SNP de AMD. Para obtener más información, consulte Habilitación de SEV-SNP de AMD para una instancia de Amazon EC2.
Paso 1: obtenga el informe de atestación
En este paso, instalará y compilará la utilidad snpguest
y, a continuación, la usará para solicitar el informe de atestación de SEV-SNP de AMD y los certificados.
-
Conecte con la instancia .
-
Ejecute los siguientes comandos para crear la utilidad
snpguest
desde el snpguest repository. $
git clone https://github.com/virtee/snpguest.git$
cd snpguest$
cargo build -r$
cd target/release -
Genera una solicitud para el informe de certificación. La utilidad solicita el informe de certificación al host y lo escribe en un archivo binario con los datos de solicitud proporcionados.
En el siguiente ejemplo, se crea una cadena de solicitud aleatoria y se utiliza como archivo de solicitud ()
request-file.txt
. Cuando el comando devuelve el informe de certificación, se almacena en la ruta del archivo que especifiques ()report.bin
. En este caso, la utilidad guarda el informe en el directorio actual.$
./snpguest reportreport.bin
request-file.txt
--random -
Solicite los certificados de la memoria del host y guárdelos como archivos PEM. El siguiente ejemplo almacena los archivos en el mismo directorio que la
snpguest
utilidad. Si los certificados ya existen en el directorio especificado, se sobrescriben.$
./snpguest certificates PEM./
Paso 2: valide la firma del informe de atestación
El informe de atestación se firma con un certificado, denominado clave de aprobación cargada y versionada (VLEK), emitido por AMD para AWS. En este paso, puede validar que AMD haya emitido el certificado VLEK y que el informe de atestación esté firmado por dicho certificado.
-
Descargue los certificados raíz de confianza de VLEK del sitio web oficial de AMD en el directorio actual.
$
sudo curl --proto '=https' --tlsv1.2 -sSf https://kdsintf.amd.com/vlek/v1/Milan/cert_chain -o ./cert_chain.pem -
Utilice
openssl
para validar que el certificado VLEK esté firmado por los certificados raíz de confianza de AMD.$
sudo openssl verify --CAfile ./cert_chain.pem vlek.pemResultado previsto:
certs/vcek.pem: OK
-
Debe usar la utilidad
snpguest
para validar que el informe de atestación esté firmado por el certificado VLEK.$
./snpguest verify attestation ./ report.binResultado previsto.
Reported TCB Boot Loader from certificate matches the attestation report. Reported TCB TEE from certificate matches the attestation report. Reported TCB SNP from certificate matches the attestation report. Reported TCB Microcode from certificate matches the attestation report. VEK signed the Attestation Report!