Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Verifica il documento di identità dell'istanza per un' EC2 istanza Amazon

Modalità Focus
Verifica il documento di identità dell'istanza per un' EC2 istanza Amazon - Amazon Elastic Compute Cloud

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Se si intende utilizzare i contenuti del Documenti di identità dell'istanza per uno scopo importante, occorre verificarne il contenuto e l'autenticità prima di utilizzarlo.

Il Documenti di identità dell'istanza di testo normale è accompagnato da tre firme con hash e crittografate. Puoi utilizzare queste firme per verificare l'origine e l'autenticità del Documenti di identità dell'istanza e delle informazioni incluse. Vengono fornite le seguenti firme:

  • Firma con codifica Base64: si tratta di un hash con codifica base64 del documento di identità dell'istanza che viene crittografato utilizzando una coppia SHA256 di chiavi RSA.

  • PKCS7 Firma: si tratta di un SHA1 hash del documento di identità dell'istanza crittografato utilizzando una coppia di chiavi DSA.

  • Firma RSA-2048: si tratta di un SHA256 hash del documento di identità dell'istanza crittografato utilizzando una coppia di chiavi RSA-2048.

Ogni firma è disponibile in un endpoint diverso nei metadati dell'istanza. Puoi utilizzare una di queste firme qualsiasi a seconda dei requisiti di hashing e di crittografia. Per verificare le firme, è necessario utilizzare il certificato pubblico corrispondente. AWS

Opzione 1: verifica il documento di identità dell'istanza utilizzando la firma PKCS7

Questo argomento spiega come verificare il documento di identità dell'istanza utilizzando la PKCS7 firma e il certificato pubblico AWS DSA.

Per verificare il documento di identità dell'istanza utilizzando la PKCS7 firma e il certificato AWS pubblico DSA
  1. Collegati all'istanza.

  2. Recupera la PKCS7 firma dai metadati dell'istanza e aggiungila a un nuovo file denominato pkcs7 insieme all'intestazione e al piè di pagina richiesti. Utilizzare uno dei comandi seguenti a seconda della versione IMDS utilizzata dall'istanza.

    IMDSv2
    $ echo "-----BEGIN PKCS7-----" >> pkcs7 \ && 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/pkcs7 >> pkcs7 \ && echo "" >> pkcs7 \ && echo "-----END PKCS7-----" >> pkcs7
    IMDSv1
    $ echo "-----BEGIN PKCS7-----" >> pkcs7 \ && curl -s http://169.254.169.254/latest/dynamic/instance-identity/pkcs7 >> pkcs7 \ && echo "" >> pkcs7 \ && echo "-----END PKCS7-----" >> pkcs7
  3. Trovare il certificato pubblico DSA per la propria regione in AWS certificati pubblici, ad esempio firme di documenti di identità e aggiungere i contenuti in un nuovo file denominato certificate.

  4. Utilizzare il comando OpenSSL smime per verificare la firma. Includere l'opzione -verify per indicare che la firma deve essere verificata e l'opzione -noverify per indicare che il certificato non deve essere verificato.

    $ openssl smime -verify -in pkcs7 -inform PEM -certfile certificate -noverify | tee document

    Se la firma è valida, viene visualizzato il messaggio Verification successful.

    Il comando, inoltre, scrive i contenuti del documento di identità dell'istanza in un nuovo file denominato document. Puoi confrontare i contenuti del documento di identità dell'istanza dai metadati dell'istanza con i contenuti di questo file utilizzando i comandi seguenti.

    $ 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

    Se non è possibile verificare la firma, contattare Supporto.

Per verificare il documento di identità dell'istanza utilizzando la PKCS7 firma e il certificato AWS pubblico DSA
  1. Collegati all'istanza.

  2. Recupera la PKCS7 firma dai metadati dell'istanza e aggiungila a un nuovo file denominato pkcs7 insieme all'intestazione e al piè di pagina richiesti. Utilizzare uno dei comandi seguenti a seconda della versione IMDS utilizzata dall'istanza.

    IMDSv2
    $ echo "-----BEGIN PKCS7-----" >> pkcs7 \ && 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/pkcs7 >> pkcs7 \ && echo "" >> pkcs7 \ && echo "-----END PKCS7-----" >> pkcs7
    IMDSv1
    $ echo "-----BEGIN PKCS7-----" >> pkcs7 \ && curl -s http://169.254.169.254/latest/dynamic/instance-identity/pkcs7 >> pkcs7 \ && echo "" >> pkcs7 \ && echo "-----END PKCS7-----" >> pkcs7
    $ echo "-----BEGIN PKCS7-----" >> pkcs7 \ && 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/pkcs7 >> pkcs7 \ && echo "" >> pkcs7 \ && echo "-----END PKCS7-----" >> pkcs7
  3. Trovare il certificato pubblico DSA per la propria regione in AWS certificati pubblici, ad esempio firme di documenti di identità e aggiungere i contenuti in un nuovo file denominato certificate.

  4. Utilizzare il comando OpenSSL smime per verificare la firma. Includere l'opzione -verify per indicare che la firma deve essere verificata e l'opzione -noverify per indicare che il certificato non deve essere verificato.

    $ openssl smime -verify -in pkcs7 -inform PEM -certfile certificate -noverify | tee document

    Se la firma è valida, viene visualizzato il messaggio Verification successful.

    Il comando, inoltre, scrive i contenuti del documento di identità dell'istanza in un nuovo file denominato document. Puoi confrontare i contenuti del documento di identità dell'istanza dai metadati dell'istanza con i contenuti di questo file utilizzando i comandi seguenti.

    $ 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

    Se non è possibile verificare la firma, contattare Supporto.

Prerequisiti

Questa procedura richiede la classe System.Security Microsoft .NET Core. Per aggiungere la classe alla PowerShell sessione, esegui il comando seguente.

PS C:\> Add-Type -AssemblyName System.Security
Nota

Il comando aggiunge la classe solo alla PowerShell sessione corrente. Se avvii una nuova sessione, devi eseguire nuovamente il comando.

Per verificare il documento di identità dell'istanza utilizzando la PKCS7 firma e il AWS certificato pubblico DSA
  1. Collegati all'istanza.

  2. Recuperate la PKCS7 firma dai metadati dell'istanza, convertitela in un array di byte e aggiungetela a una variabile denominata. $Signature Utilizzare uno dei comandi seguenti a seconda della versione IMDS utilizzata dall'istanza.

    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/pkcs7).Content)
    IMDSv1
    PS C:\> $Signature = [Convert]::FromBase64String((Invoke-WebRequest http://169.254.169.254/latest/dynamic/instance-identity/pkcs7).Content)
  3. Recuperare il documento di identità dell'istanza in testo normale dai metadati dell'istanza, convertirlo in un array di byte e aggiungerlo a una variabile denominata $Document. Utilizzare uno dei comandi seguenti a seconda della versione IMDS utilizzata dall'istanza.

    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. Trovare il certificato pubblico DSA per la propria regione in AWS certificati pubblici, ad esempio firme di documenti di identità e aggiungere i contenuti in un nuovo file denominato certificate.pem.

  5. Estrarre il certificato dal file del certificato e archiviarlo in una variabile denominata $Store.

    PS C:\> $Store = [Security.Cryptography.X509Certificates.X509Certificate2Collection]::new([Security.Cryptography.X509Certificates.X509Certificate2]::new((Resolve-Path certificate.pem)))
  6. Verifica la firma.

    PS C:\> $SignatureDocument = [Security.Cryptography.Pkcs.SignedCms]::new()
    PS C:\> $SignatureDocument.Decode($Signature)
    PS C:\> $SignatureDocument.CheckSignature($Store, $true)

    Se la firma è valida, il comando non restituisce alcun output. Se non è possibile verificare la firma, il comando restituisce Exception calling "CheckSignature" with "2" argument(s): "Cannot find the original signer. Se non è possibile verificare la firma, contattare Supporto AWS.

  7. Convalidare il contenuto del documento di identità dell'istanza.

    PS C:\> [Linq.Enumerable]::SequenceEqual($SignatureDocument.ContentInfo.Content, $Document)

    Se il contenuto del documento di identità dell'istanza è valido, il comando restituisce True. Se il documento di identità dell'istanza non può essere convalidato, contatta Supporto AWS.

Prerequisiti

Questa procedura richiede la classe System.Security Microsoft .NET Core. Per aggiungere la classe alla PowerShell sessione, esegui il comando seguente.

PS C:\> Add-Type -AssemblyName System.Security
Nota

Il comando aggiunge la classe solo alla PowerShell sessione corrente. Se avvii una nuova sessione, devi eseguire nuovamente il comando.

Per verificare il documento di identità dell'istanza utilizzando la PKCS7 firma e il AWS certificato pubblico DSA
  1. Collegati all'istanza.

  2. Recuperate la PKCS7 firma dai metadati dell'istanza, convertitela in un array di byte e aggiungetela a una variabile denominata. $Signature Utilizzare uno dei comandi seguenti a seconda della versione IMDS utilizzata dall'istanza.

    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/pkcs7).Content)
    IMDSv1
    PS C:\> $Signature = [Convert]::FromBase64String((Invoke-WebRequest http://169.254.169.254/latest/dynamic/instance-identity/pkcs7).Content)
    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/pkcs7).Content)
  3. Recuperare il documento di identità dell'istanza in testo normale dai metadati dell'istanza, convertirlo in un array di byte e aggiungerlo a una variabile denominata $Document. Utilizzare uno dei comandi seguenti a seconda della versione IMDS utilizzata dall'istanza.

    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)
    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)
  4. Trovare il certificato pubblico DSA per la propria regione in AWS certificati pubblici, ad esempio firme di documenti di identità e aggiungere i contenuti in un nuovo file denominato certificate.pem.

  5. Estrarre il certificato dal file del certificato e archiviarlo in una variabile denominata $Store.

    PS C:\> $Store = [Security.Cryptography.X509Certificates.X509Certificate2Collection]::new([Security.Cryptography.X509Certificates.X509Certificate2]::new((Resolve-Path certificate.pem)))
  6. Verifica la firma.

    PS C:\> $SignatureDocument = [Security.Cryptography.Pkcs.SignedCms]::new()
    PS C:\> $SignatureDocument.Decode($Signature)
    PS C:\> $SignatureDocument.CheckSignature($Store, $true)

    Se la firma è valida, il comando non restituisce alcun output. Se non è possibile verificare la firma, il comando restituisce Exception calling "CheckSignature" with "2" argument(s): "Cannot find the original signer. Se non è possibile verificare la firma, contattare Supporto AWS.

  7. Convalidare il contenuto del documento di identità dell'istanza.

    PS C:\> [Linq.Enumerable]::SequenceEqual($SignatureDocument.ContentInfo.Content, $Document)

    Se il contenuto del documento di identità dell'istanza è valido, il comando restituisce True. Se il documento di identità dell'istanza non può essere convalidato, contatta Supporto AWS.

Opzione 2: Verifica il documento di identità dell'istanza usando la firma con codifica base64

Questo argomento spiega come verificare il documento di identità dell'istanza utilizzando la firma con codifica base64 e il certificato pubblico RSA. AWS

Per convalidare il documento di identità dell'istanza utilizzando la firma con codifica base64 e il certificato pubblico RSA AWS
  1. Collegati all'istanza.

  2. Recuperare la firma con codifica base64 dai metadati dell'istanza, convertirla in un formato binario e aggiungerla a un file denominato signature. Utilizzare uno dei comandi seguenti a seconda della versione IMDS utilizzata dall'istanza.

    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. Recuperare il Documenti di identità dell'istanza in testo normale dai metadati dell'istanza e aggiungerlo a un file denominato document. Utilizzare uno dei comandi seguenti a seconda della versione IMDS utilizzata dall'istanza.

    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. Trovare il certificato pubblico RSA per la propria regione in AWS certificati pubblici, ad esempio firme di documenti di identità e aggiungere i contenuti in un nuovo file denominato certificate.

  5. Estrai la chiave pubblica dal certificato pubblico AWS RSA e salvala in un file denominato. key

    $ openssl x509 -pubkey -noout -in certificate >> key
  6. Utilizzare il comando OpenSSL dgst per verificare il Documenti di identità dell'istanza.

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

    Se la firma è valida, viene visualizzato il messaggio Verification successful.

    Il comando, inoltre, scrive i contenuti del documento di identità dell'istanza in un nuovo file denominato document. Puoi confrontare i contenuti del documento di identità dell'istanza dai metadati dell'istanza con i contenuti di questo file utilizzando i comandi seguenti.

    $ 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

    Se non è possibile verificare la firma, contattare Supporto.

Per convalidare il documento di identità dell'istanza utilizzando la firma con codifica base64 e il certificato pubblico RSA AWS
  1. Collegati all'istanza.

  2. Recuperare la firma con codifica base64 dai metadati dell'istanza, convertirla in un formato binario e aggiungerla a un file denominato signature. Utilizzare uno dei comandi seguenti a seconda della versione IMDS utilizzata dall'istanza.

    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
    $ 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
  3. Recuperare il Documenti di identità dell'istanza in testo normale dai metadati dell'istanza e aggiungerlo a un file denominato document. Utilizzare uno dei comandi seguenti a seconda della versione IMDS utilizzata dall'istanza.

    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
    $ 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
  4. Trovare il certificato pubblico RSA per la propria regione in AWS certificati pubblici, ad esempio firme di documenti di identità e aggiungere i contenuti in un nuovo file denominato certificate.

  5. Estrai la chiave pubblica dal certificato pubblico AWS RSA e salvala in un file denominato. key

    $ openssl x509 -pubkey -noout -in certificate >> key
  6. Utilizzare il comando OpenSSL dgst per verificare il Documenti di identità dell'istanza.

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

    Se la firma è valida, viene visualizzato il messaggio Verification successful.

    Il comando, inoltre, scrive i contenuti del documento di identità dell'istanza in un nuovo file denominato document. Puoi confrontare i contenuti del documento di identità dell'istanza dai metadati dell'istanza con i contenuti di questo file utilizzando i comandi seguenti.

    $ 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

    Se non è possibile verificare la firma, contattare Supporto.

Per convalidare il documento di identità dell'istanza utilizzando la firma con codifica base64 e il certificato pubblico RSA AWS
  1. Collegati all'istanza.

  2. Recuperare la firma con codifica base64 dai metadati dell'istanza, convertirla in un array di byte e aggiungerla alla variabile denominata $Signature. Utilizzare uno dei comandi seguenti a seconda della versione IMDS utilizzata dall'istanza.

    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. Recuperare il documento di identità dell'istanza in testo normale dai metadati dell'istanza, convertirlo in un array di byte e aggiungerlo a una variabile denominata $Document. Utilizzare uno dei comandi seguenti a seconda della versione IMDS utilizzata dall'istanza.

    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. Trovare il certificato pubblico RSA per la propria regione in AWS certificati pubblici, ad esempio firme di documenti di identità e aggiungere i contenuti in un nuovo file denominato certificate.pem.

  5. Verificare il documento di identità dell'istanza.

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

    Se la firma è valida, il comando restituisce True. Se non è possibile verificare la firma, contattare Supporto.

Per convalidare il documento di identità dell'istanza utilizzando la firma con codifica base64 e il certificato pubblico RSA AWS
  1. Collegati all'istanza.

  2. Recuperare la firma con codifica base64 dai metadati dell'istanza, convertirla in un array di byte e aggiungerla alla variabile denominata $Signature. Utilizzare uno dei comandi seguenti a seconda della versione IMDS utilizzata dall'istanza.

    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)
    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)
  3. Recuperare il documento di identità dell'istanza in testo normale dai metadati dell'istanza, convertirlo in un array di byte e aggiungerlo a una variabile denominata $Document. Utilizzare uno dei comandi seguenti a seconda della versione IMDS utilizzata dall'istanza.

    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)
    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)
  4. Trovare il certificato pubblico RSA per la propria regione in AWS certificati pubblici, ad esempio firme di documenti di identità e aggiungere i contenuti in un nuovo file denominato certificate.pem.

  5. Verificare il documento di identità dell'istanza.

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

    Se la firma è valida, il comando restituisce True. Se non è possibile verificare la firma, contattare Supporto.

Opzione 3: Verifica il documento di identità dell'istanza usando la firma RSA-2048

Questo argomento spiega come verificare il documento di identità dell'istanza utilizzando la firma RSA-2048 e il certificato pubblico RSA-2048. AWS

Per verificare il documento di identità dell'istanza utilizzando la firma RSA-2048 e il certificato pubblico RSA-2048 AWS
  1. Collegati all'istanza.

  2. Recuperare la firma RSA-2048 dai metadati dell'istanza e aggiungerla a un file denominato rsa2048, insieme all'intestazione e al piè di pagina richiesti. Utilizzare uno dei comandi seguenti a seconda della versione IMDS utilizzata dall'istanza.

    IMDSv2
    $ echo "-----BEGIN PKCS7-----" >> rsa2048 \ && 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/rsa2048 >> rsa2048 \ && echo "" >> rsa2048 \ && echo "-----END PKCS7-----" >> rsa2048
    IMDSv1
    $ echo "-----BEGIN PKCS7-----" >> rsa2048 \ && curl -s http://169.254.169.254/latest/dynamic/instance-identity/rsa2048 >> rsa2048 \ && echo "" >> rsa2048 \ && echo "-----END PKCS7-----" >> rsa2048
  3. Trovare il certificato pubblico RSA-2048 per la propria regione in AWS certificati pubblici, ad esempio firme di documenti di identità e aggiungere i contenuti in un nuovo file denominato certificate.

  4. Utilizzare il comando OpenSSL smime per verificare la firma. Includere l'opzione -verify per indicare che la firma deve essere verificata e l'opzione -noverify per indicare che il certificato non deve essere verificato.

    $ openssl smime -verify -in rsa2048 -inform PEM -certfile certificate -noverify | tee document

    Se la firma è valida, viene visualizzato il messaggio Verification successful. Se non è possibile verificare la firma, contattare Supporto.

Per verificare il documento di identità dell'istanza utilizzando la firma RSA-2048 e il certificato pubblico RSA-2048 AWS
  1. Collegati all'istanza.

  2. Recuperare la firma RSA-2048 dai metadati dell'istanza e aggiungerla a un file denominato rsa2048, insieme all'intestazione e al piè di pagina richiesti. Utilizzare uno dei comandi seguenti a seconda della versione IMDS utilizzata dall'istanza.

    IMDSv2
    $ echo "-----BEGIN PKCS7-----" >> rsa2048 \ && 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/rsa2048 >> rsa2048 \ && echo "" >> rsa2048 \ && echo "-----END PKCS7-----" >> rsa2048
    IMDSv1
    $ echo "-----BEGIN PKCS7-----" >> rsa2048 \ && curl -s http://169.254.169.254/latest/dynamic/instance-identity/rsa2048 >> rsa2048 \ && echo "" >> rsa2048 \ && echo "-----END PKCS7-----" >> rsa2048
    $ echo "-----BEGIN PKCS7-----" >> rsa2048 \ && 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/rsa2048 >> rsa2048 \ && echo "" >> rsa2048 \ && echo "-----END PKCS7-----" >> rsa2048
  3. Trovare il certificato pubblico RSA-2048 per la propria regione in AWS certificati pubblici, ad esempio firme di documenti di identità e aggiungere i contenuti in un nuovo file denominato certificate.

  4. Utilizzare il comando OpenSSL smime per verificare la firma. Includere l'opzione -verify per indicare che la firma deve essere verificata e l'opzione -noverify per indicare che il certificato non deve essere verificato.

    $ openssl smime -verify -in rsa2048 -inform PEM -certfile certificate -noverify | tee document

    Se la firma è valida, viene visualizzato il messaggio Verification successful. Se non è possibile verificare la firma, contattare Supporto.

Prerequisiti

Questa procedura richiede la classe System.Security Microsoft .NET Core. Per aggiungere la classe alla PowerShell sessione, esegui il comando seguente.

PS C:\> Add-Type -AssemblyName System.Security
Nota

Il comando aggiunge la classe solo alla PowerShell sessione corrente. Se avvii una nuova sessione, devi eseguire nuovamente il comando.

Per verificare il documento di identità dell'istanza utilizzando la firma RSA-2048 e il certificato pubblico RSA-2048 AWS
  1. Collegati all'istanza.

  2. Recuperare la firma RSA-2048 dai metadati dell'istanza, convertirla in un array di byte e aggiungerla a una variabile denominata $Signature. Utilizzare uno dei comandi seguenti a seconda della versione IMDS utilizzata dall'istanza.

    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/rsa2048).Content)
    IMDSv1
    PS C:\> $Signature = [Convert]::FromBase64String((Invoke-WebRequest http://169.254.169.254/latest/dynamic/instance-identity/rsa2048).Content)
  3. Recuperare il documento di identità dell'istanza in testo normale dai metadati dell'istanza, convertirlo in un array di byte e aggiungerlo a una variabile denominata $Document. Utilizzare uno dei comandi seguenti a seconda della versione IMDS utilizzata dall'istanza.

    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. Trovare il certificato pubblico RSA-2048 per la propria regione in AWS certificati pubblici, ad esempio firme di documenti di identità e aggiungere i contenuti in un nuovo file denominato certificate.pem.

  5. Estrarre il certificato dal file del certificato e archiviarlo in una variabile denominata $Store.

    PS C:\> $Store = [Security.Cryptography.X509Certificates.X509Certificate2Collection]::new([Security.Cryptography.X509Certificates.X509Certificate2]::new((Resolve-Path certificate.pem)))
  6. Verifica la firma.

    PS C:\> $SignatureDocument = [Security.Cryptography.Pkcs.SignedCms]::new()
    PS C:\> $SignatureDocument.Decode($Signature)
    PS C:\> $SignatureDocument.CheckSignature($Store, $true)

    Se la firma è valida, il comando non restituisce alcun output. Se non è possibile verificare la firma, il comando restituisce Exception calling "CheckSignature" with "2" argument(s): "Cannot find the original signer. Se non è possibile verificare la firma, contattare Supporto AWS.

  7. Convalidare il contenuto del documento di identità dell'istanza.

    PS C:\> [Linq.Enumerable]::SequenceEqual($SignatureDocument.ContentInfo.Content, $Document)

    Se il contenuto del documento di identità dell'istanza è valido, il comando restituisce True. Se il documento di identità dell'istanza non può essere convalidato, contatta Supporto AWS.

Prerequisiti

Questa procedura richiede la classe System.Security Microsoft .NET Core. Per aggiungere la classe alla PowerShell sessione, esegui il comando seguente.

PS C:\> Add-Type -AssemblyName System.Security
Nota

Il comando aggiunge la classe solo alla PowerShell sessione corrente. Se avvii una nuova sessione, devi eseguire nuovamente il comando.

Per verificare il documento di identità dell'istanza utilizzando la firma RSA-2048 e il certificato pubblico RSA-2048 AWS
  1. Collegati all'istanza.

  2. Recuperare la firma RSA-2048 dai metadati dell'istanza, convertirla in un array di byte e aggiungerla a una variabile denominata $Signature. Utilizzare uno dei comandi seguenti a seconda della versione IMDS utilizzata dall'istanza.

    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/rsa2048).Content)
    IMDSv1
    PS C:\> $Signature = [Convert]::FromBase64String((Invoke-WebRequest http://169.254.169.254/latest/dynamic/instance-identity/rsa2048).Content)
    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/rsa2048).Content)
  3. Recuperare il documento di identità dell'istanza in testo normale dai metadati dell'istanza, convertirlo in un array di byte e aggiungerlo a una variabile denominata $Document. Utilizzare uno dei comandi seguenti a seconda della versione IMDS utilizzata dall'istanza.

    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)
    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)
  4. Trovare il certificato pubblico RSA-2048 per la propria regione in AWS certificati pubblici, ad esempio firme di documenti di identità e aggiungere i contenuti in un nuovo file denominato certificate.pem.

  5. Estrarre il certificato dal file del certificato e archiviarlo in una variabile denominata $Store.

    PS C:\> $Store = [Security.Cryptography.X509Certificates.X509Certificate2Collection]::new([Security.Cryptography.X509Certificates.X509Certificate2]::new((Resolve-Path certificate.pem)))
  6. Verifica la firma.

    PS C:\> $SignatureDocument = [Security.Cryptography.Pkcs.SignedCms]::new()
    PS C:\> $SignatureDocument.Decode($Signature)
    PS C:\> $SignatureDocument.CheckSignature($Store, $true)

    Se la firma è valida, il comando non restituisce alcun output. Se non è possibile verificare la firma, il comando restituisce Exception calling "CheckSignature" with "2" argument(s): "Cannot find the original signer. Se non è possibile verificare la firma, contattare Supporto AWS.

  7. Convalidare il contenuto del documento di identità dell'istanza.

    PS C:\> [Linq.Enumerable]::SequenceEqual($SignatureDocument.ContentInfo.Content, $Document)

    Se il contenuto del documento di identità dell'istanza è valido, il comando restituisce True. Se il documento di identità dell'istanza non può essere convalidato, contatta Supporto AWS.

PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.