Atestar una instancia de Amazon EC2 con el SEV-SNP de AMD - Amazon Elastic Compute Cloud

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. Cuando habilita el SEV-SNP de AMD para su instancia, puede 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.

Complete los siguientes pasos para realizar la atestación con la SEV-SNP de AMD.

Paso 1: habilite el SEV-SNP de AMD durante la instancia de inicio

Puede utilizar AWS CLI para iniciar una instancia con el SEV-SNP de AMD habilitado.

Para iniciar una instancia con el SEV-SNP de AMD habilitado, debe utilizar AWS CLI. Utilice el comando run-instances e incluya la opción --cpu-options AmdSevSnp=enabled. En el caso de --image-id, especifique una AMI con el modo de arranque uefi o uefi-prefered y un sistema operativo compatible con la SEV-SNP de AMD. En el caso de --instance-type, especifique un tipo de instancia compatible.

$ aws ec2 run-instances \ --image-id supported_ami_id \ --instance-type supported_instance_type \ --key-name key_pair_name \ --subnet-id subnet_id \ --cpu-options AmdSevSnp=enabled

Paso 2: 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.

  1. 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
  2. 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 report report.bin request-file.txt --random
  3. 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 3: 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.

  1. 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
  2. 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.pem

    Resultado previsto:

    certs/vcek.pem: OK
  3. Debe usar la utilidad snpguest para validar que el informe de atestación esté firmado por el certificado VLEK.

    $ ./snpguest verify attestation ./ report.bin

    Resultado 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!