使用 AMD SEV-SNP 证明 Amazon EC2 实例
证明是可让实例证明其状态和身份的过程。为实例启用 AMD SEV-SNP 后,您可以请求底层处理器提供 AMD SEV-SNP 证明报告。AMD SEV-SNP 证明报告包含初始客户机内存内容和初始 vCPU 状态的加密哈希值,称为启动指标。证明报告采用 VLEK 签名签署,该签名可回链至 AMD 信任根。您可以使用证明报告中包含的启动指标来验证实例是否在正版 AMD 环境中运行,并验证用于启动实例的初始启动代码。
要使用 AMD SEV-SNP 证明,请完成以下步骤。
步骤 1:在实例启动期间启用 AMD SEV-SNP
您可以使用 Amazon CLI 在启用了 AMD SEV-SNP 的情况下启动实例。
要在启用了 AMD SEV-SNP 的情况下启动实例,您必须使用 Amazon CLI。使用 run-instances 命令并包含 --cpu-options
AmdSevSnp=enabled
选项。对于 --image-id
,请指定一个带有 uefi
或 uefi-prefered
启动模式的 AMI 以及支持 AMD SEV-SNP 的操作系统。对于 --instance-type
,请指定一个支持的实例类型。
$
aws ec2 run-instances \ --image-idsupported_ami_id
\ --instance-typesupported_instance_type
\ --key-namekey_pair_name
\ --subnet-idsubnet_id
\ --cpu-options AmdSevSnp=enabled
步骤 2:获取证明报告
在这一步中,您需要安装和构建 snpguest
实用程序,然后使用其请求 AMD SEV-SNP 证明报告和证书。
-
运行以下命令从 snpguest repository
构建 snpguest
实用程序。$
git clone https://github.com/virtee/snpguest.git$
cd snpguest$
cargo build -r$
cd target/release -
生成证明报告的请求。该实用程序从主机请求证明报告,并将其与提供的请求数据一起写入二进制文件。
以下示例创建了一个随机请求字符串,并将其用作请求文件(
request-file.txt
)。命令返回证明报告后,该报告将存储在您指定的文件路径(report.bin
)中。在这种情况下,实用程序会将报告存储在当前目录中。$
./snpguest reportreport.bin
request-file.txt
--random -
从主机内存请求证书,并将其存储为 PEM 文件。以下示例将文件存储在与
snpguest
实用程序相同的目录中。如果指定目录中已存在证书,则这些证书将被覆盖。$
./snpguest certificates PEM./
步骤 3:验证证明报告签名
证明报告使用名为版本控制加载认可密钥(VLEK)的证书签署,该证书由 AMD 为 Amazon 颁发。在这一步中,您可以验证 VLEK 证书是否由 AMD 颁发,以及证明报告是否是用该 VLEK 证书签署的。
-
从 AMD 官方网站将 VLEK 根信任证书下载到当前目录中。
$
sudo curl --proto '=https' --tlsv1.2 -sSf https://kdsintf.amd.com/vlek/v1/Milan/cert_chain -o ./cert_chain.pem -
使用
openssl
验证 VLEK 证书是否是使用 AMD 根信任证书签署的。$
sudo openssl verify --CAfile ./cert_chain.pem vlek.pem预期输出:
certs/vcek.pem: OK
-
使用
snpguest
实用程序来验证证明报告是否是用 VLEK 证书签署的。$
./snpguest verify attestation ./ report.bin预期输出。
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!