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.
Testez 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 de l'invité et de l'état initial du processeur virtuel. 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 remonte à 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 qui est 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 entre le certificat VCEK et la racine de confiance d'AMD.
Note
Le modèle de processeur actuellement pris en charge estmilan.
Conditions préalables
Instance exécutée sur un hôte dédié SEV-SNP compatible AMD avec Git, Cargo et Perl installés.
Étape 1 : Création de l'utilitaire snpguest
Au cours de cette étape, vous installez et créez 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 un nonce de requête aléatoire et stocke 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 entre le VCEK et 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 (clé racine AMD (ARK) et clé AMD SEV (ASK)) qui constituent 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 depuis AMD et en 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 du 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 de location partagée
Les instances de location partagée utilisent une clé d'approbation chargée versionnée (VLEK), qui est émise par AMD pour. AWS Vous devez valider la chaîne de confiance entre le certificat VLEK et la racine de confiance d'AMD.
Étape 1 : Création de l'utilitaire snpguest
Au cours de cette étape, vous installez et créez 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 un nonce de requête aléatoire et stocke 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 entre le VLEK et la racine de confiance d'AMD.
-
Téléchargez la racine des certificats de confiance VLEK 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!