Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Verifikasi dokumen identitas instans untuk instans Amazon EC2
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 Tanda tangan—Ini adalah hash SHA256 yang dikodekan base64 dari dokumen identitas instance yang dienkripsi menggunakan key pair RSA.
-
Tanda tangan PKCS7—Ini adalah hash SHA1 dari dokumen identitas instans yang dienkripsi menggunakan pasangan kunci DSA.
-
RSA-2048 Signature—ini adalah hash SHA256 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 instance menggunakan tanda tangan PKCS7
Topik ini menjelaskan cara memverifikasi dokumen identitas instance menggunakan tanda tangan PKCS7 dan sertifikat publik AWS DSA.
Untuk memverifikasi dokumen identitas instans menggunakan tanda tangan PKCS7 dan sertifikat publik DSA AWS
-
Hubungkan dengan instans.
-
Ambil tanda tangan PKCS7 dari metadata instans dan tambahkan ke file baru bernama
pkcs7beserta 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
-verifyuntuk menunjukkan bahwa tanda tangan perlu diverifikasi, dan opsi-noverifyuntuk menunjukkan bahwa sertifikat tidak perlu diverifikasi.$openssl smime -verify -inpkcs7-inform PEM -certfilecertificate-noverify | tee documentJika tanda tangan valid, pesan
Verification successfulmuncul.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 instans menggunakan tanda tangan PKCS7 dan sertifikat publik DSA AWS
-
Hubungkan dengan instans.
-
Ambil tanda tangan PKCS7 dari metadata instans, konversi 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. -
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-signaturesignaturedocumentJika tanda tangannya valid, file
Verification successfulpesan 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 contoh menggunakan RSA-2048 tanda tangan
Topik ini menjelaskan cara memverifikasi dokumen identitas instance menggunakan RSA-2048 tanda tangan dan sertifikat AWS RSA-2048 publik.
Untuk memverifikasi dokumen identitas instance menggunakan RSA-2048 tanda tangan dan sertifikat AWS RSA-2048 publik
-
Hubungkan dengan instans.
-
Ambil RSA-2048 tanda tangan dari metadata instance dan tambahkan ke file bernama
rsa2048sepanjang header dan footer yang diperlukan. Gunakan salah satu perintah berikut, tergantung pada versi IMDS yang digunakan oleh instans. -
Temukan sertifikat RSA-2048publik untuk Wilayah Anda AWS sertifikat publik misalnya tanda tangan dokumen identitas dan tambahkan konten ke file baru bernama
certificate. -
Gunakan perintah OpenSSL smime untuk memverifikasi tanda tangan. Masukkan opsi
-verifyuntuk menunjukkan bahwa tanda tangan perlu diverifikasi, dan opsi-noverifyuntuk menunjukkan bahwa sertifikat tidak perlu diverifikasi.$openssl smime -verify -inrsa2048-inform PEM -certfilecertificate-noverify | tee documentJika tanda tangan valid, pesan
Verification successfulmuncul. 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 RSA-2048 tanda tangan dan sertifikat AWS RSA-2048 publik
-
Hubungkan dengan instans.
-
Ambil RSA-2048 tanda tangan dari metadata instance, mengubahnya menjadi array byte, dan menambahkannya ke variabel bernama.
$SignatureGunakan 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 RSA-2048publik untuk Wilayah Anda AWS sertifikat publik misalnya tanda tangan dokumen identitas dan tambahkan konten ke file baru 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.