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.
Überprüfen Sie das Instance-Identitätsdokument für eine EC2 Amazon-Instance
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-codierter SHA256 Hash des Instanzidentitätsdokuments, der mit einem key pair verschlüsselt wurde. RSA
-
PKCS7Signatur — Dies ist ein SHA1 Hash des Instanzidentitätsdokuments, der mit einem DSA key pair verschlüsselt wird.
-
RSA-2048-Signatur — Dies ist ein SHA256 Hash des Instanzidentitätsdokuments, das mit einem -2048-Schlüsselpaar verschlüsselt wurde. RSA
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 überprüfen, müssen Sie das entsprechende öffentliche Zertifikat verwenden. AWS
Optionen
Option 1: Überprüfen Sie das Identitätsdokument der Instanz anhand der PKCS7 Signatur
In diesem Thema wird erklärt, wie das Identitätsdokument der Instanz anhand der PKCS7 Signatur und des AWS DSA öffentlichen Zertifikats verifiziert wird.
Um das Identitätsdokument der Instanz anhand der PKCS7 Signatur und des AWS DSA öffentlichen Zertifikats zu verifizieren
-
Stellen Sie eine Verbindung zur Instance her.
-
Rufen Sie die PKCS7 Signatur aus den Instanz-Metadaten ab und fügen Sie sie
pkcs7
zusammen mit der erforderlichen Kopf- und Fußzeile einer neuen Datei hinzu. Verwenden Sie je nach der von der Instanz verwendeten IMDS Version einen der folgenden Befehle. -
Suchen Sie das DSAöffentliche Zertifikat für Ihre Region unter AWS öffentliche Zertifikate, zum Beispiel Signaturen von Ausweisdokumenten und fügen Sie den Inhalt einer neuen Datei mit dem Namen hinzu
certificate
. -
Verwenden Sie den Befehl Open SSL smime, um die Signatur zu überprüfen. Fügen Sie die Option
-verify
ein, 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 successful
angezeigt.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 AWS Support.
Voraussetzungen
Für dieses Verfahren ist System.Security
Microsoft erforderlich. NETKernklasse. Führen Sie den folgenden Befehl aus, um die Klasse zu Ihrer PowerShell Sitzung hinzuzufügen.
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.
Um das Identitätsdokument der Instanz anhand der PKCS7 Signatur und des AWS DSA öffentlichen Zertifikats zu überprüfen
-
Stellen Sie eine Verbindung zur Instance her.
-
Rufen Sie die PKCS7 Signatur aus den Instanz-Metadaten ab, konvertieren Sie sie in ein Byte-Array und fügen Sie sie einer Variablen mit dem Namen hinzu
$Signature
. Verwenden Sie je nach der von der Instanz 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
$Document
hinzu. Verwenden Sie je nach der von der Instanz verwendeten IMDS Version einen der folgenden Befehle. -
Suchen Sie das DSAöffentliche Zertifikat für Ihre Region unter AWS öffentliche Zertifikate, zum Beispiel Signaturen von Ausweisdokumenten und fügen Sie den Inhalt einer neuen Datei mit dem Namen hinzu
certificate.pem
. -
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
True
zurück. Wenn das Identitätsdokument der Instanz nicht validiert werden kann, wenden Sie sich an AWS Support.
Option 2: Überprüfen Sie das Identitätsdokument der Instanz mithilfe der Base64-codierten Signatur
In diesem Thema wird erklärt, wie das Instanzidentitätsdokument mithilfe der Base64-codierten Signatur und des öffentlichen Zertifikats verifiziert wird. AWS RSA
Um das Identitätsdokument der Instanz mithilfe der Base64-codierten Signatur und des öffentlichen Zertifikats zu validieren AWS RSA
-
Stellen Sie eine Verbindung zur 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
signature
hinzu. Verwenden Sie je nach der von der Instanz 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
document
hinzu. Verwenden Sie je nach der von der Instanz verwendeten IMDS Version einen der folgenden Befehle. -
Suchen Sie das RSAöffentliche Zertifikat für Ihre Region unter AWS öffentliche Zertifikate, zum Beispiel Signaturen von Ausweisdokumenten und fügen Sie den Inhalt einer neuen Datei mit dem Namen hinzu
certificate
. -
Extrahieren Sie den öffentlichen Schlüssel aus dem AWS RSA öffentlichen Zertifikat und speichern Sie ihn in einer Datei mit dem Namen.
key
$
openssl x509 -pubkey -noout -incertificate
>>key
-
Verwenden Sie den Befehl Open SSL dgst, um das Identitätsdokument der Instanz zu überprüfen.
$
openssl dgst -sha256 -verifykey
-signaturesignature
document
Wenn die Signatur gültig ist, wird die Meldung
Verification successful
angezeigt.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 AWS Support.
Um das Identitätsdokument der Instanz mithilfe der Base64-codierten Signatur und des öffentlichen Zertifikats zu validieren AWS RSA
-
Stellen Sie eine Verbindung zur 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
$Signature
hinzu. Verwenden Sie je nach der von der Instanz 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
$Document
hinzu. Verwenden Sie je nach der von der Instanz verwendeten IMDS Version einen der folgenden Befehle. -
Suchen Sie das RSAöffentliche Zertifikat für Ihre Region unter AWS öffentliche Zertifikate, zum Beispiel Signaturen von Ausweisdokumenten und fügen Sie den Inhalt einer neuen Datei mit dem Namen hinzu
certificate.pem
. -
Ü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
True
zurück. Wenn die Signatur nicht verifiziert werden kann, wenden Sie sich an AWS Support.
Option 3: Überprüfen Sie das Identitätsdokument der Instanz mithilfe der RSA Signatur -2048
In diesem Thema wird erklärt, wie das Instanzidentitätsdokument mithilfe der Signatur -2048 und des RSA öffentlichen Zertifikats -2048 verifiziert wird AWS RSA.
Um das Identitätsdokument der Instanz mithilfe der Signatur -2048 und des öffentlichen Zertifikats RSA -2048 zu verifizieren AWS RSA
-
Stellen Sie eine Verbindung zur Instance her.
-
Rufen Sie die Signatur RSA -2048 aus den Instanz-Metadaten ab und fügen Sie sie einer Datei hinzu, die mit der erforderlichen Kopf- und Fußzeile benannt ist
rsa2048
. Verwenden Sie je nach der von der Instanz verwendeten IMDS Version einen der folgenden Befehle. -
Suchen Sie das öffentliche Zertifikat RSA-2048 für Ihre Region unter AWS öffentliche Zertifikate, zum Beispiel Signaturen von Ausweisdokumenten und fügen Sie den Inhalt einer neuen Datei mit dem Namen hinzu.
certificate
-
Verwenden Sie den Befehl Open SSL smime, um die Signatur zu überprüfen. Fügen Sie die Option
-verify
ein, 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 successful
angezeigt. Wenn die Signatur nicht verifiziert werden kann, wenden Sie sich an AWS Support.
Voraussetzungen
Für dieses Verfahren ist System.Security
Microsoft erforderlich. NETKernklasse. Führen Sie den folgenden Befehl aus, um die Klasse zu Ihrer PowerShell Sitzung hinzuzufügen.
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.
Um das Identitätsdokument der Instanz mithilfe der Signatur RSA -2048 und des öffentlichen Zertifikats -2048 zu verifizieren AWS RSA
-
Stellen Sie eine Verbindung zur Instance her.
-
Rufen Sie die Signatur RSA -2048 aus den Instanz-Metadaten ab, konvertieren Sie sie in ein Byte-Array und fügen Sie sie einer Variablen mit dem Namen hinzu.
$Signature
Verwenden Sie je nach der von der Instanz 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
$Document
hinzu. Verwenden Sie je nach der von der Instanz verwendeten IMDS Version einen der folgenden Befehle. -
Suchen Sie das öffentliche Zertifikat RSA-2048 für Ihre Region unter AWS öffentliche Zertifikate, zum Beispiel Signaturen von Ausweisdokumenten und fügen Sie den Inhalt einer neuen Datei mit dem Namen hinzu.
certificate.pem
-
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
True
zurück. Wenn das Identitätsdokument der Instanz nicht validiert werden kann, wenden Sie sich an. AWS Support