Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Tester une instance Amazon EC2 avec AMD SEV-SNP
L’attestation est un processus qui permet à votre instance de prouver son état et son identité. Après avoir activé AMD SEV-SNP pour votre instance, vous pouvez demander un rapport d' SEV-SNP attestation AMD au processeur sous-jacent. Le rapport SEV-SNP d'attestation AMD contient un hachage cryptographique, appelé mesure de lancement, du contenu initial de la mémoire client et de l'état initial du vCPU. Le rapport d'attestation est signé avec une signature VCEK (sur les hôtes dédiés) ou une signature VLEK (sur la location partagée) qui renvoie à une racine de confiance AMD. Vous pouvez utiliser la mesure de lancement incluse dans le rapport d’attestation pour vérifier que l’instance s’exécute dans un environnement AMD authentique et pour valider le code de démarrage initial qui a été utilisé pour lancer l’instance.
Prérequis
Lancez une instance activée pour AMD SEV-SNP. Pour de plus amples informations, veuillez consulter Activer AMD SEV-SNP pour une instance EC2.
Table des matières
Attestation pour les instances sur des hôtes dédiés
Les hôtes dédiés utilisent une clé d'approbation de puce versionnée (VCEK), une clé de signature unique par puce, pour signer le rapport d'attestation. Vous devez valider la chaîne de confiance depuis le certificat VCEK jusqu'à la racine de confiance d'AMD.
Note
Le modèle de processeur actuellement pris en charge estmilan.
Conditions préalables
Une instance exécutée sur un hôte dédié SEV-SNP compatible AMD avec Git, Cargo et Perl installés.
Étape 1 : créer l'utilitaire snpguest
Au cours de cette étape, vous installez et compilez l'snpguestutilitaire, que vous utilisez pour générer le rapport d'attestation, récupérer les certificats requis et valider le rapport d'attestation.
-
Connectez-vous à votre instance.
-
Vérifiez que les prérequis sont installés.
$perl --version; cargo --version; git --version -
Exécutez les commandes suivantes pour créer l’utilitaire
snpguestà partir du snpguest repository. $git clone https://github.com/virtee/snpguest.git$cd snpguest$cargo build -r$cd target/release
Étape 2 : générer le rapport d'attestation
Générez une demande de rapport d’attestation. L'snpguestutilitaire demande le rapport d'attestation au processeur AMD Secure via l'hôte et l'écrit dans un fichier binaire. L'exemple suivant crée une requête aléatoire nonce et enregistre le rapport dansreport.bin.
$./snpguest reportreport.binrequest-file.txt--random
Étape 3 : récupérer et valider la chaîne de certificats VCEK
Le rapport d'attestation est signé par le VCEK, qui est propre à la puce AMD de votre hôte dédié. Vous devez valider la chaîne de confiance depuis le VCEK jusqu'à la racine de confiance d'AMD.
-
Récupérez le certificat VCEK auprès du service de distribution de clés AMD (KDS). Le certificat est identifié par l'identifiant de la puce et la version TCB figurant dans le rapport d'attestation.
$./snpguest fetch vcek pem ./ ./report.bin --processor-model milan -
Récupérez les certificats racine AMD (AMD Root Key (ARK) et AMD SEV Key (ASK)) qui forment la chaîne de confiance.
$./snpguest fetch ca PEM ./ milan --endorser vcek -
Vérifiez la chaîne de certificats.
$./snpguest verify certs ./Voici un exemple de sortie.
The AMD ARK was self-signed! The AMD ASK was signed by the AMD ARK! The VCEK was signed by the AMD ASK!
Facultatif : pour plus de transparence, vous pouvez vérifier la chaîne de manière indépendante en téléchargeant les certificats directement auprès d'AMD et en les utilisantopenssl.
$curl --proto '=https' --tlsv1.2 -sSf https://kdsintf.amd.com/vcek/v1/Milan/cert_chain -o ./cert_chain.pem$openssl verify --CAfile ./cert_chain.pem vcek.pem
Voici un exemple de sortie.
vcek.pem: OK
Étape 4 : Valider la signature du rapport d'attestation
Vérifiez que le rapport d'attestation a été signé par le certificat VCEK. Cela confirme que le rapport a été généré sur du matériel AMD authentique et qu'il n'a pas été falsifié.
$./snpguest verify attestation ./ report.bin
Voici un exemple de sortie.
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!
Les champs de version TCB (Trusted Computing Base) confirment que les versions du microprogramme figurant dans le certificat correspondent à celles indiquées dans le rapport d'attestation. La dernière ligne confirme que le VCEK a signé le rapport.
Attestation pour les instances relatives à la location partagée
Les instances de location partagée utilisent une clé d'approbation chargée de version (VLEK), émise par AMD pour. AWS Vous devez valider la chaîne de confiance depuis le certificat VLEK jusqu'à la racine de confiance d'AMD.
Étape 1 : créer l'utilitaire snpguest
Au cours de cette étape, vous installez et compilez l'snpguestutilitaire, que vous utilisez pour générer le rapport d'attestation, récupérer les certificats requis et valider le rapport d'attestation.
-
Connectez-vous à votre instance.
-
Exécutez les commandes suivantes pour créer l’utilitaire
snpguestà partir du snpguest repository. $git clone https://github.com/virtee/snpguest.git$cd snpguest$cargo build -r$cd target/release
Étape 2 : générer le rapport d'attestation
Générez une demande de rapport d’attestation. L'snpguestutilitaire demande le rapport d'attestation à l'hôte et l'écrit dans un fichier binaire. L'exemple suivant crée une requête aléatoire nonce et enregistre le rapport dansreport.bin.
$./snpguest reportreport.binrequest-file.txt--random
Demandez les certificats à la mémoire de l’hôte et stockez-les sous forme de fichiers PEM.
$./snpguest certificates PEM./
Étape 3 : récupérer et valider la chaîne de certificats VLEK
Le rapport d'attestation est signé par le VLEK, qui est délivré par AMD pour. AWS Vous devez valider la chaîne de confiance depuis le VLEK jusqu'à la racine de confiance d'AMD.
-
Téléchargez la racine VLEK des certificats de confiance depuis le service officiel de distribution de clés AMD vers le répertoire actuel.
$sudo curl --proto '=https' --tlsv1.2 -sSf https://kdsintf.amd.com/vlek/v1/Milan/cert_chain -o ./cert_chain.pem -
Utilisez
opensslpour vérifier que le certificat VLEK est signé par la racine des certificats de confiance AMD.$sudo openssl verify --CAfile ./cert_chain.pem vlek.pemVoici un exemple de sortie.
vlek.pem: OK
Étape 4 : Valider la signature du rapport d'attestation
Vérifiez que le rapport d'attestation a été signé par le certificat VLEK. Cela confirme que le rapport a été généré sur du matériel AMD authentique et qu'il n'a pas été falsifié.
$./snpguest verify attestation ./ report.bin
Voici un exemple de sortie.
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!