

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# AMD SEV-SNP für Amazon-Instances EC2
<a name="sev-snp"></a>

AMD Secure Encrypted Virtualization-Secure Nested Paging (AMD SEV-SNP) ist ein CPU-Feature, das die folgenden Eigenschaften bietet:
+ **Bescheinigung** – Mit AMD SEV-SNP können Sie einen signierten Bescheinigungsbericht abrufen, der eine kryptografische Maßnahme enthält, mit welcher der Status und die Identität der Instance sowie die Ausführung auf echter AMD-Hardware überprüft werden kann. Weitere Informationen finden Sie unter [Bestätigen Sie eine EC2 Amazon-Instance mit AMD SEV-SNP](snp-attestation.md).
+ **Speicherverschlüsselung** — Ab den Prozessoren AMD EPYC (Milan), AWS Graviton2 und Intel Xeon Scalable (Ice Lake) ist der Instance-Speicher immer verschlüsselt. Für AMD SEV-SNP aktivierte Instances verwenden einen Instance-spezifischen Schlüssel für ihre Speicherverschlüsselung.

**Topics**
+ [Konzepte und Terminologie](#snp-concepts)
+ [Voraussetzungen](#snp-requirements)
+ [Überlegungen](#snp-considerations)
+ [Preisgestaltung](#snp-pricing)
+ [Unterstützte Instance-Typen finden](snp-find-instance-types.md)
+ [AMD SEV-SNP aktivieren](snp-work-launch.md)
+ [Bescheinigung mit AMD SEV-SNP](snp-attestation.md)

## Konzepte und Terminologie
<a name="snp-concepts"></a>

Bevor Sie mit AMD SEV-SNP beginnen, sollten Sie mit den folgenden Konzepten und Begriffen vertraut sein:

**Bescheinigungsbericht von AMD SEV-SNP**  
Der Bescheinigungsbericht von AMD SEV-SNP ist ein Dokument, das eine Instance von der CPU anfordern kann. Der Bescheinigungsbericht von AMD SEV-SNP kann verwendet werden, um den Status und die Identität einer Instance zu überprüfen und sicherzustellen, ob sie in einer genehmigten AMD-Umgebung ausgeführt wird. Der Bericht enthält eine Startmessung, bei der es sich um einen kryptografischen Hash des anfänglichen Startstatus einer Instance handelt, einschließlich des ursprünglichen Speicherinhalts der Instanz und des Anfangsstatus der V. CPUs Der AMD SEV-SNP-Bestätigungsbericht ist mit einer VLEK-Signatur signiert, die auf eine AMD-Vertrauensbasis zurückgeht.

**VLEK**  
Der VLEK (Versioned Loaded Endorsement Key) ist ein Signaturschlüssel mit Versionsverwaltung, der von AMD zertifiziert ist und von der AMD-CPU zum Signieren der Bescheinigungsberichte von AMD SEV-SNP verwendet wird. VLEK-Signaturen können mit den von AMD bereitgestellten Zertifikaten validiert werden.

**OVMF-Binärdatei**  
OVMF (Open Virtual Machine Firmware) ist der Frühstartcode, der verwendet wird, um eine UEFI-Umgebung für die Instance bereitzustellen. Der Frühstartcode wird ausgeführt, bevor der Code im AMI gestartet wird. Die OVMF findet und führt auch das im AMI bereitgestellte Startladeprogramm aus. Weitere Informationen finden Sie im [OMVF-Repository](https://github.com/tianocore/tianocore.github.io/wiki/OVMF).

## Voraussetzungen
<a name="snp-requirements"></a>

Zur Verwendung von AMD SEV-SNP müssen Sie folgende Voraussetzungen erfüllen:
+ Verwenden Sie einen der folgenden unterstützten Instance-Typen:
  + **Universell**: `m6a.large` \$1 `m6a.xlarge` \$1 `m6a.2xlarge` \$1 `m6a.4xlarge` \$1 `m6a.8xlarge`
  + **Für Datenverarbeitung optimiert:** `c6a.large` \$1 `c6a.xlarge` \$1 `c6a.2xlarge` \$1 `c6a.4xlarge` \$1 `c6a.8xlarge` \$1 `c6a.12xlarge` \$1 `c6a.16xlarge`
  + **Speicheroptimiert**: `r6a.large` \$1 `r6a.xlarge` \$1 `r6a.2xlarge` \$1 `r6a.4xlarge`
+ Starten Sie Ihre Instance in einer unterstützten Version. AWS-Region Derzeit werden nur USA Ost (Ohio) und Europa (Irland) unterstützt.
+ Verwenden Sie ein AMI mit dem Startmodus `uefi` oder`uefi-preferred` und einem Betriebssystem, das AMD SEV-SNP unterstützt. Weitere Informationen zur Unterstützung von AMD SEV-SNP unter Ihrem Betriebssystem finden Sie in der Dokumentation des jeweiligen Betriebssystems. Denn AWS AMD SEV-SNP wird auf AL2 023, RHEL 9.3, SLES 15 SP4 und Ubuntu 23.04 und höher unterstützt.

## Überlegungen
<a name="snp-considerations"></a>

AMD SEV-SNP kann nur beim Start einer Instance aktiviert werden. Wenn AMD SEV-SNP für den Start Ihrer Instance aktiviert ist, gelten die folgenden Regeln.
+ Sobald es aktiviert ist, kann AMD SEV-SNP nicht mehr deaktiviert werden. Es bleibt während des gesamten Instance-Lebenszyklus aktiviert.
+ Sie können den Instance-Typ nur in einen anderen [Instance-Typ ändern](ec2-instance-resize.md), der AMD SEV-SNP unterstützt.
+ Ruhezustand und Nitro Enclaves werden nicht unterstützt.
+ Dedicated Hosts werden nicht unterstützt.
+ Wenn für den zugrundeliegenden Host Ihrer Instance eine Wartung geplant ist, erhalten Sie 14 Tage im Voraus eine Benachrichtigung über ein geplantes Ereignis. Sie müssen Ihre Instance manuell stoppen oder neu starten, um sie auf einen neuen Host zu verschieben.

## Preisgestaltung
<a name="snp-pricing"></a>

Wenn Sie eine EC2 Amazon-Instance mit aktiviertem AMD SEV-SNP starten, wird Ihnen eine zusätzliche Nutzungsgebühr pro Stunde berechnet, die 10 Prozent des [On-Demand-Stundensatzes](https://aws.amazon.com/ec2/pricing/on-demand/) des ausgewählten Instance-Typs entspricht.

Diese AMD SEV-SNP-Nutzungsgebühr ist eine separate Gebühr für Ihre EC2 Amazon-Instance-Nutzung. Reserved Instances, Savings Plans und die Nutzung des Betriebssystems haben keinen Einfluss auf diese Gebühr. 

Wenn Sie eine Spot Instance konfigurieren, mit aktiviertem [AMD SEV-SNP](#sev-snp) zu starten, wird Ihnen eine zusätzliche stündliche Nutzungsgebühr in Höhe von 10 % des [On-Demand-Stundensatzes](https://aws.amazon.com/ec2/pricing/on-demand/) des ausgewählten Instance-Typs berechnet. Wenn die Zuweisungsstrategie den Preis als Eingabewert verwendet, berücksichtigt die Spot-Flotte diese zusätzliche Gebühr nicht. Es wird nur der Spot-Preis verwendet.

# Finden Sie EC2 Instance-Typen, die AMD SEV-SNP unterstützen
<a name="snp-find-instance-types"></a>

Sie können Instance-Typen suchen, die AMD SEV-SNP unterstützen. Die EC2 Amazon-Konsole zeigt diese Informationen für einen Instance-Typ nicht an.

------
#### [ AWS CLI ]

**So suchen Sie Instance-Typen, die AMD SEV-SNP unterstützen**  
Verwenden Sie den folgenden [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-types.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-types.html)-Befehl.

```
aws ec2 describe-instance-types \
    --filters Name=processor-info.supported-features,Values=amd-sev-snp \
    --query 'InstanceTypes[*].[InstanceType]' \
    --output text | sort
```

Es folgt eine Beispielausgabe.

```
c6a.12xlarge
c6a.16xlarge
c6a.2xlarge
c6a.4xlarge
c6a.8xlarge
c6a.large
c6a.xlarge
m6a.2xlarge
m6a.4xlarge
m6a.8xlarge
m6a.large
m6a.xlarge
r6a.2xlarge
r6a.4xlarge
r6a.large
r6a.xlarge
```

------
#### [ PowerShell ]

**So suchen Sie Instance-Typen, die AMD SEV-SNP unterstützen**  
Verwenden Sie das cmdlet [Get-EC2InstanceType](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceType.html).

```
(Get-EC2InstanceType `
    -Filter @{Name="processor-info.supported-features"; Values="amd-sev-snp"}).InstanceType.Value | Sort-Object
```

Es folgt eine Beispielausgabe.

```
c6a.12xlarge
c6a.16xlarge
c6a.2xlarge
c6a.4xlarge
c6a.8xlarge
c6a.large
c6a.xlarge
m6a.2xlarge
m6a.4xlarge
m6a.8xlarge
m6a.large
m6a.xlarge
r6a.2xlarge
r6a.4xlarge
r6a.large
r6a.xlarge
```

------

# Aktivieren Sie AMD SEV-SNP für eine Instance EC2
<a name="snp-work-launch"></a>

Sie können eine Instance mit aktiviertem AMD SEV-SNP starten. AMD SEV-SNP kann nach dem Start nicht mehr aktiviert werden.

## Eine Instance mit aktiviertem AMD SEV-SNP starten
<a name="snp-launch-instance"></a>

Sie können AMD SEV-SNP nicht über die Amazon-Konsole aktivieren. EC2 

------
#### [ AWS CLI ]

**So starten Sie eine Instance mit aktiviertem AMD SEV-SNP**  
Verwenden Sie den Befehl [https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) mit der Option `--cpu-options`. Weitere Anforderungen finden Sie unter [Anforderungen für AMD SEV-SNP](sev-snp.md#snp-requirements).

```
--cpu-options AmdSevSnp=enabled
```

------
#### [ PowerShell ]

**So starten Sie eine Instance mit aktiviertem AMD SEV-SNP**  
Verwenden Sie das [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html)Cmdlet mit dem Parameter. `-CpuOption`

```
-CpuOption @{AmdSevSnp="enabled"}
```

------

## Prüfen Sie, ob eine EC2 Instanz für AMD SEV-SNP aktiviert ist
<a name="snp-work-check"></a>

Sie können Instances suchen, die für AMD SEV-SNP aktiviert sind. Die EC2 Amazon-Konsole zeigt diese Informationen nicht an.

------
#### [ AWS CLI ]

**So prüfen Sie, ob AMD SEV-SNP für eine Instance aktiviert ist**  
Verwenden Sie den Befehl [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html).

```
aws ec2 describe-instances \
    --instance-ids i-1234567890abcdef0 \
    --query Reservations[].Instances[].CpuOptions
```

Es folgt eine Beispielausgabe. Wenn `AmdSevSnp` nicht in `CpuOptions` vorhanden ist, ist AMD SEV-SNP deaktiviert.

```
[
    {
        "AmdSevSnp": "enabled",
        "CoreCount": 1,
        "ThreadsPerCore": 2
    }
]
```

------
#### [ PowerShell ]

**So prüfen Sie, ob AMD SEV-SNP für eine Instance aktiviert ist**  
Verwenden Sie das cmdlet [Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html).

```
(Get-EC2Instance `
    -InstanceId i-1234567890abcdef0).Instances.CpuOptions
```

Es folgt eine Beispielausgabe. Wenn der Wert von `AmdSevSnp` nicht vorhanden ist, ist AMD SEV-SNP deaktiviert.

```
AmdSevSnp CoreCount ThreadsPerCore
--------- --------- --------------
enabled   1         2
```

------
#### [ AWS CloudTrail ]

Im AWS CloudTrail Fall der Anfrage zum Start der Instance gibt die folgende Eigenschaft an, dass AMD SEV-SNP für die Instance aktiviert ist.

```
"cpuOptions": {"AmdSevSnp": "enabled"}
```

------

# Bestätigen Sie eine EC2 Amazon-Instance mit AMD SEV-SNP
<a name="snp-attestation"></a>

Die Bescheinigung ist ein Prozess, mit dem Ihre Instance ihren Status und ihre Identität nachweisen kann. Nachdem Sie AMD SEV-SNP für Ihre Instance aktivieren, können Sie vom zugrunde liegenden Prozessor einen AMD-SEV-SNP-Bestätigungsbericht anfordern. Der AMD-SEV-SNP-Bescheinigungsbericht enthält einen kryptografischen Hash, die sogenannte Startmessung, die den anfänglichen Inhalt des Gastspeichers und den anfänglichen vCPU-Status anzeigt. Der Bescheinigungsbericht ist mit einer VLEK-Signatur signiert, die auf eine AMD-Stammvertrauenstellung zurückgeht. Sie können anhand der im Bescheinigungsbericht enthaltenen Startmessung überprüfen, ob die Instance in einer echten AMD-Umgebung ausgeführt wird, und den anfänglichen Startcode überprüfen, der zum Starten der Instance verwendet wurde.

**Voraussetzung**  
Starten Sie eine Instance, die für AMD SEV-SNP aktiviert ist. Weitere Informationen finden Sie unter [Aktivieren Sie AMD SEV-SNP für eine Instance EC2](snp-work-launch.md).

**Topics**
+ [Schritt 1: Abrufen des Bescheinigungsberichts](#snp-att-get-report)
+ [Schritt 2: Validieren Sie die Signatur des Bestätigungsberichts](#snp-att-validate-signature)

## Schritt 1: Abrufen des Bescheinigungsberichts
<a name="snp-att-get-report"></a>

In diesem Schritt installieren und erstellen Sie das `snpguest`-Hilfsprogramm und verwenden es dann, um den Bestätigungsbericht von AMD SEV-SNP anzufordern.

1. Verbinden Sie sich mit der Instance.

1. Führen Sie die folgenden Befehle aus, um das `snpguest`-Hilfsprogramm vom [https://github.com/virtee/snpguest](https://github.com/virtee/snpguest) zu installieren.

   ```
   $ git clone https://github.com/virtee/snpguest.git
   $ cd snpguest
   $ cargo build -r
   $ cd target/release
   ```

1. Generieren Sie eine Anfrage für den Bestätigungsbericht. Das Hilfsprogramm fordert den Bestätigungsbericht vom Host an und schreibt ihn mit den bereitgestellten Anforderungsdaten in eine Binärdatei.

   Das folgende Beispiel erstellt eine zufällige Anforderungszeichenfolge und verwendet sie als Anforderungsdatei (`request-file.txt`). Wenn der Befehl den Bestätigungsbericht zurückgibt, wird er in dem von Ihnen angegebenen Dateipfad gespeichert (`report.bin`). In diesem Fall speichert das Hilfsprogramm den Bericht im aktuellen Verzeichnis.

   ```
   $ ./snpguest report report.bin request-file.txt --random
   ```

1. Fordern Sie die Zertifikate aus dem Host-Speicher an und speichern Sie sie als PEM-Dateien. Im folgenden Beispiel werden die Dateien im selben Verzeichnis wie das `snpguest`-Hilfsprogramm gespeichert. Wenn im angegebenen Verzeichnis bereits Zertifikate vorhanden sind, werden diese Zertifikate überschrieben.

   ```
   $ ./snpguest certificates PEM ./
   ```

## Schritt 2: Validieren Sie die Signatur des Bestätigungsberichts
<a name="snp-att-validate-signature"></a>

Der Bestätigungsbericht ist mit einem Zertifikat signiert, dem sogenannten Versioned Loaded Endorsement Key (VLEK), das von AMD ausgestellt wurde für. AWS In diesem Schritt können Sie überprüfen, ob das VLEK-Zertifikat von AMD ausgestellt wurde und ob der Bestätigungsbericht mit diesem VLEK-Zertifikat signiert ist.

1. Laden Sie die VLEK-Zertifikate der Root-Vertrauenstellung von der offiziellen AMD-Website in das aktuelle Verzeichnis herunter.

   ```
   $ sudo curl --proto '=https' --tlsv1.2 -sSf https://kdsintf.amd.com/vlek/v1/Milan/cert_chain -o ./cert_chain.pem
   ```

1. Verwenden Sie `openssl`, um zu überprüfen, ob das VLEK-Zertifikat von den Zertifikaten der AMD-Stammvertrauenstellung signiert ist.

   ```
   $ sudo openssl verify --CAfile ./cert_chain.pem vlek.pem
   ```

   Es folgt eine Beispielausgabe.

   ```
   vlek.pem: OK
   ```

1. Verwenden Sie das Dienstprogramm `snpguest`, um zu überprüfen, ob der Bescheinigungsbericht mit dem VLEK-Zertifikat signiert ist.

   ```
   $ ./snpguest verify attestation ./ report.bin
   ```

   Es folgt eine Beispielausgabe.

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