Utiliser la signature codée en base64 pour vérifier le Documents d’identité d’instance - 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.

Utiliser la signature codée en base64 pour vérifier le Documents d’identité d’instance

Cette rubrique explique comment vérifier le document d'identité de l'instance à l'aide de la signature codée en base64 et du certificat public AWS RSA.

Pour valider le document d'identité de l'instance à l'aide de la signature codée en base64 et du certificat public AWS RSA
  1. Connectez-vous à l’instance.

  2. Récupérez la signature codée en base64 à partir des métadonnées d’instance, convertissez-la en binaire et ajoutez-la à un fichier nommé signature. Utilisez l’une des commandes suivantes en fonction de la version IMDS utilisée par l’instance.

    IMDSv2
    $ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/dynamic/instance-identity/signature | base64 -d >> signature
    IMDSv1
    $ curl -s http://169.254.169.254/latest/dynamic/instance-identity/signature | base64 -d >> signature
  3. Récupérez le Documents d’identité d’instance en texte brut à partir des métadonnées de l’instance et ajoutez-le à un fichier nommé document. Utilisez l’une des commandes suivantes en fonction de la version IMDS utilisée par l’instance.

    IMDSv2
    $ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/dynamic/instance-identity/document >> document
    IMDSv1
    $ curl -s http://169.254.169.254/latest/dynamic/instance-identity/document >> document
  4. Trouvez le certificat public RSA pour votre région dans AWS certificats publics et ajoutez le contenu à un nouveau fichier nommé certificate.

  5. Extrayez la clé publique du certificat public AWS RSA et enregistrez-la dans un fichier nommékey.

    $ openssl x509 -pubkey -noout -in certificate >> key
  6. Utilisez la commande OpenSSL dgst pour vérifier le Documents d’identité d’instance.

    $ openssl dgst -sha256 -verify key -signature signature document

    Si la signature est valide, le message Verification successful s’affiche.

    La commande écrit également le contenu du document d’identité d’instance dans un nouveau fichier nommé document. Vous pouvez comparer le contenu du document d’identité d’instance provenant des métadonnées d’instance avec le contenu de ce fichier à l’aide des commandes suivantes.

    $ openssl dgst -sha256 < document
    $ curl -s -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/dynamic/instance-identity/document | openssl dgst -sha256

    Si la signature ne peut pas être vérifiée, contactez AWS Support.

Pour valider le document d'identité de l'instance à l'aide de la signature codée en base64 et du certificat public AWS RSA
  1. Connectez-vous à l’instance.

  2. Récupérez la signature codée en base64 à partir des métadonnées d’instance, convertissez-la en un tableau d’octets et ajoutez-la à la variable nommée $Signature. Utilisez l’une des commandes suivantes en fonction de la version IMDS utilisée par l’instance.

    IMDSv2
    PS C:\> [string]$token = (Invoke-WebRequest -Method Put -Headers @{'X-aws-ec2-metadata-token-ttl-seconds' = '21600'} http://169.254.169.254/latest/api/token).Content
    PS C:\> $Signature = [Convert]::FromBase64String((Invoke-WebRequest -Headers @{'X-aws-ec2-metadata-token' = $Token} http://169.254.169.254/latest/dynamic/instance-identity/signature).Content)
    IMDSv1
    PS C:\> $Signature = [Convert]::FromBase64String((Invoke-WebRequest http://169.254.169.254/latest/dynamic/instance-identity/signature).Content)
  3. Récupérez le document d’identité d’instance en texte brut à partir des métadonnées d’instance, convertissez-le en un tableau d’octets et ajoutez-le à une variable nommée $Document. Utilisez l’une des commandes suivantes en fonction de la version IMDS utilisée par l’instance.

    IMDSv2
    PS C:\> $Document = [Text.Encoding]::UTF8.GetBytes((Invoke-WebRequest -Headers @{'X-aws-ec2-metadata-token' = $Token} http://169.254.169.254/latest/dynamic/instance-identity/document).Content)
    IMDSv1
    PS C:\> $Document = [Text.Encoding]::UTF8.GetBytes((Invoke-WebRequest http://169.254.169.254/latest/dynamic/instance-identity/document).Content)
  4. Trouvez le certificat public RSA pour votre région dans AWS certificats publics et ajoutez le contenu à un nouveau fichier nommé certificate.pem.

  5. Vérifier le document d’identité d’instance

    PS C:\> [Security.Cryptography.X509Certificates.X509Certificate2]::new((Resolve-Path certificate.pem)).PublicKey.Key.VerifyData($Document, 'SHA256', $Signature)

    Si la signature est valide, la commande renvoie True. Si la signature ne peut pas être vérifiée, contactez AWS Support.