Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Jika Anda bermaksud menggunakan konten dokumen identitas instans untuk tujuan penting, Anda harus memverifikasi konten dan keaslian sebelum menggunakannya.
Dokumen identitas instans plaintext disertai dengan tiga tanda tangan yang di-hash dan dienkripsi. Anda dapat menggunakan tanda tangan ini untuk memverifikasi asal dan keaslian dokumen identitas instans serta informasi yang disertakan. Tanda tangan berikut disediakan:
-
Base64-Encoded Signature—Ini adalah SHA256 hash berenkode base64 dari dokumen identitas instance yang dienkripsi menggunakan key pair RSA.
-
PKCS7 Signature—ini adalah SHA1 hash dari dokumen identitas instance yang dienkripsi menggunakan key pair DSA.
-
Tanda tangan RSA-2048 — Ini adalah SHA256 hash dari dokumen identitas instance yang dienkripsi menggunakan key pair RSA-2048.
Setiap tanda tangan tersedia di titik akhir yang berbeda dalam metadata instans. Anda dapat menggunakan salah satu dari tanda tangan ini, tergantung persyaratan hashing dan enkripsi Anda. Untuk memverifikasi tanda tangan, Anda harus menggunakan sertifikat AWS publik yang sesuai.
Opsi
Opsi 1: Verifikasi dokumen identitas contoh menggunakan PKCS7 tanda tangan
Topik ini menjelaskan cara memverifikasi dokumen identitas instance menggunakan PKCS7 tanda tangan dan sertifikat publik AWS DSA.
Untuk memverifikasi dokumen identitas instance menggunakan PKCS7 tanda tangan dan sertifikat publik AWS DSA
-
Hubungkan dengan instans.
-
Ambil PKCS7 tanda tangan dari metadata instance dan tambahkan ke file baru bernama
pkcs7
bersama dengan header dan footer yang diperlukan. Gunakan salah satu perintah berikut, tergantung pada versi IMDS yang digunakan oleh instans. -
Temukan sertifikat publik DSA untuk Wilayah Anda di AWS sertifikat publik misalnya tanda tangan dokumen identitas dan tambahkan konten ke file baru yang bernama
certificate
. -
Gunakan perintah OpenSSL smime untuk memverifikasi tanda tangan. Masukkan opsi
-verify
untuk menunjukkan bahwa tanda tangan perlu diverifikasi, dan opsi-noverify
untuk menunjukkan bahwa sertifikat tidak perlu diverifikasi.$
openssl smime -verify -inpkcs7
-inform PEM -certfilecertificate
-noverify | tee documentJika tanda tangan valid, pesan
Verification successful
muncul.Perintah tersebut juga menulis konten dokumen identitas instans ke file baru bernama
document
. Anda dapat membandingkan konten dokumen identitas instans dari metadata instans dengan konten file ini menggunakan perintah berikut.$
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 -sha256Jika tanda tangan tidak dapat diverifikasi, kontak Dukungan.
Prasyarat
Prosedur ini membutuhkan kelas System.Security
Microsoft.NET Core. Untuk menambahkan kelas ke PowerShell sesi Anda, jalankan perintah berikut.
PS C:\>
Add-Type -AssemblyName System.Security
catatan
Perintah menambahkan kelas ke PowerShell sesi saat ini saja. Jika Anda memulai sesi baru, Anda harus menjalankan perintah lagi.
Untuk memverifikasi dokumen identitas instance menggunakan PKCS7 tanda tangan dan sertifikat publik AWS DSA
-
Hubungkan dengan instans.
-
Ambil PKCS7 tanda tangan dari metadata instance, mengubahnya menjadi array byte, dan menambahkannya ke variabel bernama.
$Signature
Gunakan salah satu perintah berikut, tergantung pada versi IMDS yang digunakan oleh instans. -
Ambil dokumen identitas instans plaintext dari metadata instans, ubah menjadi array byte, dan tambahkan ke variabel bernama
$Document
. Gunakan salah satu perintah berikut, tergantung pada versi IMDS yang digunakan oleh instans. -
Temukan sertifikat publik DSA untuk Wilayah Anda di AWS sertifikat publik misalnya tanda tangan dokumen identitas dan tambahkan konten ke file baru yang bernama
certificate.pem
. -
Ekstrak sertifikat dari file sertifikat dan simpan dalam variabel bernama
$Store
.PS C:\>
$Store
= [Security.Cryptography.X509Certificates.X509Certificate2Collection]::new([Security.Cryptography.X509Certificates.X509Certificate2]::new((Resolve-Pathcertificate.pem
))) -
Verifikasi tanda tangan.
PS C:\>
$SignatureDocument
= [Security.Cryptography.Pkcs.SignedCms]::new()PS C:\>
$SignatureDocument
.Decode($Signature
)PS C:\>
$SignatureDocument
.CheckSignature($Store
, $true)Jika tanda tangan valid, perintah tidak mengembalikan keluaran. Jika tanda tangan tidak dapat diverifikasi, perintah menampilkan
Exception calling "CheckSignature" with "2" argument(s): "Cannot find the original signer
. Jika tanda tangan tidak dapat diverifikasi, hubungi AWS Dukungan. -
Validasi konten dokumen identitas instans.
PS C:\>
[Linq.Enumerable]::SequenceEqual($SignatureDocument
.ContentInfo.Content,$Document
)Jika konten dokumen identitas instans valid, perintah mengembalikan
True
. Jika dokumen identitas instance tidak dapat divalidasi, hubungi AWS Dukungan.
Opsi 2: Verifikasi dokumen identitas instance menggunakan tanda tangan yang disandikan base64
Topik ini menjelaskan cara memverifikasi dokumen identitas instance menggunakan tanda tangan berenkode base64 dan sertifikat publik RSA AWS .
Untuk memvalidasi dokumen identitas instance menggunakan tanda tangan berenkode base64 dan sertifikat publik RSA AWS
-
Hubungkan dengan instans.
-
Ambil tanda tangan berenkode base64 dari metadata instans, konversikan ke biner, dan tambahkan tanda tangan tersebut ke file bernama
signature
. Gunakan salah satu perintah berikut, tergantung pada versi IMDS yang digunakan oleh instans. -
Ambil dokumen identitas instans plaintext dari metadata instans dan tambahkan ke file bernama
document
. Gunakan salah satu perintah berikut, tergantung pada versi IMDS yang digunakan oleh instans. -
Tambahkan sertifikat publik RSA untuk Wilayah Anda di AWS sertifikat publik misalnya tanda tangan dokumen identitas dan tambahkan konten ke file baru yang bernama
certificate
. -
Ekstrak kunci publik dari sertifikat publik AWS RSA dan simpan ke file bernama
key
.$
openssl x509 -pubkey -noout -incertificate
>>key
-
Gunakan perintah OpenSSL dgst untuk memverifikasi dokumen identitas instans.
$
openssl dgst -sha256 -verifykey
-signaturesignature
document
Jika tanda tangannya valid, file
Verification successful
pesan muncul.Perintah tersebut juga menulis konten dokumen identitas instans ke file baru bernama
document
. Anda dapat membandingkan konten dokumen identitas instans dari metadata instans dengan konten file ini menggunakan perintah berikut.$
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 -sha256Jika tanda tangan tidak dapat diverifikasi, kontak Dukungan.
Untuk memvalidasi dokumen identitas instance menggunakan tanda tangan berenkode base64 dan sertifikat publik RSA AWS
-
Hubungkan dengan instans.
-
Ambil tanda tangan berenkode base64 dari metadata instans, konversikan ke array bita, dan tambahkan tanda tangan tersebut ke variabel bernama
$Signature
. Gunakan salah satu perintah berikut, tergantung pada versi IMDS yang digunakan oleh instans. -
Ambil dokumen identitas instans plaintext dari metadata instans, ubah menjadi array byte, dan tambahkan ke variabel bernama
$Document
. Gunakan salah satu perintah berikut, tergantung pada versi IMDS yang digunakan oleh instans. -
Tambahkan sertifikat publik RSA untuk Wilayah Anda di AWS sertifikat publik misalnya tanda tangan dokumen identitas dan tambahkan konten ke file baru yang bernama
certificate.pem
. -
Verifikasi dokumen identitas instans.
PS C:\>
[Security.Cryptography.X509Certificates.X509Certificate2]::new((Resolve-Pathcertificate.pem
)).PublicKey.Key.VerifyData($Document
, 'SHA256',$Signature
)Jika tanda tangan valid, perintah mengembalikan
True
. Jika tanda tangan tidak dapat diverifikasi, kontak Dukungan.
Opsi 3: Verifikasi dokumen identitas instance menggunakan tanda tangan RSA-2048
Topik ini menjelaskan cara memverifikasi dokumen identitas instance menggunakan tanda tangan RSA-2048 dan sertifikat publik RSA-2048. AWS
Untuk memverifikasi dokumen identitas instance menggunakan tanda tangan RSA-2048 dan sertifikat publik RSA-2048 AWS
-
Hubungkan dengan instans.
-
Ambil tanda tangan RSA-2048 dari metadata instans dan tambahkan ke file bernama
rsa2048
beserta header dan footer yang diperlukan. Gunakan salah satu perintah berikut, tergantung pada versi IMDS yang digunakan oleh instans. -
Tambahkan sertifikat publik RSA-2048 untuk Wilayah Anda di AWS sertifikat publik misalnya tanda tangan dokumen identitas dan tambahkan konten ke file baru yang bernama
certificate
. -
Gunakan perintah OpenSSL smime untuk memverifikasi tanda tangan. Masukkan opsi
-verify
untuk menunjukkan bahwa tanda tangan perlu diverifikasi, dan opsi-noverify
untuk menunjukkan bahwa sertifikat tidak perlu diverifikasi.$
openssl smime -verify -inrsa2048
-inform PEM -certfilecertificate
-noverify | tee documentJika tanda tangan valid, pesan
Verification successful
muncul. Jika tanda tangan tidak dapat diverifikasi, kontak Dukungan.
Prasyarat
Prosedur ini membutuhkan kelas System.Security
Microsoft.NET Core. Untuk menambahkan kelas ke PowerShell sesi Anda, jalankan perintah berikut.
PS C:\>
Add-Type -AssemblyName System.Security
catatan
Perintah menambahkan kelas ke PowerShell sesi saat ini saja. Jika Anda memulai sesi baru, Anda harus menjalankan perintah lagi.
Untuk memverifikasi dokumen identitas instance menggunakan tanda tangan RSA-2048 dan sertifikat publik RSA-2048 AWS
-
Hubungkan dengan instans.
-
Ambil tanda tangan RSA-2048 dari metadata instans, ubah ke byte array, dan tambahkan ke variabel bernama
$Signature
. Gunakan salah satu perintah berikut, tergantung pada versi IMDS yang digunakan oleh instans. -
Ambil dokumen identitas instans plaintext dari metadata instans, ubah menjadi array byte, dan tambahkan ke variabel bernama
$Document
. Gunakan salah satu perintah berikut, tergantung pada versi IMDS yang digunakan oleh instans. -
Tambahkan sertifikat publik RSA-2048 untuk Wilayah Anda di AWS sertifikat publik misalnya tanda tangan dokumen identitas dan tambahkan konten ke file baru yang bernama
certificate.pem
. -
Ekstrak sertifikat dari file sertifikat dan simpan dalam variabel bernama
$Store
.PS C:\>
$Store
= [Security.Cryptography.X509Certificates.X509Certificate2Collection]::new([Security.Cryptography.X509Certificates.X509Certificate2]::new((Resolve-Pathcertificate.pem
))) -
Verifikasi tanda tangan.
PS C:\>
$SignatureDocument
= [Security.Cryptography.Pkcs.SignedCms]::new()PS C:\>
$SignatureDocument
.Decode($Signature
)PS C:\>
$SignatureDocument
.CheckSignature($Store
, $true)Jika tanda tangan valid, perintah tidak mengembalikan keluaran. Jika tanda tangan tidak dapat diverifikasi, perintah menampilkan
Exception calling "CheckSignature" with "2" argument(s): "Cannot find the original signer
. Jika tanda tangan tidak dapat diverifikasi, hubungi AWS Dukungan. -
Validasi konten dokumen identitas instans.
PS C:\>
[Linq.Enumerable]::SequenceEqual($SignatureDocument
.ContentInfo.Content,$Document
)Jika konten dokumen identitas instans valid, perintah mengembalikan
True
. Jika dokumen identitas instance tidak dapat divalidasi, hubungi AWS Dukungan.