

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.

# Ermitteln Sie, ob ein Host eine EC2 Instanz ist
<a name="identify_ec2_instances"></a>

Möglicherweise müssen Sie wissen, ob Ihre Anwendung oder Website auf einer EC2 Instance ausgeführt wird, insbesondere wenn Sie eine gemischte Computerumgebung haben. Sie können eine der folgenden Optionen verwenden, um festzustellen, ob es sich bei dem Host für Ihre Anwendung oder Website um eine EC2 Instanz handelt.

**Topics**
+ [Untersuchen von Instance-Identitätsdokument](#inspect-instance-identity-document)
+ [Überprüfen des System-UUID](#inspect-uuid)
+ [Überprüfen der System-ID zur Generierung der virtuellen Maschine](#vm-generation-id)

## Untersuchen von Instance-Identitätsdokument
<a name="inspect-instance-identity-document"></a>

Jede Instance verfügt über ein signiertes Identitätsdokument für die Instance, das Sie kryptografisch überprüfen können. Sie können diese Dokumente über den Instance Metadata Service (IMDS) finden.

Weitere Informationen finden Sie unter [Instance-Identitätsdokumente](instance-identity-documents.md).

## Überprüfen des System-UUID
<a name="inspect-uuid"></a>

Sie können die System-UUID abrufen und im ersten Oktett der UUID nach `EC2` suchen (unter Linux ist dies möglicherweise ein klein geschriebenes `ec2`). Diese Methode ist schnell, aber möglicherweise ungenau, da die Wahrscheinlichkeit gering ist, dass ein System, das keine EC2 Instanz ist, eine UUID hat, die mit diesen Zeichen beginnt. Darüber hinaus verwenden einige Versionen von SMBIOS das *Little-Endian*-Format, das `EC2` am Anfang der UUID nicht einschließt. Dies kann bei EC2 Instances der Fall sein, die SMBIOS 2.4 für Windows verwenden, oder bei anderen Linux-Distributionen als Amazon Linux, die über eine eigene Implementierung von SMBIOS verfügen.

**Linux-Beispiel: Holen Sie sich die UUID von DMI (nur HVM) AMIs**  
Verwenden Sie den folgenden Befehl, um die UUID mit dem Desktop Management Interface (DMI) abzurufen:

```
[ec2-user ~]$ sudo dmidecode --string system-uuid
```

In der folgenden Beispielausgabe beginnt die UUID mit "EC2„, was darauf hinweist, dass es sich bei dem System wahrscheinlich um eine Instanz handelt. EC2 

```
EC2E1916-9099-7CAF-FD21-012345ABCDEF
```

In der folgenden Beispielausgabe ist die UUID im Little-Endian-Format dargestellt.

```
45E12AEC-DCD1-B213-94ED-012345ABCDEF
```

Alternativ können Sie für Instances, die auf dem Nitro-System basieren, den folgenden Befehl verwenden:

```
[ec2-user ~]$ cat /sys/devices/virtual/dmi/id/board_asset_tag
```

Wenn es sich bei der Ausgabe um eine Instanz-ID handelt, wie in der folgenden Beispielausgabe, handelt es sich bei dem System um eine EC2 Instanz:

```
i-0af01c0123456789a
```

**Linux-Beispiel: Ruft die UUID vom Hypervisor ab (nur PV) AMIs**  
Verwenden Sie den folgenden Befehl, um die UUID vom Hypervisor zu erhalten:

```
[ec2-user ~]$ cat /sys/hypervisor/uuid
```

In der folgenden Beispielausgabe beginnt die UUID mit „ec2", was darauf hinweist, dass es sich bei dem System wahrscheinlich um eine Instanz handelt. EC2 

```
ec2e1916-9099-7caf-fd21-012345abcdef
```

**Windows-Beispiel: Rufen Sie die UUID mithilfe von WMI oder Windows ab PowerShell**  
Verwenden Sie die Windows-Verwaltungsinstrumentation-Befehlszeile (WMIC) wie folgt:

```
wmic path win32_computersystemproduct get uuid
```

Wenn Sie Windows verwenden, verwenden Sie das PowerShell **Get-WmiObject** Cmdlet alternativ wie folgt:

```
PS C:\> Get-WmiObject -query "select uuid from Win32_ComputerSystemProduct" | Select UUID
```

In der folgenden Beispielausgabe beginnt die UUID mit "EC2„, was darauf hinweist, dass es sich bei dem System wahrscheinlich um eine Instanz handelt. EC2 

```
EC2AE145-D1DC-13B2-94ED-012345ABCDEF
```

Bei Instances mit SMBIOS 2.4 kann die UUID im Little-Endian-Format angegeben werden, zum Beispiel:

```
45E12AEC-DCD1-B213-94ED-012345ABCDEF
```

## Überprüfen der System-ID zur Generierung der virtuellen Maschine
<a name="vm-generation-id"></a>

Eine ID zur Generierung virtueller Maschinen besteht aus einem eindeutigen Puffer von 128 Bit, der als kryptografische, zufällige Ganzzahl-ID interpretiert wird. Sie können die ID zur Generierung der virtuellen Maschine abrufen, um Ihre Amazon-Elastic-Compute-Cloud-Instance zu identifizieren. Die Generierungs-ID wird im Gastbetriebssystem der Instance durch einen ACPI-Tabelleneintrag verfügbar gemacht. Der Wert ändert sich, wenn Ihre Maschine geklont, kopiert oder in AWS importiert wird, z. B. mit [VM Import/Export](https://docs.aws.amazon.com/vm-import/latest/userguide/what-is-vmimport.html).

**Beispiel: Die ID zur Generierung der virtuellen Maschine aus Linux abrufen**  
Sie können die folgenden Befehle verwenden, um die ID zur Generierung der virtuellen Maschine von Ihren Instances abzurufen, auf denen Linux ausgeführt wird.

------
#### [ Amazon Linux 2 ]

1. Aktualisieren Sie Ihre vorhandenen Softwarepakete bei Bedarf mit dem folgenden Befehl:

   ```
   sudo yum update
   ```

1. Wenn nötig, beziehen Sie das busybox-Paket mit dem folgenden Befehl:

   ```
   sudo curl https://www.rpmfind.net/linux/epel/next/8/Everything/x86_64/Packages/b/busybox-1.35.0-2.el8.next.x86_64.rpm --output busybox.rpm
   ```

1. Installieren Sie ggf. die Voraussetzungspakete mit dem folgenden Befehl:

   ```
   sudo yum install busybox.rpm iasl -y
   ```

1. Führen Sie den folgenden `iasl`-Befehl aus, um eine Ausgabe aus der ACPI-Tabelle zu erzeugen:

   ```
   sudo iasl -p ./SSDT2 -d /sys/firmware/acpi/tables/SSDT2
   ```

1. Führen Sie den folgenden Befehl aus, um die Ausgabe des `iasl`-Befehls zu prüfen:

   ```
   cat SSDT2.dsl
   ```

   Die Ausgabe sollte den Adressraum liefern, der zum Abrufen der ID zur Generierung der virtuellen Maschine erforderlich ist:

   ```
   Intel ACPI Component Architecture
   ASL+ Optimizing Compiler/Disassembler version 20190509
   Copyright (c) 2000 - 2019 Intel Corporation
   
   File appears to be binary: found 32 non-ASCII characters, disassembling
   Binary file appears to be a valid ACPI table, disassembling
   Input file /sys/firmware/acpi/tables/SSDT2, Length 0x7B (123) bytes
   ACPI: SSDT 0x0000000000000000 00007B (v01 AMAZON AMZNSSDT 00000001 AMZN 00000001)
   Pass 1 parse of [SSDT]
   Pass 2 parse of [SSDT]
   Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)
   
   Parsing completed
   Disassembly completed
   ASL Output:    ./SSDT2.dsl - 1065 bytes
   $
   /*
   * Intel ACPI Component Architecture
   * AML/ASL+ Disassembler version 20190509 (64-bit version)
   * Copyright (c) 2000 - 2019 Intel Corporation
   *
   * Disassembling to symbolic ASL+ operators
   *
   * Disassembly of /sys/firmware/acpi/tables/SSDT2, Tue Mar 29 16:15:14 2022
   *
   * Original Table Header:
   *     Signature        "SSDT"
   *     Length           0x0000007B (123)
   *     Revision         0x01
   *     Checksum         0xB8
   *     OEM ID           "AMAZON"
   *     OEM Table ID     "AMZNSSDT"
   *     OEM Revision     0x00000001 (1)
   *     Compiler ID      "AMZN"
   *     Compiler Version 0x00000001 (1)
   */
   DefinitionBlock ("", "SSDT", 1, "AMAZON", "AMZNSSDT", 0x00000001)
   {
   Scope (\_SB)
   {
       Device (VMGN)
       {
           Name (_CID, "VM_Gen_Counter")  // _CID: Compatible ID
           Name (_DDN, "VM_Gen_Counter")  // _DDN: DOS Device Name
           Name (_HID, "AMZN0000")  // _HID: Hardware ID
           Name (ADDR, Package (0x02)
           {
               0xFED01000,
               Zero
           })
       }
   }
   }
   ```

1. (Optional) Erweitern Sie Ihre Terminalberechtigungen für die verbleibenden Schritte mit dem folgenden Befehl:

   ```
   sudo -s
   ```

1. Verwenden Sie den folgenden Befehl, um den zuvor erfassten Adressraum zu speichern:

   ```
   VMGN_ADDR=0xFED01000
   ```

1. Verwenden Sie den folgenden Befehl, um den Adressraum zu durchlaufen und die ID zur Generierung der virtuellen Maschine zu erstellen:

   ```
   for offset in 0x0 0x4 0x8 0xc; do busybox devmem $(($VMGN_ADDR + $offset)) | sed 's/0x//' | sed -z '$ s/\n$//' >> vmgenid; done
   ```

1. Rufen Sie die ID zur Generierung der virtuellen Maschine mit dem folgenden Befehl aus der Ausgabedatei ab:

   ```
   cat vmgenid ; echo
   ```

   Die Ausgabe sollte in etwa wie folgt aussehen:

   ```
   EC2F335D979132C4165896753E72BD1C
   ```

------
#### [ Ubuntu ]

1. Aktualisieren Sie Ihre vorhandenen Softwarepakete bei Bedarf mit dem folgenden Befehl:

   ```
   sudo apt update
   ```

1. Installieren Sie ggf. die Voraussetzungspakete mit dem folgenden Befehl:

   ```
   sudo apt install busybox iasl -y
   ```

1. Führen Sie den folgenden `iasl`-Befehl aus, um eine Ausgabe aus der ACPI-Tabelle zu erzeugen:

   ```
   sudo iasl -p ./SSDT2 -d /sys/firmware/acpi/tables/SSDT2
   ```

1. Führen Sie den folgenden Befehl aus, um die Ausgabe des `iasl`-Befehls zu prüfen:

   ```
   cat SSDT2.dsl
   ```

   Die Ausgabe sollte den Adressraum liefern, der zum Abrufen der ID zur Generierung der virtuellen Maschine erforderlich ist:

   ```
   Intel ACPI Component Architecture
   ASL+ Optimizing Compiler/Disassembler version 20190509
   Copyright (c) 2000 - 2019 Intel Corporation
   
   File appears to be binary: found 32 non-ASCII characters, disassembling
   Binary file appears to be a valid ACPI table, disassembling
   Input file /sys/firmware/acpi/tables/SSDT2, Length 0x7B (123) bytes
   ACPI: SSDT 0x0000000000000000 00007B (v01 AMAZON AMZNSSDT 00000001 AMZN 00000001)
   Pass 1 parse of [SSDT]
   Pass 2 parse of [SSDT]
   Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)
   
   Parsing completed
   Disassembly completed
   ASL Output:    ./SSDT2.dsl - 1065 bytes
   $
   /*
   * Intel ACPI Component Architecture
   * AML/ASL+ Disassembler version 20190509 (64-bit version)
   * Copyright (c) 2000 - 2019 Intel Corporation
   *
   * Disassembling to symbolic ASL+ operators
   *
   * Disassembly of /sys/firmware/acpi/tables/SSDT2, Tue Mar 29 16:15:14 2022
   *
   * Original Table Header:
   *     Signature        "SSDT"
   *     Length           0x0000007B (123)
   *     Revision         0x01
   *     Checksum         0xB8
   *     OEM ID           "AMAZON"
   *     OEM Table ID     "AMZNSSDT"
   *     OEM Revision     0x00000001 (1)
   *     Compiler ID      "AMZN"
   *     Compiler Version 0x00000001 (1)
   */
   DefinitionBlock ("", "SSDT", 1, "AMAZON", "AMZNSSDT", 0x00000001)
   {
   Scope (\_SB)
   {
       Device (VMGN)
       {
           Name (_CID, "VM_Gen_Counter")  // _CID: Compatible ID
           Name (_DDN, "VM_Gen_Counter")  // _DDN: DOS Device Name
           Name (_HID, "AMZN0000")  // _HID: Hardware ID
           Name (ADDR, Package (0x02)
           {
               0xFED01000,
               Zero
           })
       }
   }
   }
   ```

1. (Optional) Erweitern Sie Ihre Terminalberechtigungen für die verbleibenden Schritte mit dem folgenden Befehl:

   ```
   sudo -s
   ```

1. Verwenden Sie die folgenden Befehle, um den zuvor erfassten Adressraum zu speichern:

   ```
   VMGN_ADDR=0xFED01000
   ```

1. Verwenden Sie den folgenden Befehl, um den Adressraum zu durchlaufen und die ID zur Generierung der virtuellen Maschine zu erstellen:

   ```
   for offset in 0x0 0x4 0x8 0xc; do busybox devmem $(($VMGN_ADDR + $offset)) | sed 's/0x//' | sed -z '$ s/\n$//' >> vmgenid; done
   ```

1. Rufen Sie die ID zur Generierung der virtuellen Maschine mit dem folgenden Befehl aus der Ausgabedatei ab:

   ```
   cat vmgenid ; echo
   ```

   Die Ausgabe sollte in etwa wie folgt aussehen:

   ```
   EC2F335D979132C4165896753E72BD1C
   ```

------

**Beispiel: Die ID zur Generierung der virtuellen Maschine aus Windows abrufen**  


Sie können eine Beispielanwendung erstellen, um die ID zur Generierung der virtuellen Maschine von Ihren Instances abzurufen, auf denen Windows ausgeführt wird. Weitere Informationen finden Sie unter [Erhalten der ID zur Generierung der virtuellen Maschine](https://learn.microsoft.com/en-us/windows/win32/hyperv_v2/virtual-machine-generation-identifier#obtaining-the-virtual-machine-generation-identifier) in der Microsoft-Dokumentation.