Identifier des instances Linux EC2 - Amazon Elastic Compute Cloud

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.

Identifier des instances Linux EC2

Vous pouvez avoir à déterminer si votre application s’exécute sur une instance EC2.

Pour plus d’informations sur l’identification des instances Windows, consultez Identification des instances EC2 Windows dans le manuel Amazon EC2 Guide de l’utilisateur pour les instances Windows.

Inspecter le Documents d’identité d’instance

Pour identifier une instance EC2 à l’aide d’une méthode définitive incluant un chiffrement, vérifiez le document d’identité d’instance, y compris sa signature. Ces documents sont disponibles sur chaque instance EC2 à l’adresse locale non routable http://169.254.169.254/latest/dynamic/instance-identity/. Pour plus d’informations, consultez Documents d’identité d’instance.

Inspecter l’UUID du système

Vous pouvez obtenir l’UUID système et rechercher la présence des caractères « ec2 » ou « EC2 » dans l’octet de début de l’UUID. Cette méthode pour déterminer si un système est une instance EC2 est rapide, mais potentiellement inexacte, car il est peu probable qu’un système qui n’est pas une instance EC2 puisse avoir un UUID qui commence par ces caractères. De plus, les pour les instances EC2 qui n’utilisent pas Amazon Linux 2, l’implémentation de la distribution de SMBIOS peuvent représenter l’UUID au format little-endian. Par conséquent, les caractères « EC2 » n’apparaissent pas au début de l’UUID.

Exemple : Obtenir l’UUID à partir de DMI (AMI HVM uniquement)

Utilisez la commande suivante pour obtenir l’UUID à l’aide de DMI (Desktop Management Interface) :

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

Dans l’exemple de sortie suivant, l’UUID commence par « EC2 », ce qui indique que le système est probablement une instance EC2.

EC2E1916-9099-7CAF-FD21-012345ABCDEF

Dans l’exemple de sortie qui suit, l’UUID est représenté au format Little Endian :

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

Sinon, pour les instances construites sur le système Nitro, vous pouvez utiliser la commande suivante :

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

Si la sortie est un ID d’instance, comme l’exemple de sortie suivant, le système est une instance EC2 :

i-0af01c0123456789a
Exemple : Obtenir l’UUID auprès de l’hyperviseur (AMI PV uniquement)

Utilisez la commande suivante pour obtenir l’UUID de l’hyperviseur :

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

Dans l’exemple de sortie suivant, l’UUID commence par « ec2 », ce qui indique que le système est probablement une instance EC2.

ec2e1916-9099-7caf-fd21-012345abcdef

Inspecter l’identificateur de génération de machine virtuelle du système

Un identificateur de génération de machine virtuelle consiste en un tampon unique de 128 bits interprété comme un entier unique aléatoire cryptographique. Vous pouvez récupérer l’identificateur de génération de machine virtuelle pour identifier votre instance Amazon Elastic Compute Cloud. L’identificateur de génération est exposé dans le système d’exploitation invité de l’instance via une entrée de table ACPI. La valeur change si votre machine est clonée, copiée ou importée dans AWS, par exemple avec VM Import/Export.

Exemple : récupérer l’identificateur de génération de machine virtuelle à partir de Linux

Vous pouvez utiliser les commandes suivantes pour récupérer l’identifiant de génération de machine virtuelle à partir de vos instances exécutant Linux.

Amazon Linux 2
  1. Mettez à jour vos packages logiciels existants, le cas échéant, à l’aide de la commande suivante :

    sudo yum update
  2. Si nécessaire, créez le package busybox à l’aide de la commande suivante :

    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
  3. Si nécessaire, installez les packages préalables à l’aide de la commande suivante :

    sudo yum install busybox.rpm iasl -y
  4. Exécutez la commande iasl suivante pour produire une sortie à partir de la table ACPI :

    sudo iasl -p ./SSDT2 -d /sys/firmware/acpi/tables/SSDT2
  5. Exécutez la commande suivante pour vérifier la sortie de la commande iasl :

    cat SSDT2.dsl

    La sortie doit fournir l’espace d’adressage requis pour récupérer l’identificateur de génération de machine virtuelle :

    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
                })
            }
        }
    }
  6. (Facultatif) Augmentez les autorisations de votre terminal pour les étapes restantes à l’aide de la commande suivante :

    sudo -s
  7. Utilisez la commande suivante pour stocker l’espace d’adressage précédemment collecté :

    VMGN_ADDR=0xFED01000
  8. Utilisez la commande suivante pour parcourir l’espace d’adressage et créer l’identificateur de génération de machine virtuelle :

    for offset in 0x0 0x4 0x8 0xc; do busybox devmem $(($VMGN_ADDR + $offset)) | sed 's/0x//' | sed -z '$ s/\n$//' >> vmgenid; done
  9. Récupérez l’identificateur de génération de machine virtuelle à partir du fichier de sortie à l’aide de la commande suivante :

    cat vmgenid ; echo

    Votre sortie doit ressembler à ce qui suit :

    EC2F335D979132C4165896753E72BD1C
Ubuntu
  1. Mettez à jour vos packages logiciels existants, le cas échéant, à l’aide de la commande suivante :

    sudo apt update
  2. Si nécessaire, installez les packages préalables à l’aide de la commande suivante :

    sudo apt install busybox iasl -y
  3. Exécutez la commande iasl suivante pour produire une sortie à partir de la table ACPI :

    sudo iasl -p ./SSDT2 -d /sys/firmware/acpi/tables/SSDT2
  4. Exécutez la commande suivante pour vérifier la sortie de la commande iasl :

    cat SSDT2.dsl

    La sortie doit fournir l’espace d’adressage requis pour récupérer l’identificateur de génération de machine virtuelle :

    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
                })
            }
        }
    }
  5. (Facultatif) Augmentez les autorisations de votre terminal pour les étapes restantes à l’aide de la commande suivante :

    sudo -s
  6. Utilisez les commandes suivantes pour stocker l’espace d’adressage précédemment collecté :

    VMGN_ADDR=0xFED01000
  7. Utilisez la commande suivante pour parcourir l’espace d’adressage et créer l’identificateur de génération de machine virtuelle :

    for offset in 0x0 0x4 0x8 0xc; do busybox devmem $(($VMGN_ADDR + $offset)) | sed 's/0x//' | sed -z '$ s/\n$//' >> vmgenid; done
  8. Récupérez l’identificateur de génération de machine virtuelle à partir du fichier de sortie à l’aide de la commande suivante :

    cat vmgenid ; echo

    Votre sortie doit ressembler à ce qui suit :

    EC2F335D979132C4165896753E72BD1C