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.
Instance-Identitätsdokument für eine Amazon-EC2-Instance verifizieren
Wenn Sie beabsichtigen, den Inhalt des Instance-Identitätsdokument für einen wichtigen Zweck zu verwenden, sollten Sie den Inhalt und die Authentizität überprüfen, bevor Sie es verwenden.
Das Klartext-Instance-Identitätsdokument wird von drei gehashten und verschlüsselten Signaturen ergänzt. Sie können diese Signaturen verwenden, um die Herkunft und Authentizität des Instance-Identitätsdokument und der darin enthaltenen Informationen zu überprüfen. Die folgenden Signaturen werden bereitgestellt:
-
Base64-kodierte Signatur—Dies ist ein Base64-kodierter SHA256-Hash des Instance-Identitätsdokument, der mit einem RSA-Schlüsselpaar verschlüsselt wird.
-
PKCS7-Signatur—Dies ist ein SHA1-Hash des Instance-Identitätsdokument, der mit einem DSA-Schlüsselpaar verschlüsselt wird.
-
RSA-2048-Signatur—Dies ist ein SHA256-Hash des Instance-Identitätsdokument, der mit einem RSA-2048-Schlüsselpaar verschlüsselt wird.
Jede Signatur ist an einem anderen Endpunkt in den Metadaten der Instance verfügbar. Sie können je nach Ihren Hashing- und Verschlüsselungsanforderungen eine beliebige dieser Signaturen verwenden. Um die Signaturen zu verifizieren, müssen Sie das entsprechende öffentliche AWS Zertifikat verwenden.
Optionen
Option 1: Verwenden der PKCS7-Signatur zur Verifizierung des Instance-Identitätsdokuments
In diesem Thema wird erläutert, wie Sie das Instance-Identitätsdokument mit der PKCS7-Signatur und dem öffentlichen AWS-DSA-Zertifikat validieren.
Instance-Identitätsdokument mit der PKCS7-Signatur und dem öffentlichen AWS-DSA-Zertifikat verifizieren
-
Stellen Sie eine Verbindung mit der Instance her.
-
Rufen Sie die PKCS7-Signatur aus den Metadaten der Instance ab und fügen Sie sie zu einer Datei namens
pkcs7mit benötigter Kopf- und Fußzeile hinzu. Verwenden Sie je nach der von der Instance verwendeten IMDS-Version einen der folgenden Befehle. -
Suchen Sie das öffentliche DSA-Zertifikat für Ihre Region in Öffentliche Zertifikate von AWS für Instance-Identitätsdokument-Signaturen und fügen Sie den Inhalt in eine neue Datei mit dem Namen
certificateein. -
Verwenden Sie den Befehl OpenSSL smime, um die Signatur zu überprüfen. Fügen Sie die Option
-verifyein, um anzugeben, dass die Signatur verifiziert werden muss, und die Option-noverify, um anzugeben, dass das Zertifikat nicht verifiziert werden muss.$openssl smime -verify -inpkcs7-inform PEM -certfilecertificate-noverify | tee documentWenn die Signatur gültig ist, wird die Meldung
Verification successfulangezeigt.Der Befehl schreibt außerdem den Inhalt des Instance-Identitätsdokuments in eine neue Datei namens
document. Mit den folgenden Befehlen können Sie den Inhalt des Instance-Identitätsdokuments aus den Instance-Metadaten mit dem Inhalt dieser Datei vergleichen.$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 -sha256Wenn die Signatur nicht verifiziert werden kann, wenden Sie sich an Support.
Voraussetzungen
Dieses Verfahren erfordert die System.Security Microsoft .NET Core-Klasse. Um die Klasse zu Ihrer PowerShell-Sitzung hinzuzufügen, führen Sie den folgenden Befehl aus.
PS C:\>Add-Type -AssemblyName System.Security
Anmerkung
Der Befehl fügt die Klasse nur der aktuellen PowerShell-Sitzung hinzu. Wenn Sie eine neue Sitzung starten, müssen Sie den Befehl erneut ausführen.
Instance-Identitätsdokument mit der PKCS7-Signatur und dem öffentlichen AWS-DSA-Zertifikat verifizieren
-
Stellen Sie eine Verbindung mit der Instance her.
-
Rufen Sie die PKCS7-Signatur aus den Metadaten der Instance ab, konvertieren Sie sie in ein Byte-Array und fügen Sie sie an eine Variable namens a
$Signature. Verwenden Sie je nach der von der Instance verwendeten IMDS-Version einen der folgenden Befehle. -
Rufen Sie das Klartext-Identitätsdokument der Instance aus den Instance-Metadaten ab, konvertieren Sie es in ein Byte-Array und fügen Sie es zu einer Variablen namens hinz
$Document. Verwenden Sie je nach der von der Instance verwendeten IMDS-Version einen der folgenden Befehle. -
Suchen Sie das öffentliche DSA-Zertifikat für Ihre Region in Öffentliche Zertifikate von AWS für Instance-Identitätsdokument-Signaturen und fügen Sie den Inhalt in eine neue Datei mit dem Namen
certificate.pemein. -
Extrahieren Sie das Zertifikat aus der Zertifikatsdatei und speichern Sie es in einer Variablen mit dem Namen
$Store.PS C:\>$Store= [Security.Cryptography.X509Certificates.X509Certificate2Collection]::new([Security.Cryptography.X509Certificates.X509Certificate2]::new((Resolve-Pathcertificate.pem))) -
Überprüfen Sie die Signatur.
PS C:\>$SignatureDocument= [Security.Cryptography.Pkcs.SignedCms]::new()PS C:\>$SignatureDocument.Decode($Signature)PS C:\>$SignatureDocument.CheckSignature($Store, $true)Wenn die Signatur gültig ist, gibt der Befehl keine Ausgabe zurück. Wenn die Signatur nicht verifiziert werden kann, gibt der Befehl zurüc
Exception calling "CheckSignature" with "2" argument(s): "Cannot find the original signer. Wenn Ihre Signatur nicht verifiziert werden kann, wenden Sie sich an AWS -Support. -
Validieren Sie den Inhalt des Instance-Identitätsdokuments.
PS C:\>[Linq.Enumerable]::SequenceEqual($SignatureDocument.ContentInfo.Content,$Document)Wenn der Inhalt des Identitätsdokuments der Instance gültig ist, gibt der Befehl zurüc
True. Wenn das Instance-Identitätsdokument nicht validiert werden kann, wenden Sie sich an AWS -Support.
Option 2: Verwendung der Base64-kodierten Signatur zur Verifizierung des Instance-Identitätsdokuments
In diesem Thema wird erläutert, wie Sie das Instance-Identitätsdokument mit der base64-codierten Signatur und dem öffentlich AWS-RSA-Zertifikat verifizieren.
Instance-Identitätsdokument mit der base64-codierten Signatur und dem öffentlichen AWS-RSA-Zertifikat validieren
-
Stellen Sie eine Verbindung mit der Instance her.
-
Rufen Sie die base64-kodierte Signatur aus den Metadaten der Instance ab, konvertieren Sie sie in ein Binärformat und fügen Sie sie zu einer Datei namens hinz
signature. Verwenden Sie je nach der von der Instance verwendeten IMDS-Version einen der folgenden Befehle. -
Rufen Sie die Klartext-Instance-Identitätsdokument aus den Metadaten der Instance ab und fügen Sie sie zu einer Datei mit dem Namen hinz
document. Verwenden Sie je nach der von der Instance verwendeten IMDS-Version einen der folgenden Befehle. -
Suchen Sie das öffentliche RSA-Zertifikat für Ihre Region in Öffentliche Zertifikate von AWS für Instance-Identitätsdokument-Signaturen und fügen Sie den Inhalt in eine neue Datei mit dem Namen
certificateein. -
Extrahieren Sie den öffentlichen Schlüssel aus dem öffentlichen AWS-RSA-Zertifikat und speichern Sie ihn in einer Datei namens
key.$openssl x509 -pubkey -noout -incertificate>>key -
Verwenden Sie den Befehl OpenSSL dgst, um die Instance-Identitätsdokument zu überprüfen.
$openssl dgst -sha256 -verifykey-signaturesignaturedocumentWenn die Signatur gültig ist, wird die Meldung
Verification successfulangezeigt.Der Befehl schreibt außerdem den Inhalt des Instance-Identitätsdokuments in eine neue Datei namens
document. Mit den folgenden Befehlen können Sie den Inhalt des Instance-Identitätsdokuments aus den Instance-Metadaten mit dem Inhalt dieser Datei vergleichen.$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 -sha256Wenn die Signatur nicht verifiziert werden kann, wenden Sie sich an Support.
Instance-Identitätsdokument mit der base64-codierten Signatur und dem öffentlichen AWS-RSA-Zertifikat validieren
-
Stellen Sie eine Verbindung mit der Instance her.
-
Rufen Sie die base64-kodierte Signatur aus den Metadaten der Instance ab, konvertieren Sie sie in ein Byte-Array und fügen Sie sie der Variablen mit dem Namen hinz
$Signature. Verwenden Sie je nach der von der Instance verwendeten IMDS-Version einen der folgenden Befehle. -
Rufen Sie das Klartext-Identitätsdokument der Instance aus den Instance-Metadaten ab, konvertieren Sie es in ein Byte-Array und fügen Sie es zu einer Variablen namens hinz
$Document. Verwenden Sie je nach der von der Instance verwendeten IMDS-Version einen der folgenden Befehle. -
Suchen Sie das öffentliche RSA-Zertifikat für Ihre Region in Öffentliche Zertifikate von AWS für Instance-Identitätsdokument-Signaturen und fügen Sie den Inhalt in eine neue Datei mit dem Namen
certificate.pemein. -
Überprüfen Sie das Instance-Identitätsdokument.
PS C:\>[Security.Cryptography.X509Certificates.X509Certificate2]::new((Resolve-Pathcertificate.pem)).PublicKey.Key.VerifyData($Document, 'SHA256',$Signature)Wenn die Signatur gültig ist, gibt der Befehl zurüc
True. Wenn die Signatur nicht verifiziert werden kann, wenden Sie sich an Support.
Option 3: Verwenden der RSA-2048-Signatur zur Verifizierung des Instance-Identitätsdokuments
In diesem Thema wird erläutert, wie Sie das Instance-Identitätsdokument mit der RSA-2048-Signatur und dem öffentlichen AWS-RSA-2048-Zertifikat verifizieren.
Instance-Identitätsdokument mit der RSA-2048-Signatur und dem öffentlichen AWS-RSA-2048-Zertifikat verifizieren
-
Stellen Sie eine Verbindung mit der Instance her.
-
Rufen Sie die RSA-2048-Signatur aus den Metadaten der Instance ab und fügen Sie sie zusammen mit der notwendigen Kopf- und Fußzeile zu einer Datei namens
rsa2048hinzu. Verwenden Sie je nach der von der Instance verwendeten IMDS-Version einen der folgenden Befehle. -
Suchen Sie das öffentliche RSA-2048-Zertifikat für Ihre Region in Öffentliche Zertifikate von AWS für Instance-Identitätsdokument-Signaturen und fügen Sie den Inhalt in eine neue Datei mit dem Namen
certificateein. -
Verwenden Sie den Befehl OpenSSL smime, um die Signatur zu überprüfen. Fügen Sie die Option
-verifyein, um anzugeben, dass die Signatur verifiziert werden muss, und die Option-noverify, um anzugeben, dass das Zertifikat nicht verifiziert werden muss.$openssl smime -verify -inrsa2048-inform PEM -certfilecertificate-noverify | tee documentWenn die Signatur gültig ist, wird die Meldung
Verification successfulangezeigt. Wenn die Signatur nicht verifiziert werden kann, wenden Sie sich an Support.
Voraussetzungen
Dieses Verfahren erfordert die System.Security Microsoft .NET Core-Klasse. Um die Klasse zu Ihrer PowerShell-Sitzung hinzuzufügen, führen Sie den folgenden Befehl aus.
PS C:\>Add-Type -AssemblyName System.Security
Anmerkung
Der Befehl fügt die Klasse nur der aktuellen PowerShell-Sitzung hinzu. Wenn Sie eine neue Sitzung starten, müssen Sie den Befehl erneut ausführen.
Instance-Identitätsdokument mit der RSA-2048-Signatur und dem öffentlichen AWS-RSA-2048-Zertifikat verifizieren
-
Stellen Sie eine Verbindung mit der Instance her.
-
Rufen Sie die RSA-2048-Signatur aus den Metadaten der Instance ab, konvertieren Sie sie in ein Byte-Array und fügen Sie sie an eine Variable namens a
$Signature. Verwenden Sie je nach der von der Instance verwendeten IMDS-Version einen der folgenden Befehle. -
Rufen Sie das Klartext-Identitätsdokument der Instance aus den Instance-Metadaten ab, konvertieren Sie es in ein Byte-Array und fügen Sie es zu einer Variablen namens hinz
$Document. Verwenden Sie je nach der von der Instance verwendeten IMDS-Version einen der folgenden Befehle. -
Suchen Sie das öffentliche RSA-2048-Zertifikat für Ihre Region in Öffentliche Zertifikate von AWS für Instance-Identitätsdokument-Signaturen und fügen Sie den Inhalt in eine neue Datei mit dem Namen
certificate.pemein. -
Extrahieren Sie das Zertifikat aus der Zertifikatsdatei und speichern Sie es in einer Variablen mit dem Namen
$Store.PS C:\>$Store= [Security.Cryptography.X509Certificates.X509Certificate2Collection]::new([Security.Cryptography.X509Certificates.X509Certificate2]::new((Resolve-Pathcertificate.pem))) -
Überprüfen Sie die Signatur.
PS C:\>$SignatureDocument= [Security.Cryptography.Pkcs.SignedCms]::new()PS C:\>$SignatureDocument.Decode($Signature)PS C:\>$SignatureDocument.CheckSignature($Store, $true)Wenn die Signatur gültig ist, gibt der Befehl keine Ausgabe zurück. Wenn die Signatur nicht verifiziert werden kann, gibt der Befehl zurüc
Exception calling "CheckSignature" with "2" argument(s): "Cannot find the original signer. Wenn Ihre Signatur nicht verifiziert werden kann, wenden Sie sich an AWS -Support. -
Validieren Sie den Inhalt des Instance-Identitätsdokuments.
PS C:\>[Linq.Enumerable]::SequenceEqual($SignatureDocument.ContentInfo.Content,$Document)Wenn der Inhalt des Identitätsdokuments der Instance gültig ist, gibt der Befehl zurüc
True. Wenn das Instance-Identitätsdokument nicht validiert werden kann, wenden Sie sich an AWS -Support.